prisma-effect-kysely 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +78 -0
- package/dist/effect/generator.d.ts.map +1 -1
- package/dist/effect/generator.js +2 -4
- package/dist/effect/generator.js.map +1 -1
- package/dist/kysely/helpers.d.ts +67 -8
- package/dist/kysely/helpers.d.ts.map +1 -1
- package/dist/kysely/helpers.js +15 -9
- package/dist/kysely/helpers.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,83 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`046b0ef`](https://github.com/samuelho-dev/prisma-effect-kysely/commit/046b0efe1f8c7cef14749e544dcd0bd290f75d97) Thanks [@samuelho-dev](https://github.com/samuelho-dev)! - feat: Add optional Id parameter to getSchemas() for better type inference
|
|
8
|
+
|
|
9
|
+
The `getSchemas()` function now accepts an optional second parameter for the branded Id schema. This eliminates the need for object spread patterns in generated code, which caused TypeScript to lose the `_base` property needed for compile-time type utilities.
|
|
10
|
+
|
|
11
|
+
**Breaking Change in Generated Code:**
|
|
12
|
+
|
|
13
|
+
Before:
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
export const User = {
|
|
17
|
+
...getSchemas(_User),
|
|
18
|
+
Id: UserIdSchema,
|
|
19
|
+
} as const;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
After:
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
export const User = getSchemas(_User, UserIdSchema);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**New API:**
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
// With Id (models with @id field)
|
|
32
|
+
const User = getSchemas(_User, UserIdSchema);
|
|
33
|
+
// Returns: SchemasWithId<Type, Encoded, BaseSchema, IdSchema>
|
|
34
|
+
|
|
35
|
+
// Without Id (models without @id, join tables)
|
|
36
|
+
const JoinTable = getSchemas(_JoinTable);
|
|
37
|
+
// Returns: Schemas<Type, Encoded, BaseSchema>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Why this change:**
|
|
41
|
+
|
|
42
|
+
TypeScript's spread inference doesn't preserve the `_base` property from `getSchemas()` return type. This caused `Insertable<typeof User>` and `Updateable<typeof User>` to fail because `ExtractStructFields<T>` couldn't find the `_base` property needed for phantom type extraction.
|
|
43
|
+
|
|
44
|
+
**Migration:**
|
|
45
|
+
|
|
46
|
+
Re-run `prisma generate` to update generated code. No changes needed to consumer code using type utilities.
|
|
47
|
+
|
|
48
|
+
## 3.0.2
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- [`b2edf54`](https://github.com/samuelho-dev/prisma-effect-kysely/commit/b2edf54230d73a4e600aecdd9980f7915ea53f62) Thanks [@samuelho-dev](https://github.com/samuelho-dev)! - Fix: Exclude Never-typed fields from Insertable/Updateable at compile-time
|
|
53
|
+
|
|
54
|
+
The `columnType` function now returns a `ColumnTypeSchema` type with phantom type properties that encode the insert/update type constraints. The `Insertable<T>` and `Updateable<T>` type utilities use these phantom types to correctly exclude `never`-typed fields at the TypeScript type level.
|
|
55
|
+
|
|
56
|
+
**Changes:**
|
|
57
|
+
- `columnType()` now returns `ColumnTypeSchema<S, E, R, I, U>` with phantom types for insert/update
|
|
58
|
+
- `getSchemas()` now stores the base schema in `_base` property for type-level field extraction
|
|
59
|
+
- `Insertable<T>` and `Updateable<T>` type utilities compute correct types by:
|
|
60
|
+
- Extracting struct fields from `_base` schema
|
|
61
|
+
- Filtering out fields with `never` phantom types
|
|
62
|
+
- Computing the correct insert/update type per field
|
|
63
|
+
|
|
64
|
+
**Example:**
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
const _User = Schema.Struct({
|
|
68
|
+
id: columnType(Schema.UUID, Schema.Never, Schema.Never),
|
|
69
|
+
name: Schema.String,
|
|
70
|
+
});
|
|
71
|
+
const User = getSchemas(_User);
|
|
72
|
+
|
|
73
|
+
// At compile-time:
|
|
74
|
+
type UserInsert = Insertable<typeof User>;
|
|
75
|
+
// = { name: string } // 'id' correctly excluded
|
|
76
|
+
|
|
77
|
+
type UserUpdate = Updateable<typeof User>;
|
|
78
|
+
// = { name?: string } // 'id' correctly excluded
|
|
79
|
+
```
|
|
80
|
+
|
|
3
81
|
## 3.0.1
|
|
4
82
|
|
|
5
83
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE;IAIlD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAgBnE;;;OAGG;IACH,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,IAAI;IAaxF;;;OAGG;IACH,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ3D;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE;IAIlD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAgBnE;;;OAGG;IACH,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,IAAI;IAaxF;;;OAGG;IACH,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAa3E;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;IAkB3D;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,OAAO;IA2BrC;;OAEG;IACH,wBAAwB,CAAC,UAAU,EAAE,aAAa,EAAE;IAIpD;;OAEG;IACH,iCAAiC,CAAC,UAAU,EAAE,aAAa,EAAE;CAG9D"}
|
package/dist/effect/generator.js
CHANGED
|
@@ -57,10 +57,8 @@ ${fieldDefinitions}
|
|
|
57
57
|
const name = toPascalCase(model.name);
|
|
58
58
|
const idField = fields.find((f) => f.isId);
|
|
59
59
|
if (idField) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Id: ${name}IdSchema,
|
|
63
|
-
} as const;`;
|
|
60
|
+
// Use getSchemas(base, id) to preserve _base for type utilities
|
|
61
|
+
return `export const ${name} = getSchemas(${baseSchemaName}, ${name}IdSchema);`;
|
|
64
62
|
}
|
|
65
63
|
return `export const ${name} = getSchemas(${baseSchemaName});`;
|
|
66
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,aAAa,CAAC,KAAoC;QAChD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAiB,EAAE,MAA6B;QACjE,MAAM,gBAAgB,GAAG,MAAM;aAC5B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAExC,OAAO,MAAM,KAAK,CAAC,IAAI;eACZ,cAAc;EAC3B,gBAAgB;IACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,KAAiB,EAAE,MAA6B;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;QAE1D,OAAO,SAAS,IAAI,cAAc,QAAQ,uBAAuB,IAAI,QAAQ,CAAC;IAChF,CAAC;IAED;;;OAGG;IACH,0BAA0B,CAAC,KAAiB,EAAE,MAA6B;QACzE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,gBAAgB,IAAI
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,aAAa,CAAC,KAAoC;QAChD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAiB,EAAE,MAA6B;QACjE,MAAM,gBAAgB,GAAG,MAAM;aAC5B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAExC,OAAO,MAAM,KAAK,CAAC,IAAI;eACZ,cAAc;EAC3B,gBAAgB;IACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,KAAiB,EAAE,MAA6B;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;QAE1D,OAAO,SAAS,IAAI,cAAc,QAAQ,uBAAuB,IAAI,QAAQ,CAAC;IAChF,CAAC;IAED;;;OAGG;IACH,0BAA0B,CAAC,KAAiB,EAAE,MAA6B;QACzE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,OAAO,EAAE,CAAC;YACZ,gEAAgE;YAChE,OAAO,gBAAgB,IAAI,iBAAiB,cAAc,KAAK,IAAI,YAAY,CAAC;QAClF,CAAC;QAED,OAAO,gBAAgB,IAAI,iBAAiB,cAAc,IAAI,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,KAAiB,EAAE,MAAoB;QACzD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,4CAA4C;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,eAAe,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;QAED,cAAc;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAEnD,8BAA8B;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAAiB;QACnC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAEpC,+EAA+E;QAC/E,MAAM,OAAO,GAAG;YACd,kCAAkC;YAClC,2CAA2C;YAC3C,2EAA2E;SAC5E,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,qDAAqD;YACrD,2CAA2C;YAC3C,0BAA0B;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,GAAG,QAAQ,QAAQ,CAAC;YAC7B,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO,CAAC,IAAI,CAAC,YAAY,WAAW,uBAAuB,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,UAA2B;QAClD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,iCAAiC,CAAC,UAA2B;QAC3D,OAAO,UAAU,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;CACF"}
|
package/dist/kysely/helpers.d.ts
CHANGED
|
@@ -7,11 +7,31 @@ import type { DeepMutable } from 'effect/Types';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const ColumnTypeId: unique symbol;
|
|
9
9
|
export declare const GeneratedId: unique symbol;
|
|
10
|
+
declare const ColumnTypeInsertPhantom: unique symbol;
|
|
11
|
+
declare const ColumnTypeUpdatePhantom: unique symbol;
|
|
12
|
+
/**
|
|
13
|
+
* A schema with phantom types encoding insert/update type constraints.
|
|
14
|
+
* This allows TypeScript to know at compile time which fields have
|
|
15
|
+
* `never` insert/update types and should be excluded.
|
|
16
|
+
*/
|
|
17
|
+
export type ColumnTypeSchema<SType, SEncoded, SR, IType, UType> = Schema.Schema<SType, SEncoded, SR> & {
|
|
18
|
+
readonly [ColumnTypeInsertPhantom]: IType;
|
|
19
|
+
readonly [ColumnTypeUpdatePhantom]: UType;
|
|
20
|
+
};
|
|
21
|
+
type ExtractInsertPhantom<T> = T extends {
|
|
22
|
+
readonly [ColumnTypeInsertPhantom]: infer I;
|
|
23
|
+
} ? I : T extends Schema.Schema<infer S, unknown, unknown> ? S : never;
|
|
24
|
+
type ExtractUpdatePhantom<T> = T extends {
|
|
25
|
+
readonly [ColumnTypeUpdatePhantom]: infer U;
|
|
26
|
+
} ? U : T extends Schema.Schema<infer S, unknown, unknown> ? S : never;
|
|
10
27
|
/**
|
|
11
28
|
* Mark a field as having different types for select/insert/update
|
|
12
29
|
* Used for ID fields with @default (read-only)
|
|
30
|
+
*
|
|
31
|
+
* Returns a schema with phantom types so TypeScript knows at compile time
|
|
32
|
+
* which fields should be excluded from insert/update operations.
|
|
13
33
|
*/
|
|
14
|
-
export declare const columnType: <SType, SEncoded, SR, IType, IEncoded, IR, UType, UEncoded, UR>(selectSchema: Schema.Schema<SType, SEncoded, SR>, insertSchema: Schema.Schema<IType, IEncoded, IR>, updateSchema: Schema.Schema<UType, UEncoded, UR>) =>
|
|
34
|
+
export declare const columnType: <SType, SEncoded, SR, IType, IEncoded, IR, UType, UEncoded, UR>(selectSchema: Schema.Schema<SType, SEncoded, SR>, insertSchema: Schema.Schema<IType, IEncoded, IR>, updateSchema: Schema.Schema<UType, UEncoded, UR>) => ColumnTypeSchema<SType, SEncoded, SR, IType, UType>;
|
|
15
35
|
/**
|
|
16
36
|
* Mark a field as database-generated (omitted from insert)
|
|
17
37
|
* Used for fields with @default
|
|
@@ -36,20 +56,57 @@ export declare const Insertable: <Type, Encoded>(schema: Schema.Schema<Type, Enc
|
|
|
36
56
|
* Create Updateable schema from base schema
|
|
37
57
|
*/
|
|
38
58
|
export declare const Updateable: <Type, Encoded>(schema: Schema.Schema<Type, Encoded>) => Schema.Schema<MutableUpdate<Type>, MutableUpdate<Encoded>, never>;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Schemas interface returned by getSchemas().
|
|
61
|
+
* Includes a _base property to preserve the original schema for type-level computations.
|
|
62
|
+
*/
|
|
63
|
+
export interface Schemas<Type, Encoded, BaseSchema extends Schema.Schema<Type, Encoded> = Schema.Schema<Type, Encoded>> {
|
|
64
|
+
readonly _base: BaseSchema;
|
|
65
|
+
readonly Selectable: Schema.Schema<KyselySelectable<Type>, KyselySelectable<Encoded>, never>;
|
|
66
|
+
readonly Insertable: Schema.Schema<MutableInsert<Type>, MutableInsert<Encoded>, never>;
|
|
67
|
+
readonly Updateable: Schema.Schema<MutableUpdate<Type>, MutableUpdate<Encoded>, never>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Extended Schemas interface with branded Id type.
|
|
71
|
+
* Returned when getSchemas() is called with an idSchema parameter.
|
|
72
|
+
*/
|
|
73
|
+
export interface SchemasWithId<Type, Encoded, BaseSchema extends Schema.Schema<Type, Encoded>, IdSchema extends Schema.Schema<unknown, unknown, unknown>> extends Schemas<Type, Encoded, BaseSchema> {
|
|
74
|
+
readonly Id: IdSchema;
|
|
43
75
|
}
|
|
44
76
|
/**
|
|
45
77
|
* Generate all operational schemas (Selectable/Insertable/Updateable) from base schema
|
|
46
78
|
* Used in generated code
|
|
79
|
+
*
|
|
80
|
+
* @param baseSchema - The base Effect Schema struct
|
|
81
|
+
* @param idSchema - Optional branded ID schema for models with @id fields
|
|
47
82
|
*/
|
|
48
|
-
export declare
|
|
83
|
+
export declare function getSchemas<Type, Encoded, BaseSchema extends Schema.Schema<Type, Encoded>, IdSchema extends Schema.Schema<unknown, unknown, unknown>>(baseSchema: BaseSchema, idSchema: IdSchema): SchemasWithId<Type, Encoded, BaseSchema, IdSchema>;
|
|
84
|
+
export declare function getSchemas<Type, Encoded, BaseSchema extends Schema.Schema<Type, Encoded>>(baseSchema: BaseSchema): Schemas<Type, Encoded, BaseSchema>;
|
|
49
85
|
type RemoveIndexSignature<T> = {
|
|
50
86
|
[K in keyof T as K extends string ? string extends K ? never : K : K extends number ? number extends K ? never : K : K extends symbol ? symbol extends K ? never : K : K]: T[K];
|
|
51
87
|
};
|
|
52
88
|
type StrictType<T> = RemoveIndexSignature<T>;
|
|
89
|
+
type ExtractStructFields<T> = T extends {
|
|
90
|
+
readonly _base: Schema.Struct<infer F>;
|
|
91
|
+
} ? F : never;
|
|
92
|
+
type HasNeverInsert<T> = T extends {
|
|
93
|
+
readonly [ColumnTypeInsertPhantom]: never;
|
|
94
|
+
} ? true : false;
|
|
95
|
+
type HasNeverUpdate<T> = T extends {
|
|
96
|
+
readonly [ColumnTypeUpdatePhantom]: never;
|
|
97
|
+
} ? true : false;
|
|
98
|
+
type InsertableFields<Fields> = {
|
|
99
|
+
[K in keyof Fields as HasNeverInsert<Fields[K]> extends true ? never : K]: Fields[K];
|
|
100
|
+
};
|
|
101
|
+
type UpdateableFields<Fields> = {
|
|
102
|
+
[K in keyof Fields as HasNeverUpdate<Fields[K]> extends true ? never : K]: Fields[K];
|
|
103
|
+
};
|
|
104
|
+
type ComputeInsertableType<Fields> = StrictType<{
|
|
105
|
+
[K in keyof InsertableFields<Fields>]: ExtractInsertPhantom<Fields[K]>;
|
|
106
|
+
}>;
|
|
107
|
+
type ComputeUpdateableType<Fields> = StrictType<{
|
|
108
|
+
[K in keyof UpdateableFields<Fields>]?: ExtractUpdatePhantom<Fields[K]>;
|
|
109
|
+
}>;
|
|
53
110
|
/**
|
|
54
111
|
* Extract SELECT type from schema (matches Kysely's Selectable<T> pattern)
|
|
55
112
|
* @example type UserSelect = Selectable<typeof User>
|
|
@@ -57,14 +114,16 @@ type StrictType<T> = RemoveIndexSignature<T>;
|
|
|
57
114
|
export type Selectable<T extends Schemas<unknown, unknown>> = StrictType<Schema.Schema.Type<T['Selectable']>>;
|
|
58
115
|
/**
|
|
59
116
|
* Extract INSERT type from schema (matches Kysely's Insertable<T> pattern)
|
|
117
|
+
* Excludes fields with never insert type (e.g., columnType(T, Schema.Never, ...))
|
|
60
118
|
* @example type UserInsert = Insertable<typeof User>
|
|
61
119
|
*/
|
|
62
|
-
export type Insertable<T extends Schemas<unknown, unknown>> = StrictType<Schema.Schema.Type<T['Insertable']
|
|
120
|
+
export type Insertable<T extends Schemas<unknown, unknown>> = ExtractStructFields<T> extends infer F ? [F] extends [never] ? StrictType<Schema.Schema.Type<T['Insertable']>> : ComputeInsertableType<F> : never;
|
|
63
121
|
/**
|
|
64
122
|
* Extract UPDATE type from schema (matches Kysely's Updateable<T> pattern)
|
|
123
|
+
* Excludes fields with never update type (e.g., columnType(T, ..., Schema.Never))
|
|
65
124
|
* @example type UserUpdate = Updateable<typeof User>
|
|
66
125
|
*/
|
|
67
|
-
export type Updateable<T extends Schemas<unknown, unknown>> = StrictType<Schema.Schema.Type<T['Updateable']
|
|
126
|
+
export type Updateable<T extends Schemas<unknown, unknown>> = ExtractStructFields<T> extends infer F ? [F] extends [never] ? StrictType<Schema.Schema.Type<T['Updateable']>> : ComputeUpdateableType<F> : never;
|
|
68
127
|
/**
|
|
69
128
|
* Extract branded ID type from schema
|
|
70
129
|
* @example type UserId = Id<typeof User>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EACV,UAAU,IAAI,gBAAgB,EAC9B,UAAU,IAAI,gBAAgB,EAC9B,UAAU,IAAI,gBAAgB,EAC/B,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AAEH,eAAO,MAAM,YAAY,eAA8B,CAAC;AACxD,eAAO,MAAM,WAAW,eAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/kysely/helpers.js
CHANGED
|
@@ -9,6 +9,9 @@ export const GeneratedId = Symbol.for('/GeneratedId');
|
|
|
9
9
|
/**
|
|
10
10
|
* Mark a field as having different types for select/insert/update
|
|
11
11
|
* Used for ID fields with @default (read-only)
|
|
12
|
+
*
|
|
13
|
+
* Returns a schema with phantom types so TypeScript knows at compile time
|
|
14
|
+
* which fields should be excluded from insert/update operations.
|
|
12
15
|
*/
|
|
13
16
|
export const columnType = (selectSchema, insertSchema, updateSchema) => {
|
|
14
17
|
const schemas = {
|
|
@@ -130,13 +133,16 @@ export const Updateable = (schema) => {
|
|
|
130
133
|
const res = new AST.TypeLiteral(extracted.map((prop) => new AST.PropertySignature(prop.name, AST.Union.make([prop.type, new AST.UndefinedKeyword()]), true, prop.isReadonly, prop.annotations)), ast.indexSignatures, ast.annotations);
|
|
131
134
|
return Schema.asSchema(Schema.make(res));
|
|
132
135
|
};
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
136
|
+
export function getSchemas(baseSchema, idSchema) {
|
|
137
|
+
const base = {
|
|
138
|
+
_base: baseSchema,
|
|
139
|
+
Selectable: Selectable(baseSchema),
|
|
140
|
+
Insertable: Insertable(baseSchema),
|
|
141
|
+
Updateable: Updateable(baseSchema),
|
|
142
|
+
};
|
|
143
|
+
if (idSchema) {
|
|
144
|
+
return { ...base, Id: idSchema };
|
|
145
|
+
}
|
|
146
|
+
return base;
|
|
147
|
+
}
|
|
142
148
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAQxC;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"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"}
|