prisma-effect-kysely 4.2.11 → 4.4.1
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 +18 -0
- package/dist/effect/generator.d.ts +2 -2
- package/dist/effect/generator.d.ts.map +1 -1
- package/dist/effect/generator.js +18 -15
- package/dist/effect/generator.js.map +1 -1
- package/dist/effect/join-table.d.ts.map +1 -1
- package/dist/effect/join-table.js +2 -8
- package/dist/effect/join-table.js.map +1 -1
- package/dist/kysely/helpers.d.ts +18 -55
- package/dist/kysely/helpers.d.ts.map +1 -1
- package/dist/kysely/helpers.js +24 -26
- package/dist/kysely/helpers.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.4.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix: use getSchemas() for join tables instead of individual Selectable/Insertable/Updateable function calls
|
|
8
|
+
|
|
9
|
+
Join tables were generating code that called Selectable(), Insertable(), Updateable() as functions but these were imported as types only, causing TypeScript compilation errors. Now join tables use getSchemas() like regular models.
|
|
10
|
+
|
|
11
|
+
## 4.4.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- Fix type constraints for better TypeScript compatibility
|
|
16
|
+
- Changed `Schemas` and `SchemasWithId` interfaces to use `Schema.Schema.All` constraint instead of `Schema<unknown, unknown, unknown>` to fix variance issues with struct schemas
|
|
17
|
+
- Updated `getSchemas()` function overloads to use `Schema.Schema.All` constraint
|
|
18
|
+
- Removed type assertions from `columnType()` and `generated()` functions - now return base types
|
|
19
|
+
- Updated generator to use type annotation pattern instead of type assertion for better declaration emit
|
|
20
|
+
|
|
3
21
|
## 4.2.9
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -23,8 +23,8 @@ export declare class EffectGenerator {
|
|
|
23
23
|
generateBrandedIdSchema(model: DMMF.Model, fields: readonly DMMF.Field[]): string | null;
|
|
24
24
|
/**
|
|
25
25
|
* Generate operational schemas with branded Id
|
|
26
|
-
* Uses
|
|
27
|
-
*
|
|
26
|
+
* Uses type annotation (:) for verification instead of type assertion (as)
|
|
27
|
+
* Type annotations work correctly with TypeScript declaration emit
|
|
28
28
|
*/
|
|
29
29
|
generateOperationalSchemas(model: DMMF.Model, fields: readonly DMMF.Field[]): string;
|
|
30
30
|
/**
|
|
@@ -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;;;;OAIG;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;IAgBxF;;;;OAIG;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;;;;OAIG;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;IAgBxF;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAuB3E;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;IAkB3D;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,OAAO;IA4BrC;;OAEG;IACH,wBAAwB,CAAC,UAAU,EAAE,aAAa,EAAE;IAIpD;;OAEG;IACH,iCAAiC,CAAC,UAAU,EAAE,aAAa,EAAE;CAG9D"}
|
package/dist/effect/generator.js
CHANGED
|
@@ -55,26 +55,28 @@ export type ${name}Id = typeof ${name}IdSchema.Type;`;
|
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* Generate operational schemas with branded Id
|
|
58
|
-
* Uses
|
|
59
|
-
*
|
|
58
|
+
* Uses type annotation (:) for verification instead of type assertion (as)
|
|
59
|
+
* Type annotations work correctly with TypeScript declaration emit
|
|
60
60
|
*/
|
|
61
61
|
generateOperationalSchemas(model, fields) {
|
|
62
62
|
const baseSchemaName = `_${model.name}`;
|
|
63
63
|
const name = toPascalCase(model.name);
|
|
64
64
|
const idField = fields.find((f) => f.isId);
|
|
65
|
-
const baseProps = ` _base: ${baseSchemaName},
|
|
66
|
-
Selectable: Selectable(${baseSchemaName}),
|
|
67
|
-
Insertable: Insertable(${baseSchemaName}),
|
|
68
|
-
Updateable: Updateable(${baseSchemaName}),`;
|
|
69
65
|
if (idField) {
|
|
70
|
-
|
|
71
|
-
${
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
// Model with ID field - use type annotation (not assertion)
|
|
67
|
+
return `// Operational schemas for ${name}
|
|
68
|
+
const _${name}Schemas = getSchemas(${baseSchemaName}, ${name}IdSchema);
|
|
69
|
+
|
|
70
|
+
export const ${name}: SchemasWithId<
|
|
71
|
+
typeof ${baseSchemaName},
|
|
72
|
+
typeof ${name}IdSchema
|
|
73
|
+
> = _${name}Schemas;`;
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
${
|
|
77
|
-
}
|
|
75
|
+
// Model without ID field - use type annotation (not assertion)
|
|
76
|
+
return `// Operational schemas for ${name}
|
|
77
|
+
const _${name}Schemas = getSchemas(${baseSchemaName});
|
|
78
|
+
|
|
79
|
+
export const ${name}: Schemas<typeof ${baseSchemaName}> = _${name}Schemas;`;
|
|
78
80
|
}
|
|
79
81
|
/**
|
|
80
82
|
* Generate complete model schema (base + branded ID + operational)
|
|
@@ -100,11 +102,12 @@ ${baseProps}
|
|
|
100
102
|
*/
|
|
101
103
|
generateTypesHeader(hasEnums) {
|
|
102
104
|
const header = generateFileHeader();
|
|
103
|
-
//
|
|
105
|
+
// Import getSchemas and type interfaces for type annotation pattern
|
|
104
106
|
const imports = [
|
|
105
107
|
`import { Schema } from "effect";`,
|
|
106
108
|
`import type { ColumnType } from "kysely";`,
|
|
107
|
-
`import { columnType, generated,
|
|
109
|
+
`import { columnType, generated, getSchemas } from "prisma-effect-kysely";`,
|
|
110
|
+
`import type { Schemas, SchemasWithId } from "prisma-effect-kysely";`,
|
|
108
111
|
];
|
|
109
112
|
if (hasEnums) {
|
|
110
113
|
// Only import Schema wrappers (not plain enum types)
|
|
@@ -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;;;;OAIG;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,wEAAwE;QACxE,wFAAwF;QACxF,OAAO,gBAAgB,IAAI,cAAc,QAAQ,uBAAuB,IAAI;cAClE,IAAI,eAAe,IAAI,gBAAgB,CAAC;IACpD,CAAC;IAED;;;;OAIG;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,
|
|
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;;;;OAIG;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,wEAAwE;QACxE,wFAAwF;QACxF,OAAO,gBAAgB,IAAI,cAAc,QAAQ,uBAAuB,IAAI;cAClE,IAAI,eAAe,IAAI,gBAAgB,CAAC;IACpD,CAAC;IAED;;;;OAIG;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,4DAA4D;YAC5D,OAAO,8BAA8B,IAAI;SACtC,IAAI,wBAAwB,cAAc,KAAK,IAAI;;eAE7C,IAAI;WACR,cAAc;WACd,IAAI;OACR,IAAI,UAAU,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,OAAO,8BAA8B,IAAI;SACpC,IAAI,wBAAwB,cAAc;;eAEpC,IAAI,oBAAoB,cAAc,QAAQ,IAAI,UAAU,CAAC;IAC1E,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,oEAAoE;QACpE,MAAM,OAAO,GAAG;YACd,kCAAkC;YAClC,2CAA2C;YAC3C,2EAA2E;YAC3E,qEAAqE;SACtE,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-table.d.ts","sourceRoot":"","sources":["../../src/effect/join-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,aAAa,UAcxE;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"join-table.d.ts","sourceRoot":"","sources":["../../src/effect/join-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,aAAa,UAcxE;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,UAuCrF"}
|
|
@@ -62,14 +62,8 @@ const _${relationName} = Schema.Struct({
|
|
|
62
62
|
${columnAField},
|
|
63
63
|
${columnBField},
|
|
64
64
|
});`;
|
|
65
|
-
// Generate operational schemas using
|
|
66
|
-
|
|
67
|
-
const operationalSchema = `export const ${relationName} = {
|
|
68
|
-
_base: _${relationName},
|
|
69
|
-
Selectable: Selectable(_${relationName}),
|
|
70
|
-
Insertable: Insertable(_${relationName}),
|
|
71
|
-
Updateable: Updateable(_${relationName}),
|
|
72
|
-
} as const;`;
|
|
65
|
+
// Generate operational schemas using getSchemas() (no Id for join tables - they use composite keys)
|
|
66
|
+
const operationalSchema = `export const ${relationName} = getSchemas(_${relationName});`;
|
|
73
67
|
// No type exports - consumers use: Selectable<typeof JoinTable>
|
|
74
68
|
return `${baseSchema}\n\n${operationalSchema}`;
|
|
75
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-table.js","sourceRoot":"","sources":["../../src/effect/join-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,SAAwB;IACvE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAEjF,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElD,OAAO,iCAAiC,YAAY;YAC1C,YAAY;IACpB,WAAW,gBAAgB,KAAK;IAChC,WAAW,gBAAgB,KAAK;EAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB,EAAE,MAAe;IACxD,IAAI,UAAU,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAA2B;QACxC,MAAM,EAAE,eAAe;QACvB,GAAG,EAAE,eAAe;QACpB,MAAM,EAAE,eAAe;KACxB,CAAC;IAEF,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAwB,EAAE,KAAoB;IACpF,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,GACd,GAAG,SAAS,CAAC;IAEd,0CAA0C;IAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;IAChD,MAAM,WAAW,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;IAEhD,0EAA0E;IAC1E,0FAA0F;IAC1F,MAAM,YAAY,GAAG,KAAK,WAAW,yCAAyC,aAAa,0DAA0D,CAAC;IACtJ,MAAM,YAAY,GAAG,KAAK,WAAW,yCAAyC,aAAa,0DAA0D,CAAC;IAEtJ,kCAAkC;IAClC,MAAM,UAAU,GAAG,MAAM,SAAS;0BACV,MAAM,SAAS,MAAM;wBACvB,WAAW,KAAK,WAAW;SAC1C,YAAY;EACnB,YAAY;EACZ,YAAY;IACV,CAAC;IAEH
|
|
1
|
+
{"version":3,"file":"join-table.js","sourceRoot":"","sources":["../../src/effect/join-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,gCAAgC,CAAC,SAAwB;IACvE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAEjF,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElD,OAAO,iCAAiC,YAAY;YAC1C,YAAY;IACpB,WAAW,gBAAgB,KAAK;IAChC,WAAW,gBAAgB,KAAK;EAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,UAAkB,EAAE,MAAe;IACxD,IAAI,UAAU,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAA2B;QACxC,MAAM,EAAE,eAAe;QACvB,GAAG,EAAE,eAAe;QACpB,MAAM,EAAE,eAAe;KACxB,CAAC;IAEF,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAwB,EAAE,KAAoB;IACpF,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,GACd,GAAG,SAAS,CAAC;IAEd,0CAA0C;IAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;IAChD,MAAM,WAAW,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;IAEhD,0EAA0E;IAC1E,0FAA0F;IAC1F,MAAM,YAAY,GAAG,KAAK,WAAW,yCAAyC,aAAa,0DAA0D,CAAC;IACtJ,MAAM,YAAY,GAAG,KAAK,WAAW,yCAAyC,aAAa,0DAA0D,CAAC;IAEtJ,kCAAkC;IAClC,MAAM,UAAU,GAAG,MAAM,SAAS;0BACV,MAAM,SAAS,MAAM;wBACvB,WAAW,KAAK,WAAW;SAC1C,YAAY;EACnB,YAAY;EACZ,YAAY;IACV,CAAC;IAEH,oGAAoG;IACpG,MAAM,iBAAiB,GAAG,gBAAgB,YAAY,kBAAkB,YAAY,IAAI,CAAC;IAEzF,gEAAgE;IAChE,OAAO,GAAG,UAAU,OAAO,iBAAiB,EAAE,CAAC;AACjD,CAAC"}
|
package/dist/kysely/helpers.d.ts
CHANGED
|
@@ -72,12 +72,10 @@ export type Generated<T> = T & {
|
|
|
72
72
|
* The insert/update schemas are stored in annotations and used at runtime
|
|
73
73
|
* to determine which fields to include in Insertable/Updateable schemas.
|
|
74
74
|
*
|
|
75
|
-
* Returns
|
|
76
|
-
*
|
|
77
|
-
* 2. Runtime decode returns S values (not wrapped structs)
|
|
78
|
-
* 3. Type utilities can extract I and U from the brand
|
|
75
|
+
* Returns the base schema with annotations - branding happens at type level
|
|
76
|
+
* in generated code via type declarations, not via runtime type assertions.
|
|
79
77
|
*/
|
|
80
|
-
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>) => Schema.Schema<
|
|
78
|
+
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>) => Schema.Schema<SType, SEncoded, SR>;
|
|
81
79
|
/**
|
|
82
80
|
* Mark a field as database-generated (omitted from insert)
|
|
83
81
|
* Used for fields with @default
|
|
@@ -86,11 +84,10 @@ export declare const columnType: <SType, SEncoded, SR, IType, IEncoded, IR, UTyp
|
|
|
86
84
|
* - Present in select and update schemas
|
|
87
85
|
* - OMITTED from insert schema (not optional, completely absent)
|
|
88
86
|
*
|
|
89
|
-
* Returns
|
|
90
|
-
*
|
|
91
|
-
* 2. Runtime decode returns T values (not wrapped structs)
|
|
87
|
+
* Returns the base schema with annotation - branding happens at type level
|
|
88
|
+
* in generated code via type declarations, not via runtime type assertions.
|
|
92
89
|
*/
|
|
93
|
-
export declare const generated: <SType, SEncoded, R>(schema: Schema.Schema<SType, SEncoded, R>) => Schema.Schema<
|
|
90
|
+
export declare const generated: <SType, SEncoded, R>(schema: Schema.Schema<SType, SEncoded, R>) => Schema.Schema<SType, SEncoded, R>;
|
|
94
91
|
/**
|
|
95
92
|
* Extract the insert type from a field:
|
|
96
93
|
* - ColumnType<S, I, U> -> I (via brand)
|
|
@@ -128,60 +125,26 @@ type CustomUpdateable<T> = DeepMutable<{
|
|
|
128
125
|
}>;
|
|
129
126
|
type MutableInsert<Type> = CustomInsertable<Type>;
|
|
130
127
|
type MutableUpdate<Type> = CustomUpdateable<Type>;
|
|
131
|
-
|
|
132
|
-
* Strip branding from a single field type.
|
|
133
|
-
*
|
|
134
|
-
* Extracts the base select type from ColumnType<S,I,U> by checking for __select__ property.
|
|
135
|
-
* The branded types are defined as S & Brand, so S (the base type) extends the primitive.
|
|
136
|
-
*
|
|
137
|
-
* Note: Uses __select__ string literal key instead of unique symbol for reliable
|
|
138
|
-
* cross-module type checking in TypeScript declaration emit.
|
|
139
|
-
*/
|
|
140
|
-
type StripFieldBranding<T> = T extends {
|
|
141
|
-
readonly __select__: infer S;
|
|
142
|
-
} ? S : T extends {
|
|
143
|
-
readonly [ColumnTypeId]: {
|
|
144
|
-
readonly __insert__: unknown;
|
|
145
|
-
};
|
|
146
|
-
} ? T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends Date ? Date : T extends readonly (infer E)[] ? readonly E[] : T extends (infer E)[] ? E[] : T : T extends {
|
|
147
|
-
readonly [GeneratedId]: true;
|
|
148
|
-
} ? T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends Date ? Date : T extends readonly (infer E)[] ? readonly E[] : T extends (infer E)[] ? E[] : T : T;
|
|
149
|
-
/**
|
|
150
|
-
* Strip branding from all properties in an object type.
|
|
151
|
-
* Converts ColumnType<S,I,U> to S and Generated<T> to T.
|
|
152
|
-
*/
|
|
153
|
-
type StripBrandingFromObject<T> = {
|
|
154
|
-
[K in keyof T]: StripFieldBranding<T[K]>;
|
|
155
|
-
};
|
|
156
|
-
/**
|
|
157
|
-
* Selectable type with branding stripped - used for Schema function return types.
|
|
158
|
-
* This ensures that `Schema.Type` returns plain types without ColumnType/Generated branding.
|
|
159
|
-
*
|
|
160
|
-
* Note: We apply StripBrandingFromObject directly instead of using KyselySelectable
|
|
161
|
-
* because KyselySelectable adds unnecessary complexity and our branding is already
|
|
162
|
-
* designed to extend the base type.
|
|
163
|
-
*/
|
|
164
|
-
type SelectableType<T> = StripBrandingFromObject<T>;
|
|
165
|
-
export declare const Selectable: <Type, Encoded>(schema: Schema.Schema<Type, Encoded>) => Schema.Schema<SelectableType<Encoded>, SelectableType<Encoded>, never>;
|
|
128
|
+
export declare function Selectable<Type, Encoded>(schema: Schema.Schema<Type, Encoded>): Schema.Schema<Encoded, Encoded, never>;
|
|
166
129
|
/**
|
|
167
130
|
* Create Insertable schema from base schema
|
|
168
131
|
* Filters out generated fields (@effect/sql Model.Generated pattern)
|
|
169
132
|
*/
|
|
170
|
-
export declare
|
|
133
|
+
export declare function Insertable<Type, Encoded>(schema: Schema.Schema<Type, Encoded>): Schema.Schema<MutableInsert<Type>, MutableInsert<Encoded>, never>;
|
|
171
134
|
/**
|
|
172
135
|
* Create Updateable schema from base schema
|
|
173
136
|
*/
|
|
174
|
-
export declare
|
|
137
|
+
export declare function Updateable<Type, Encoded>(schema: Schema.Schema<Type, Encoded>): Schema.Schema<MutableUpdate<Type>, MutableUpdate<Encoded>, never>;
|
|
175
138
|
/**
|
|
176
139
|
* Schemas interface returned by getSchemas().
|
|
177
140
|
* Includes a _base property to preserve the original schema for type-level computations.
|
|
178
141
|
*
|
|
179
|
-
* Uses Schema.Schema
|
|
180
|
-
*
|
|
142
|
+
* Uses Schema.Schema.All constraint which handles both covariant and contravariant positions.
|
|
143
|
+
* This avoids variance issues with `unknown` constraints while still preserving type safety.
|
|
181
144
|
*/
|
|
182
|
-
export interface Schemas<BaseSchema extends Schema.Schema
|
|
145
|
+
export interface Schemas<BaseSchema extends Schema.Schema.All> {
|
|
183
146
|
readonly _base: BaseSchema;
|
|
184
|
-
readonly Selectable: Schema.Schema<
|
|
147
|
+
readonly Selectable: Schema.Schema<Schema.Schema.Encoded<BaseSchema>, Schema.Schema.Encoded<BaseSchema>, never>;
|
|
185
148
|
readonly Insertable: Schema.Schema<MutableInsert<Schema.Schema.Type<BaseSchema>>, MutableInsert<Schema.Schema.Encoded<BaseSchema>>, never>;
|
|
186
149
|
readonly Updateable: Schema.Schema<MutableUpdate<Schema.Schema.Type<BaseSchema>>, MutableUpdate<Schema.Schema.Encoded<BaseSchema>>, never>;
|
|
187
150
|
}
|
|
@@ -189,7 +152,7 @@ export interface Schemas<BaseSchema extends Schema.Schema<unknown, unknown, unkn
|
|
|
189
152
|
* Extended Schemas interface with branded Id type.
|
|
190
153
|
* Returned when getSchemas() is called with an idSchema parameter.
|
|
191
154
|
*/
|
|
192
|
-
export interface SchemasWithId<BaseSchema extends Schema.Schema
|
|
155
|
+
export interface SchemasWithId<BaseSchema extends Schema.Schema.All, IdSchema extends Schema.Schema.All> extends Schemas<BaseSchema> {
|
|
193
156
|
readonly Id: IdSchema;
|
|
194
157
|
}
|
|
195
158
|
/**
|
|
@@ -199,8 +162,8 @@ export interface SchemasWithId<BaseSchema extends Schema.Schema<unknown, unknown
|
|
|
199
162
|
* @param baseSchema - The base Effect Schema struct
|
|
200
163
|
* @param idSchema - Optional branded ID schema for models with @id fields
|
|
201
164
|
*/
|
|
202
|
-
export declare function getSchemas<BaseSchema extends Schema.Schema
|
|
203
|
-
export declare function getSchemas<BaseSchema extends Schema.Schema
|
|
165
|
+
export declare function getSchemas<BaseSchema extends Schema.Schema.All, IdSchema extends Schema.Schema.All>(baseSchema: BaseSchema, idSchema: IdSchema): SchemasWithId<BaseSchema, IdSchema>;
|
|
166
|
+
export declare function getSchemas<BaseSchema extends Schema.Schema.All>(baseSchema: BaseSchema): Schemas<BaseSchema>;
|
|
204
167
|
/**
|
|
205
168
|
* Extract SELECT type from schema (matches Kysely's Selectable<T> pattern)
|
|
206
169
|
*
|
|
@@ -211,8 +174,8 @@ export declare function getSchemas<BaseSchema extends Schema.Schema<unknown, unk
|
|
|
211
174
|
* This ensures: Selectable<typeof User> produces plain types { id: string, ... }
|
|
212
175
|
*
|
|
213
176
|
* Note: We use Encoded instead of Type because the Selectable function
|
|
214
|
-
*
|
|
215
|
-
*
|
|
177
|
+
* returns Schema<Encoded, Encoded, never> - the Encoded type gets the clean
|
|
178
|
+
* unbranded types that match what Kysely returns from queries.
|
|
216
179
|
*
|
|
217
180
|
* @example type UserSelect = Selectable<typeof User>
|
|
218
181
|
*/
|
|
@@ -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,EAC9B,UAAU,IAAI,gBAAgB,EAC9B,SAAS,IAAI,eAAe,EAC7B,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,CAAC;AAEF,eAAO,MAAM,YAAY,eAA8B,CAAC;AACxD,eAAO,MAAM,WAAW,eAA6B,CAAC;AAStD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;IAC5C,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;IAC7B,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;KAAE,CAAC;IACxF,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CACxB,CAAC;AAYF
|
|
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,10 +9,8 @@ export const GeneratedId = Symbol.for('/GeneratedId');
|
|
|
9
9
|
* The insert/update schemas are stored in annotations and used at runtime
|
|
10
10
|
* to determine which fields to include in Insertable/Updateable schemas.
|
|
11
11
|
*
|
|
12
|
-
* Returns
|
|
13
|
-
*
|
|
14
|
-
* 2. Runtime decode returns S values (not wrapped structs)
|
|
15
|
-
* 3. Type utilities can extract I and U from the brand
|
|
12
|
+
* Returns the base schema with annotations - branding happens at type level
|
|
13
|
+
* in generated code via type declarations, not via runtime type assertions.
|
|
16
14
|
*/
|
|
17
15
|
export const columnType = (selectSchema, insertSchema, updateSchema) => {
|
|
18
16
|
const schemas = {
|
|
@@ -20,10 +18,8 @@ export const columnType = (selectSchema, insertSchema, updateSchema) => {
|
|
|
20
18
|
insertSchema,
|
|
21
19
|
updateSchema,
|
|
22
20
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// because the runtime value IS of type S
|
|
26
|
-
return Schema.make(annotated.ast);
|
|
21
|
+
// Return annotated schema - no type assertion, just metadata
|
|
22
|
+
return selectSchema.annotations({ [ColumnTypeId]: schemas });
|
|
27
23
|
};
|
|
28
24
|
/**
|
|
29
25
|
* Mark a field as database-generated (omitted from insert)
|
|
@@ -33,14 +29,12 @@ export const columnType = (selectSchema, insertSchema, updateSchema) => {
|
|
|
33
29
|
* - Present in select and update schemas
|
|
34
30
|
* - OMITTED from insert schema (not optional, completely absent)
|
|
35
31
|
*
|
|
36
|
-
* Returns
|
|
37
|
-
*
|
|
38
|
-
* 2. Runtime decode returns T values (not wrapped structs)
|
|
32
|
+
* Returns the base schema with annotation - branding happens at type level
|
|
33
|
+
* in generated code via type declarations, not via runtime type assertions.
|
|
39
34
|
*/
|
|
40
35
|
export const generated = (schema) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return Schema.make(annotated.ast);
|
|
36
|
+
// Return annotated schema - no type assertion, just metadata marker
|
|
37
|
+
return schema.annotations({ [GeneratedId]: true });
|
|
44
38
|
};
|
|
45
39
|
/**
|
|
46
40
|
* Schema for validating column type annotations structure
|
|
@@ -120,23 +114,28 @@ const extractParametersFromTypeLiteral = (ast, schemaType) => {
|
|
|
120
114
|
// ============================================================================
|
|
121
115
|
// Schema Functions
|
|
122
116
|
// ============================================================================
|
|
123
|
-
export
|
|
117
|
+
export function Selectable(schema) {
|
|
124
118
|
// Use Encoded for both Type and Encoded to produce clean unbranded types
|
|
125
119
|
// This makes the schema an identity transformation (Type = Encoded)
|
|
126
120
|
// which matches what Kysely returns from queries
|
|
127
121
|
const { ast } = schema;
|
|
128
122
|
if (!AST.isTypeLiteral(ast)) {
|
|
123
|
+
// Non-struct schemas: use as identity
|
|
124
|
+
// Internal cast needed because Schema.make(ast) returns unknown types
|
|
125
|
+
// The return type annotation is what TypeScript uses for declaration emit
|
|
129
126
|
return Schema.asSchema(Schema.make(ast));
|
|
130
127
|
}
|
|
128
|
+
// Extract select schemas from annotated fields
|
|
131
129
|
return Schema.asSchema(Schema.make(new AST.TypeLiteral(extractParametersFromTypeLiteral(ast, 'selectSchema'), ast.indexSignatures, ast.annotations)));
|
|
132
|
-
}
|
|
130
|
+
}
|
|
133
131
|
/**
|
|
134
132
|
* Create Insertable schema from base schema
|
|
135
133
|
* Filters out generated fields (@effect/sql Model.Generated pattern)
|
|
136
134
|
*/
|
|
137
|
-
export
|
|
135
|
+
export function Insertable(schema) {
|
|
138
136
|
const { ast } = schema;
|
|
139
137
|
if (!AST.isTypeLiteral(ast)) {
|
|
138
|
+
// Internal cast - return type annotation is what TypeScript uses for declaration emit
|
|
140
139
|
return Schema.asSchema(Schema.make(ast));
|
|
141
140
|
}
|
|
142
141
|
// Extract and filter out generated fields entirely
|
|
@@ -149,28 +148,27 @@ export const Insertable = (schema) => {
|
|
|
149
148
|
return new AST.PropertySignature(prop.name, prop.type, isOptional, prop.isReadonly, prop.annotations);
|
|
150
149
|
});
|
|
151
150
|
return Schema.asSchema(Schema.make(new AST.TypeLiteral(fields, ast.indexSignatures, ast.annotations)));
|
|
152
|
-
}
|
|
151
|
+
}
|
|
153
152
|
/**
|
|
154
153
|
* Create Updateable schema from base schema
|
|
155
154
|
*/
|
|
156
|
-
export
|
|
155
|
+
export function Updateable(schema) {
|
|
157
156
|
const { ast } = schema;
|
|
158
157
|
if (!AST.isTypeLiteral(ast)) {
|
|
158
|
+
// Internal cast - return type annotation is what TypeScript uses for declaration emit
|
|
159
159
|
return Schema.asSchema(Schema.make(ast));
|
|
160
160
|
}
|
|
161
161
|
const extracted = extractParametersFromTypeLiteral(ast, 'updateSchema');
|
|
162
162
|
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);
|
|
163
163
|
return Schema.asSchema(Schema.make(res));
|
|
164
|
-
}
|
|
164
|
+
}
|
|
165
165
|
export function getSchemas(baseSchema, idSchema) {
|
|
166
|
-
|
|
167
|
-
// This is safe because Schema.Any is a supertype of all Schema types
|
|
168
|
-
const schema = baseSchema;
|
|
166
|
+
const schemaForFunctions = baseSchema;
|
|
169
167
|
const base = {
|
|
170
168
|
_base: baseSchema,
|
|
171
|
-
Selectable: Selectable(
|
|
172
|
-
Insertable: Insertable(
|
|
173
|
-
Updateable: Updateable(
|
|
169
|
+
Selectable: Selectable(schemaForFunctions),
|
|
170
|
+
Insertable: Insertable(schemaForFunctions),
|
|
171
|
+
Updateable: Updateable(schemaForFunctions),
|
|
174
172
|
};
|
|
175
173
|
if (idSchema) {
|
|
176
174
|
return { ...base, Id: idSchema };
|
|
@@ -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;AAwCxC,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;AAwDtD
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"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"}
|