[fabric/core] Add variantConstructor utility for tagged variants
This commit is contained in:
parent
65432d1c54
commit
ab41ff028d
14
packages/fabric/core/variant/constructor.ts
Normal file
14
packages/fabric/core/variant/constructor.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import type { TaggedVariant, VariantTag } from "./variant.ts";
|
||||
|
||||
export function variantConstructor<
|
||||
const T extends TaggedVariant<string>,
|
||||
>(
|
||||
tag: T[VariantTag],
|
||||
) {
|
||||
return <TOpts extends Omit<T, VariantTag>>(options: TOpts) => {
|
||||
return {
|
||||
_tag: tag,
|
||||
...options,
|
||||
} as const;
|
||||
};
|
||||
}
|
||||
@ -1,2 +1,3 @@
|
||||
export * from "./constructor.ts";
|
||||
export * from "./match.ts";
|
||||
export * from "./variant.ts";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user