feat: more mixins
This commit is contained in:
+8
-5
@@ -1,18 +1,21 @@
|
||||
import type { DefaultRegistry, Methods, Registry } from "../registry";
|
||||
import type { shim } from "./mixin";
|
||||
|
||||
export interface Base<T> {
|
||||
readonly value: T;
|
||||
}
|
||||
export type Base<T> = T extends { [shim]: { value: infer U } }
|
||||
? { readonly value: U }
|
||||
: {
|
||||
readonly value: T;
|
||||
};
|
||||
|
||||
export type Fluent<
|
||||
T,
|
||||
Reg extends Registry = DefaultRegistry,
|
||||
> = Base<T> & Methods<T, Reg> & { readonly __registry: Reg };
|
||||
> = Base<T> & Methods<T, Reg>;
|
||||
|
||||
export function makeFluent<const Reg extends Registry>(
|
||||
registry: Reg,
|
||||
) {
|
||||
const fluent = <T>(value: T) => {
|
||||
const fluent = <const T>(value: T) => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
||||
const f = { value } as never as Fluent<T, Reg>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user