This commit is contained in:
@@ -47,11 +47,11 @@
|
||||
"npm-check-updates": "^16.14.20",
|
||||
"npm-sort": "^0.0.4",
|
||||
"tsup": "^8.0.2",
|
||||
"tsx": "^4.9.3",
|
||||
"tsx": "^4.9.4",
|
||||
"typescript": "^5.4.5"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@effect/schema": "^0.66.16",
|
||||
"@effect/schema": "^0.67.0",
|
||||
"effect": "^3.1.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
import { Schema as S } from "@effect/schema"
|
||||
import { Simplify } from "type-fest"
|
||||
import { Trait, TraitTuple } from "./Trait"
|
||||
import { TraitExpression } from "./TraitExpression"
|
||||
import { Extend } from "./util"
|
||||
|
||||
|
||||
export function extendsEffectSchemaExpression<
|
||||
Fields extends S.Struct.Fields,
|
||||
A, I, R, C,
|
||||
Inherited extends object,
|
||||
Proto,
|
||||
|
||||
const Traits extends readonly Trait<any, any, any, any>[],
|
||||
>(
|
||||
expression: TraitExpression<
|
||||
S.Class<unknown, Fields, A, I, R, C, Inherited, Proto>,
|
||||
Traits
|
||||
>
|
||||
) {
|
||||
return <Self>(): (
|
||||
S.Class<
|
||||
Self,
|
||||
Fields,
|
||||
A, I, R, C,
|
||||
Simplify<
|
||||
Extend<[
|
||||
Inherited,
|
||||
...TraitTuple.MapImplInstance<Traits>
|
||||
]>
|
||||
>,
|
||||
Proto
|
||||
> &
|
||||
|
||||
Simplify<
|
||||
Extend<TraitTuple.MapImplStaticMembers<Traits>>
|
||||
>
|
||||
) => expression.extends as any
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
import { Schema as S } from "@effect/schema"
|
||||
import { Implements } from "../TraitExpression"
|
||||
import { effectSchemaExpression } from "./EffectSchemaTraitExpressionBuilder"
|
||||
import { StaticMembers } from "../util"
|
||||
import { Trait } from "../Trait"
|
||||
import { EffectSchemaTraitExpression } from "./EffectSchemaTraitExpression"
|
||||
import { effectSchemaExpression } from "./EffectSchemaTraitExpressionBuilder"
|
||||
|
||||
|
||||
type Extr<T> =
|
||||
|
||||
@@ -2,4 +2,3 @@ export { Trait, TraitClass, TraitConcreteClass, TraitInstance, TraitStaticMember
|
||||
export { ImplStatic, TraitBuilder, implStaticInstantiableThis, implStaticThis, trait } from "./TraitBuilder"
|
||||
export { Implements, StaticImplements, TraitExpression, TraitExpressionClass, TraitExpressionConcreteClass, TraitExpressionInstance, TraitExpressionStaticMembers } from "./TraitExpression"
|
||||
export { TraitExpressionBuilder, expression } from "./TraitExpressionBuilder"
|
||||
export { extendsEffectSchemaExpression } from "./effect"
|
||||
|
||||
Reference in New Issue
Block a user