Skip to content

Commit d29cb1b

Browse files
committed
refactor: drop optional identifier for Schema classes.
1 parent c775911 commit d29cb1b

10 files changed

Lines changed: 118 additions & 667 deletions

File tree

.changeset/icy-coats-relate.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@effect-app/vue-components": minor
3+
"effect-app": minor
4+
"@effect-app/infra": minor
5+
"@effect-app/vue": minor
6+
---
7+
8+
refactor: drop optional identifier for Schema classes.

packages/effect-app/src/Schema/Class.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export interface EnhancedClass<Self, Fields extends Struct.Fields, I, R, C, Inhe
2828

2929
readonly fields: Simplify<Fields>
3030

31-
readonly extend: <Extended = never>(identifier?: string) => <NewFields extends Struct.Fields>(
31+
readonly extend: <Extended = never>(identifier: string) => <NewFields extends Struct.Fields>(
3232
newFieldsOr: NewFields | HasFields<NewFields>,
3333
annotations?: ClassAnnotations<Extended, Struct.Type<Fields & NewFields>>
3434
) => [Extended] extends [never] ? MissingSelfGeneric<"Base.extend">
@@ -42,7 +42,7 @@ export interface EnhancedClass<Self, Fields extends Struct.Fields, I, R, C, Inhe
4242
Proto
4343
>
4444

45-
readonly transformOrFail: <Transformed = never>(identifier?: string) => <
45+
readonly transformOrFail: <Transformed = never>(identifier: string) => <
4646
NewFields extends Struct.Fields,
4747
R2,
4848
R3
@@ -72,7 +72,7 @@ export interface EnhancedClass<Self, Fields extends Struct.Fields, I, R, C, Inhe
7272
Proto
7373
>
7474

75-
readonly transformOrFailFrom: <Transformed = never>(identifier?: string) => <
75+
readonly transformOrFailFrom: <Transformed = never>(identifier: string) => <
7676
NewFields extends Struct.Fields,
7777
R2,
7878
R3
@@ -149,7 +149,7 @@ type HasFields<Fields extends Struct.Fields> = {
149149
// return fnc("fields" in fields ? fields.fields : fields)
150150
// }
151151

152-
export const Class: <Self = never>(identifier?: string) => <Fields extends S.Struct.Fields>(
152+
export const Class: <Self = never>(identifier: string) => <Fields extends S.Struct.Fields>(
153153
fieldsOr: Fields | HasFields<Fields>,
154154
annotations?: ClassAnnotations<Self, Struct.Type<Fields>>
155155
) => [Self] extends [never] ? MissingSelfGeneric<"Class">

packages/effect-app/test/utils.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ test("works with class", () => {
107107
})
108108

109109
test("works with schema class", () => {
110-
class Banana extends S.Class<Banana>()({
110+
class Banana extends S.Class<Banana>("Banana")({
111111
name: S.String,
112112
state: S.Union(
113113
S.Struct({ a: S.String, _tag: S.Literal("a") }),

packages/infra/test/controller.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type * as EffectRequest from "effect/Request"
1111
import { SomeService } from "./query.test.js"
1212

1313
class UserProfile extends Context.assignTag<UserProfile, UserProfile>("UserProfile")(
14-
Class<UserProfile>()({
14+
Class<UserProfile>("UserProfile")({
1515
id: S.String
1616
})
1717
) {

packages/infra/test/query.test.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const str = S.Struct({ _tag: S.Literal("string"), value: S.String })
1313
const num = S.Struct({ _tag: S.Literal("number"), value: S.Number })
1414
const someUnion = S.Union(str, num)
1515

16-
export class Something extends S.Class<Something>()({
16+
export class Something extends S.Class<Something>("Something")({
1717
id: S.StringId.withDefault,
1818
displayName: S.NonEmptyString255,
1919
name: S.NullOr(S.NonEmptyString255).withDefault,
@@ -467,22 +467,22 @@ it(
467467
() =>
468468
Effect
469469
.gen(function*() {
470-
class AA extends S.Class<AA>()({
470+
class AA extends S.Class<AA>("AA")({
471471
id: S.Literal("AA"),
472472
a: S.Unknown
473473
}) {}
474474

475-
class BB extends S.Class<BB>()({
475+
class BB extends S.Class<BB>("BB")({
476476
id: S.Literal("BB"),
477477
b: S.Unknown
478478
}) {}
479479

480-
class CC extends S.Class<CC>()({
480+
class CC extends S.Class<CC>("CC")({
481481
id: S.Literal("CC"),
482482
c: S.Unknown
483483
}) {}
484484

485-
class DD extends S.Class<DD>()({
485+
class DD extends S.Class<DD>("DD")({
486486
id: S.Literal("DD"),
487487
d: S.Unknown
488488
}) {}
@@ -661,12 +661,12 @@ it(
661661
it("remove null from one constituent of a tagged union", () =>
662662
Effect
663663
.gen(function*() {
664-
class AA extends S.Class<AA>()({
664+
class AA extends S.Class<AA>("AA")({
665665
id: S.Literal("AA"),
666666
a: S.String
667667
}) {}
668668

669-
class BB extends S.Class<BB>()({
669+
class BB extends S.Class<BB>("BB")({
670670
id: S.Literal("BB"),
671671
b: S.NullOr(S.Number)
672672
}) {}
@@ -709,22 +709,22 @@ it("remove null from one constituent of a tagged union", () =>
709709
it("refine 3", () =>
710710
Effect
711711
.gen(function*() {
712-
class AA extends S.Class<AA>()({
712+
class AA extends S.Class<AA>("AA")({
713713
id: S.Literal("AA"),
714714
a: S.Unknown
715715
}) {}
716716

717-
class BB extends S.Class<BB>()({
717+
class BB extends S.Class<BB>("BB")({
718718
id: S.Literal("BB"),
719719
b: S.Unknown
720720
}) {}
721721

722-
class CC extends S.Class<CC>()({
722+
class CC extends S.Class<CC>("CC")({
723723
id: S.Literal("CC"),
724724
c: S.Unknown
725725
}) {}
726726

727-
class DD extends S.Class<DD>()({
727+
class DD extends S.Class<DD>("DD")({
728728
id: S.Literal("DD"),
729729
d: S.Unknown
730730
}) {}
@@ -747,7 +747,7 @@ it("refine 3", () =>
747747
it("my test", () =>
748748
Effect
749749
.gen(function*() {
750-
class AA extends S.Class<AA>()({
750+
class AA extends S.Class<AA>("AA")({
751751
id: S.String,
752752
as: S.Array(S.String)
753753
}) {}
@@ -773,7 +773,7 @@ it("refine inner without imposing a projection", () =>
773773
b: S.Unknown
774774
}) {}
775775

776-
class Data extends S.Class<Data>()({
776+
class Data extends S.Class<Data>("Data")({
777777
id: S.String,
778778
union: S.Union(AA, BB)
779779
}) {}
@@ -940,7 +940,7 @@ it("distribution over union", () =>
940940
it("refine nested union", () =>
941941
Effect
942942
.gen(function*() {
943-
class TestNested extends S.Class<TestNested>()({ id: S.String, nested: TestUnion }) {}
943+
class TestNested extends S.Class<TestNested>("TestNested")({ id: S.String, nested: TestUnion }) {}
944944

945945
const repo = yield* makeRepo("test", TestNested, {})
946946

packages/infra/test/rawQuery.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const rt = ManagedRuntime.make(Layer.mergeAll(
1919
Logger.minimumLogLevel(LogLevel.Debug)
2020
))
2121

22-
class Something extends S.Class<Something>()({
22+
class Something extends S.Class<Something>("Something")({
2323
id: S.String,
2424
name: S.String,
2525
description: S.String,

packages/vue-components/__tests__/OmegaForm.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import { mount } from "@vue/test-utils"
99
import OmegaForm from "./OmegaFormTest.vue"
1010
import OmegaIntlProvider from "./OmegaIntlProvider.vue"
1111

12-
class kkk extends S.Class<kkk>()({
12+
class kkk extends S.Class<kkk>("kkk")({
1313
lll: S.String.pipe(S.minLength(10)).pipe(S.maxLength(21)),
1414
mmm: S.Number.pipe(S.between(10, 20)),
1515
}) {}
1616

17-
class bbb extends S.Class<bbb>()({
17+
class bbb extends S.Class<bbb>("bbb")({
1818
ccc: S.String.pipe(S.minLength(1)).pipe(S.maxLength(2)),
1919
ddd: S.NullOr(S.String.pipe(S.maxLength(3))),
2020
jjj: S.UndefinedOr(S.String.pipe(S.maxLength(4))),

packages/vue/test/form.test.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import { Effect } from "effect-app"
2-
import { S } from "effect-app"
3-
import type { DiscriminatedUnionFieldInfo, FieldInfo, NestedFieldInfo, UnionFieldInfo } from "../src/form.js"
4-
import { buildFieldInfoFromFieldsRoot } from "../src/form.js"
1+
import { Effect, S } from "effect-app"
2+
import { buildFieldInfoFromFieldsRoot, type DiscriminatedUnionFieldInfo, type FieldInfo, type NestedFieldInfo, type UnionFieldInfo } from "../src/form.js"
53

6-
export class NestedSchema extends S.Class<NestedSchema>()({
4+
export class NestedSchema extends S.Class<NestedSchema>("NestedSchema")({
75
shallow: S.String,
86
nested: S.Struct({
97
deep: S.NonEmptyString,
@@ -14,11 +12,11 @@ export class NestedSchema extends S.Class<NestedSchema>()({
1412
age: S.propertySignature(S.Struct({ nfs: S.NumberFromString.pipe(S.compose(S.PositiveInt)) }))
1513
}) {}
1614

17-
export class SchemaContainsClass extends S.Class<SchemaContainsClass>()({
15+
export class SchemaContainsClass extends S.Class<SchemaContainsClass>("SchemaContainsClass")({
1816
inner: NestedSchema
1917
}) {}
2018

21-
export class UnionSchema extends S.Class<UnionSchema>()({
19+
export class UnionSchema extends S.Class<UnionSchema>("UnionSchema")({
2220
generalUnion: S.Union(S.String, S.Struct({ unionNested: NestedSchema })),
2321
structsUnion: S.Union(NestedSchema, SchemaContainsClass),
2422
optional: S.optional(S.String),
@@ -57,7 +55,7 @@ const TriangleStruct = S.Struct({
5755
const ShapeWithStructs = S.Union(CircleStruct, SquareStruct, TriangleStruct)
5856
const ShapeWithClasses = S.Union(Circle, Square, Triangle)
5957

60-
export class ShapeContainer extends S.Class<ShapeContainer>()({
58+
export class ShapeContainer extends S.Class<ShapeContainer>("ShapeContainer")({
6159
shapeWithStruct: ShapeWithStructs,
6260
shapeWithClasses: ShapeWithClasses
6361
}) {}

0 commit comments

Comments
 (0)