prisma-effect-schema-generator 0.1.2 → 0.1.4
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/README.md +111 -4
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/mapper.d.ts +26 -0
- package/dist/mapper.d.ts.map +1 -1
- package/dist/mapper.js +86 -0
- package/dist/mapper.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +103 -0
- package/dist/render.js.map +1 -1
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -89,8 +89,11 @@ updated) on every regeneration.
|
|
|
89
89
|
| `dateAs` | `"DateFromSelf"` | `"Date"` (ISO-string codec) or `"DateFromSelf"` (accepts native `Date`). |
|
|
90
90
|
| `exportModelNames` | `"true"` | Emit `export const ALL_MODEL_NAMES = [...] as const`. |
|
|
91
91
|
| `exportModelNameType` | `"true"` | Emit `export type ModelName = "X" | "Y"`. |
|
|
92
|
-
| `standardSchemaV1` | `"false"` | Wrap
|
|
92
|
+
| `standardSchemaV1` | `"false"` | Wrap schemas in `Schema.standardSchemaV1(...)`. Narrows `Context` to `never` so libraries like TanStack DB accept the schema directly. |
|
|
93
93
|
| `relationColumns` | `"false"` | Emit a separate `Schema.Struct` for each relation that has explicit local foreign-key columns. |
|
|
94
|
+
| `idColumn` | `"false"` | Emit `PRIMARY_KEY_COLUMNS` map from model name to primary-key column (or `null`). |
|
|
95
|
+
| `softDeleteColumn` | `"false"` | Emit `SOFT_DELETE_COLUMNS` map from model name to detected soft-delete column. |
|
|
96
|
+
| `tables` | `"false"` | Emit `TableDescriptor` / `ColumnDescriptor` interfaces and a `TABLES` map for runtime introspection. |
|
|
94
97
|
|
|
95
98
|
```prisma
|
|
96
99
|
generator effect_client {
|
|
@@ -105,9 +108,79 @@ generator effect_client {
|
|
|
105
108
|
exportModelNameType = "true"
|
|
106
109
|
standardSchemaV1 = "false"
|
|
107
110
|
relationColumns = "false"
|
|
111
|
+
idColumn = "false"
|
|
112
|
+
softDeleteColumn = "false"
|
|
113
|
+
tables = "false"
|
|
108
114
|
}
|
|
109
115
|
```
|
|
110
116
|
|
|
117
|
+
### Introspection helpers (`idColumn`, `softDeleteColumn`, `tables`)
|
|
118
|
+
|
|
119
|
+
Enable these options when you need runtime metadata about your Prisma schema
|
|
120
|
+
in addition to the per-model schemas.
|
|
121
|
+
|
|
122
|
+
```prisma
|
|
123
|
+
generator effect_client {
|
|
124
|
+
provider = "prisma-effect-schema-generator"
|
|
125
|
+
idColumn = "true"
|
|
126
|
+
softDeleteColumn = "true"
|
|
127
|
+
tables = "true"
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
model User {
|
|
131
|
+
id String @id
|
|
132
|
+
email String
|
|
133
|
+
deletedAt DateTime?
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
// generated/effect-schemas/index.ts
|
|
139
|
+
export const PRIMARY_KEY_COLUMNS = {
|
|
140
|
+
User: "id",
|
|
141
|
+
} as const satisfies Record<ModelName, string | null>
|
|
142
|
+
|
|
143
|
+
export const SOFT_DELETE_COLUMNS = {
|
|
144
|
+
User: "deletedAt",
|
|
145
|
+
} as const satisfies Partial<Record<ModelName, string>>
|
|
146
|
+
|
|
147
|
+
export interface ColumnDescriptor {
|
|
148
|
+
readonly name: string
|
|
149
|
+
readonly type: 'string' | 'number' | 'boolean' | 'date' | 'json' | 'bytes' | 'unknown'
|
|
150
|
+
readonly required: boolean
|
|
151
|
+
readonly list: boolean
|
|
152
|
+
readonly unique: boolean
|
|
153
|
+
readonly isEnum: boolean
|
|
154
|
+
readonly enumValues?: ReadonlyArray<string>
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface TableDescriptor {
|
|
158
|
+
readonly name: string
|
|
159
|
+
readonly primaryKey: string | null
|
|
160
|
+
readonly softDelete: string | null
|
|
161
|
+
readonly columns: ReadonlyArray<ColumnDescriptor>
|
|
162
|
+
readonly includedInSync: boolean
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export const TABLES: { [M in ModelName]: TableDescriptor } = {
|
|
166
|
+
User: {
|
|
167
|
+
name: "User",
|
|
168
|
+
primaryKey: "id",
|
|
169
|
+
softDelete: "deletedAt",
|
|
170
|
+
columns: [
|
|
171
|
+
{ name: "id", type: 'string', required: true, list: false, unique: true, isEnum: false },
|
|
172
|
+
{ name: "email", type: 'string', required: true, list: false, unique: false, isEnum: false },
|
|
173
|
+
{ name: "deletedAt", type: 'date', required: false, list: false, unique: false, isEnum: false },
|
|
174
|
+
],
|
|
175
|
+
includedInSync: true,
|
|
176
|
+
},
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Primary keys are detected from `@id` first, then a single `String` or `Int`
|
|
181
|
+
`@unique` column. Soft-delete columns are detected by name (`deletedAt`,
|
|
182
|
+
`archivedAt`, `isDeleted`, `removedAt`) and type (`DateTime` or `Boolean`).
|
|
183
|
+
|
|
111
184
|
## Type mapping
|
|
112
185
|
|
|
113
186
|
| Prisma field | Effect Schema (default) | Encoded → Decoded |
|
|
@@ -176,9 +249,17 @@ export const UserSchema = Schema.standardSchemaV1(Schema.Struct({
|
|
|
176
249
|
email: Schema.String,
|
|
177
250
|
}))
|
|
178
251
|
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
252
|
+
// The wrapped schema still works as an Effect Schema...
|
|
253
|
+
Schema.decodeUnknownSync(UserSchema)({ id: "u1", email: "a@b.c" })
|
|
254
|
+
|
|
255
|
+
// ...and is accepted directly by Standard Schema consumers without
|
|
256
|
+
// casting Context to `never`:
|
|
257
|
+
import { createCollection } from "@tanstack/db"
|
|
258
|
+
|
|
259
|
+
const users = createCollection({
|
|
260
|
+
id: "users",
|
|
261
|
+
schema: UserSchema, // Context is `never`, no `as never` needed
|
|
262
|
+
})
|
|
182
263
|
```
|
|
183
264
|
|
|
184
265
|
## Programmatic use
|
|
@@ -227,6 +308,32 @@ npm test # vitest
|
|
|
227
308
|
npm run typecheck # tsc --noEmit
|
|
228
309
|
```
|
|
229
310
|
|
|
311
|
+
## Related projects
|
|
312
|
+
|
|
313
|
+
### How is this different from `effect-prisma-generator`?
|
|
314
|
+
|
|
315
|
+
This project is focused on **generating Effect Schema values** from your
|
|
316
|
+
Prisma schema—standalone, serializable validators you can use anywhere
|
|
317
|
+
(read-path validation, sync engines, RPC payloads, form validation, etc.).
|
|
318
|
+
|
|
319
|
+
[`m9tdev/effect-prisma-generator`](https://github.com/m9tdev/effect-prisma-generator)
|
|
320
|
+
takes the opposite approach: it generates an **Effect-native service wrapper
|
|
321
|
+
around Prisma Client**, so every Prisma operation returns an `Effect` and
|
|
322
|
+
plugs into Effect's `Layer` / `Context` system. It is great if you want to
|
|
323
|
+
run Prisma through Effect's runtime.
|
|
324
|
+
|
|
325
|
+
| | `prisma-effect-schema-generator` | `effect-prisma-generator` |
|
|
326
|
+
|---|---|---|
|
|
327
|
+
| Output | `Schema.Struct` values + introspection maps | `PrismaService` Effect service |
|
|
328
|
+
| Needs Prisma Client at runtime | No | Yes |
|
|
329
|
+
| Primary use case | Validate rows / introspect schema | Execute Prisma operations in Effect |
|
|
330
|
+
| Relations | Optional `relationColumns` schemas | Full Prisma Client relation API |
|
|
331
|
+
| Errors | Standard `Schema` decode errors | Typed `PrismaError` unions |
|
|
332
|
+
|
|
333
|
+
If you need Effect-powered Prisma Client operations, use
|
|
334
|
+
`effect-prisma-generator`. If you need portable Effect schemas and metadata
|
|
335
|
+
from your schema, use this package.
|
|
336
|
+
|
|
230
337
|
## License
|
|
231
338
|
|
|
232
339
|
MIT
|
package/dist/config.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ export declare const DEFAULTS: {
|
|
|
15
15
|
readonly exportModelNameType: true;
|
|
16
16
|
readonly standardSchemaV1: false;
|
|
17
17
|
readonly relationColumns: false;
|
|
18
|
+
readonly idColumn: false;
|
|
19
|
+
readonly softDeleteColumn: false;
|
|
20
|
+
readonly tables: false;
|
|
18
21
|
};
|
|
19
22
|
type RawConfig = Record<string, string | string[] | boolean | undefined>;
|
|
20
23
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAae,CAAC;AAErC,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAkBzE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,eAAe,CAgBjF"}
|
package/dist/config.js
CHANGED
|
@@ -18,6 +18,9 @@ exports.DEFAULTS = {
|
|
|
18
18
|
exportModelNameType: true,
|
|
19
19
|
standardSchemaV1: false,
|
|
20
20
|
relationColumns: false,
|
|
21
|
+
idColumn: false,
|
|
22
|
+
softDeleteColumn: false,
|
|
23
|
+
tables: false,
|
|
21
24
|
};
|
|
22
25
|
/**
|
|
23
26
|
* Normalise a string-or-boolean into a real boolean.
|
|
@@ -55,6 +58,9 @@ function resolveOptions(raw) {
|
|
|
55
58
|
exportModelNameType: toBool(cfg.exportModelNameType, exports.DEFAULTS.exportModelNameType),
|
|
56
59
|
standardSchemaV1: toBool(cfg.standardSchemaV1, exports.DEFAULTS.standardSchemaV1),
|
|
57
60
|
relationColumns: toBool(cfg.relationColumns, exports.DEFAULTS.relationColumns),
|
|
61
|
+
idColumn: toBool(cfg.idColumn, exports.DEFAULTS.idColumn),
|
|
62
|
+
softDeleteColumn: toBool(cfg.softDeleteColumn, exports.DEFAULTS.softDeleteColumn),
|
|
63
|
+
tables: toBool(cfg.tables, exports.DEFAULTS.tables),
|
|
58
64
|
};
|
|
59
65
|
}
|
|
60
66
|
function stringOr(v, fallback) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA+CA,wCAgBC;AA7DD;;;;;GAKG;AACU,QAAA,QAAQ,GAAG;IACtB,YAAY,EAAE,QAAQ;IACtB,gBAAgB,EAAE,QAAQ;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,cAAc;IACtB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,KAAK;IACvB,MAAM,EAAE,KAAK;CACqB,CAAC;AAIrC;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,CAAU,EAAE,QAAiB;IAC3C,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAiC;IAC9D,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IACtB,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAQ,CAAC,YAAY,CAAC;QAC/D,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAQ,CAAC,gBAAgB,CAAC;QAC3E,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC/E,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1E,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACrE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAQ,CAAC,gBAAgB,CAAC;QACzE,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,gBAAQ,CAAC,mBAAmB,CAAC;QAClF,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAQ,CAAC,gBAAgB,CAAC;QACzE,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAQ,CAAC,eAAe,CAAC;QACtE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAQ,CAAC,QAAQ,CAAC;QACjD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAQ,CAAC,gBAAgB,CAAC;QACzE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAQ,CAAC,MAAM,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,QAAgB;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9D,CAAC;AAED,SAAS,MAAM,CACb,CAAU,EACV,QAAW,EACX,OAAqB;IAErB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAM,CAAC;IAChB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*/
|
|
17
17
|
export { register, runGenerator, onGenerate, resolveOutputPath, } from "./generator.js";
|
|
18
18
|
export { renderModule } from "./render.js";
|
|
19
|
-
export { prismaFieldToBaseSchema, prismaFieldToEffectSchema, enumToSchema, isIncludeField, sortModels, } from "./mapper.js";
|
|
19
|
+
export { prismaFieldToBaseSchema, prismaFieldToEffectSchema, enumToSchema, isIncludeField, sortModels, findPrimaryKeyColumn, findSoftDeleteColumn, prismaTypeToColumnType, enumValuesForField, } from "./mapper.js";
|
|
20
20
|
export { resolveOptions, DEFAULTS } from "./config.js";
|
|
21
21
|
export { shouldQuoteName, renderKey } from "./render.js";
|
|
22
|
-
export type { DMMFDatamodelLike, DMMFEnumLike, DMMFFieldLike, DMMFModelLike, GeneratorOptionsConfig, ResolvedOptions, } from "./types.js";
|
|
22
|
+
export type { DMMFDatamodelLike, DMMFEnumLike, DMMFFieldLike, DMMFModelLike, GeneratorOptionsConfig, ResolvedOptions, TableDescriptor, ColumnDescriptor, } from "./types.js";
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* `schema.prisma` and run `prisma generate`.
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.renderKey = exports.shouldQuoteName = exports.DEFAULTS = exports.resolveOptions = exports.sortModels = exports.isIncludeField = exports.enumToSchema = exports.prismaFieldToEffectSchema = exports.prismaFieldToBaseSchema = exports.renderModule = exports.resolveOutputPath = exports.onGenerate = exports.runGenerator = exports.register = void 0;
|
|
19
|
+
exports.renderKey = exports.shouldQuoteName = exports.DEFAULTS = exports.resolveOptions = exports.enumValuesForField = exports.prismaTypeToColumnType = exports.findSoftDeleteColumn = exports.findPrimaryKeyColumn = exports.sortModels = exports.isIncludeField = exports.enumToSchema = exports.prismaFieldToEffectSchema = exports.prismaFieldToBaseSchema = exports.renderModule = exports.resolveOutputPath = exports.onGenerate = exports.runGenerator = exports.register = void 0;
|
|
20
20
|
const generator_js_1 = require("./generator.js");
|
|
21
21
|
var generator_js_2 = require("./generator.js");
|
|
22
22
|
Object.defineProperty(exports, "register", { enumerable: true, get: function () { return generator_js_2.register; } });
|
|
@@ -31,6 +31,10 @@ Object.defineProperty(exports, "prismaFieldToEffectSchema", { enumerable: true,
|
|
|
31
31
|
Object.defineProperty(exports, "enumToSchema", { enumerable: true, get: function () { return mapper_js_1.enumToSchema; } });
|
|
32
32
|
Object.defineProperty(exports, "isIncludeField", { enumerable: true, get: function () { return mapper_js_1.isIncludeField; } });
|
|
33
33
|
Object.defineProperty(exports, "sortModels", { enumerable: true, get: function () { return mapper_js_1.sortModels; } });
|
|
34
|
+
Object.defineProperty(exports, "findPrimaryKeyColumn", { enumerable: true, get: function () { return mapper_js_1.findPrimaryKeyColumn; } });
|
|
35
|
+
Object.defineProperty(exports, "findSoftDeleteColumn", { enumerable: true, get: function () { return mapper_js_1.findSoftDeleteColumn; } });
|
|
36
|
+
Object.defineProperty(exports, "prismaTypeToColumnType", { enumerable: true, get: function () { return mapper_js_1.prismaTypeToColumnType; } });
|
|
37
|
+
Object.defineProperty(exports, "enumValuesForField", { enumerable: true, get: function () { return mapper_js_1.enumValuesForField; } });
|
|
34
38
|
var config_js_1 = require("./config.js");
|
|
35
39
|
Object.defineProperty(exports, "resolveOptions", { enumerable: true, get: function () { return config_js_1.resolveOptions; } });
|
|
36
40
|
Object.defineProperty(exports, "DEFAULTS", { enumerable: true, get: function () { return config_js_1.DEFAULTS; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;GAcG;;;AAEH,iDAA0C;AAE1C,+CAKwB;AAJtB,wGAAA,QAAQ,OAAA;AACR,4GAAA,YAAY,OAAA;AACZ,0GAAA,UAAU,OAAA;AACV,iHAAA,iBAAiB,OAAA;AAEnB,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;GAcG;;;AAEH,iDAA0C;AAE1C,+CAKwB;AAJtB,wGAAA,QAAQ,OAAA;AACR,4GAAA,YAAY,OAAA;AACZ,0GAAA,UAAU,OAAA;AACV,iHAAA,iBAAiB,OAAA;AAEnB,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,yCAUqB;AATnB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AACzB,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,uGAAA,UAAU,OAAA;AACV,iHAAA,oBAAoB,OAAA;AACpB,iHAAA,oBAAoB,OAAA;AACpB,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAEpB,yCAAuD;AAA9C,2GAAA,cAAc,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACjC,yCAAyD;AAAhD,4GAAA,eAAe,OAAA;AAAE,sGAAA,SAAS,OAAA;AAYnC,oEAAoE;AACpE,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,yEAAyE;AACzE,0CAA0C;AAC1C,IACE,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG;IAClD,OAAO,OAAO,KAAK,WAAW;IAC9B,OAAO,CAAC,IAAI,KAAK,MAAM,EACvB,CAAC;IACD,IAAA,uBAAQ,GAAE,CAAC;AACb,CAAC"}
|
package/dist/mapper.d.ts
CHANGED
|
@@ -52,4 +52,30 @@ export declare function isIncludeField(field: DMMFFieldLike): boolean;
|
|
|
52
52
|
* DMMF hands them to us in. Field order inside a model is preserved.
|
|
53
53
|
*/
|
|
54
54
|
export declare function sortModels(models: readonly DMMFModelLike[]): DMMFModelLike[];
|
|
55
|
+
/**
|
|
56
|
+
* Detect the primary-key column for a model.
|
|
57
|
+
*
|
|
58
|
+
* Preference order:
|
|
59
|
+
* 1. A field with `isId: true`.
|
|
60
|
+
* 2. A single field with `isUnique: true` and type `String` or `Int`.
|
|
61
|
+
* 3. `null` (composite keys are not supported in v1).
|
|
62
|
+
*/
|
|
63
|
+
export declare function findPrimaryKeyColumn(model: DMMFModelLike): string | null;
|
|
64
|
+
/**
|
|
65
|
+
* Detect the soft-delete column for a model.
|
|
66
|
+
*
|
|
67
|
+
* Matches fields named `deletedAt`, `archivedAt`, `isDeleted`, or
|
|
68
|
+
* `removedAt` with scalar type `DateTime` or `Boolean`.
|
|
69
|
+
*/
|
|
70
|
+
export declare function findSoftDeleteColumn(model: DMMFModelLike): string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Map a Prisma scalar/enum type to a runtime column-type string.
|
|
73
|
+
*
|
|
74
|
+
* Enums are reported as `"string"` with `isEnum: true`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function prismaTypeToColumnType(type: string): "string" | "number" | "boolean" | "date" | "json" | "bytes" | "unknown";
|
|
77
|
+
/**
|
|
78
|
+
* Resolve the enum values for a field, if it is an enum field.
|
|
79
|
+
*/
|
|
80
|
+
export declare function enumValuesForField(field: DMMFFieldLike, datamodel: DMMFDatamodelLike): readonly string[] | undefined;
|
|
55
81
|
//# sourceMappingURL=mapper.d.ts.map
|
package/dist/mapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAI7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAyCxC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAOxC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAI7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAyCxC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAOxC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,MAAM,CAsBR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE5D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAE5E;AAMD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAcxE;AASD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CASxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAoB5H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,GAC3B,SAAS,MAAM,EAAE,GAAG,SAAS,CAI/B"}
|
package/dist/mapper.js
CHANGED
|
@@ -6,6 +6,10 @@ exports.prismaFieldToEffectSchema = prismaFieldToEffectSchema;
|
|
|
6
6
|
exports.enumToSchema = enumToSchema;
|
|
7
7
|
exports.isIncludeField = isIncludeField;
|
|
8
8
|
exports.sortModels = sortModels;
|
|
9
|
+
exports.findPrimaryKeyColumn = findPrimaryKeyColumn;
|
|
10
|
+
exports.findSoftDeleteColumn = findSoftDeleteColumn;
|
|
11
|
+
exports.prismaTypeToColumnType = prismaTypeToColumnType;
|
|
12
|
+
exports.enumValuesForField = enumValuesForField;
|
|
9
13
|
/**
|
|
10
14
|
* Return the local binding for the Effect Schema namespace.
|
|
11
15
|
*
|
|
@@ -100,6 +104,9 @@ function enumToSchema(enumName, datamodel, options) {
|
|
|
100
104
|
exportModelNameType: true,
|
|
101
105
|
standardSchemaV1: false,
|
|
102
106
|
relationColumns: false,
|
|
107
|
+
idColumn: false,
|
|
108
|
+
softDeleteColumn: false,
|
|
109
|
+
tables: false,
|
|
103
110
|
});
|
|
104
111
|
const en = datamodel.enums.find((e) => e.name === enumName);
|
|
105
112
|
if (!en || en.values.length === 0) {
|
|
@@ -128,4 +135,83 @@ function isIncludeField(field) {
|
|
|
128
135
|
function sortModels(models) {
|
|
129
136
|
return [...models].sort((a, b) => a.name.localeCompare(b.name));
|
|
130
137
|
}
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// Introspection helpers used by idColumn / softDeleteColumn / tables options.
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* Detect the primary-key column for a model.
|
|
143
|
+
*
|
|
144
|
+
* Preference order:
|
|
145
|
+
* 1. A field with `isId: true`.
|
|
146
|
+
* 2. A single field with `isUnique: true` and type `String` or `Int`.
|
|
147
|
+
* 3. `null` (composite keys are not supported in v1).
|
|
148
|
+
*/
|
|
149
|
+
function findPrimaryKeyColumn(model) {
|
|
150
|
+
const idField = model.fields.find((f) => f.isId);
|
|
151
|
+
if (idField)
|
|
152
|
+
return idField.name;
|
|
153
|
+
const uniqueScalarFields = model.fields.filter((f) => f.isUnique &&
|
|
154
|
+
!f.isList &&
|
|
155
|
+
(f.kind === "scalar" || f.kind === "enum") &&
|
|
156
|
+
(f.type === "String" || f.type === "Int"));
|
|
157
|
+
if (uniqueScalarFields.length === 1)
|
|
158
|
+
return uniqueScalarFields[0].name;
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const SOFT_DELETE_NAMES = new Set([
|
|
162
|
+
"deletedAt",
|
|
163
|
+
"archivedAt",
|
|
164
|
+
"isDeleted",
|
|
165
|
+
"removedAt",
|
|
166
|
+
]);
|
|
167
|
+
/**
|
|
168
|
+
* Detect the soft-delete column for a model.
|
|
169
|
+
*
|
|
170
|
+
* Matches fields named `deletedAt`, `archivedAt`, `isDeleted`, or
|
|
171
|
+
* `removedAt` with scalar type `DateTime` or `Boolean`.
|
|
172
|
+
*/
|
|
173
|
+
function findSoftDeleteColumn(model) {
|
|
174
|
+
const field = model.fields.find((f) => {
|
|
175
|
+
if (!SOFT_DELETE_NAMES.has(f.name))
|
|
176
|
+
return false;
|
|
177
|
+
return ((f.kind === "scalar" || f.kind === "enum") &&
|
|
178
|
+
(f.type === "DateTime" || f.type === "Boolean"));
|
|
179
|
+
});
|
|
180
|
+
return field ? field.name : null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Map a Prisma scalar/enum type to a runtime column-type string.
|
|
184
|
+
*
|
|
185
|
+
* Enums are reported as `"string"` with `isEnum: true`.
|
|
186
|
+
*/
|
|
187
|
+
function prismaTypeToColumnType(type) {
|
|
188
|
+
switch (type) {
|
|
189
|
+
case "String":
|
|
190
|
+
return "string";
|
|
191
|
+
case "Int":
|
|
192
|
+
case "Float":
|
|
193
|
+
case "BigInt":
|
|
194
|
+
case "Decimal":
|
|
195
|
+
return "number";
|
|
196
|
+
case "Boolean":
|
|
197
|
+
return "boolean";
|
|
198
|
+
case "DateTime":
|
|
199
|
+
return "date";
|
|
200
|
+
case "Json":
|
|
201
|
+
return "json";
|
|
202
|
+
case "Bytes":
|
|
203
|
+
return "bytes";
|
|
204
|
+
default:
|
|
205
|
+
return "unknown";
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Resolve the enum values for a field, if it is an enum field.
|
|
210
|
+
*/
|
|
211
|
+
function enumValuesForField(field, datamodel) {
|
|
212
|
+
if (field.kind !== "enum")
|
|
213
|
+
return undefined;
|
|
214
|
+
const en = datamodel.enums.find((e) => e.name === field.type);
|
|
215
|
+
return en?.values.map((v) => v.name);
|
|
216
|
+
}
|
|
131
217
|
//# sourceMappingURL=mapper.js.map
|
package/dist/mapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":";;AAcA,oCAIC;AAaD,0DA6CC;AAMD,8DAWC;AASD,
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../src/mapper.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,iBAAiB,EAEjB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAmBpB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAuCD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB,MAAM,CA2BR;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB,MAAM,EAAE,CA0CV;AAoMD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,GACvB,MAAM,CA+CR"}
|
package/dist/render.js
CHANGED
|
@@ -158,6 +158,100 @@ function capitalize(s) {
|
|
|
158
158
|
return s;
|
|
159
159
|
return s[0].toUpperCase() + s.slice(1);
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Render the `PRIMARY_KEY_COLUMNS` map when `idColumn` is enabled.
|
|
163
|
+
*
|
|
164
|
+
* The map is sorted by model name. Models with no detectable single-column
|
|
165
|
+
* primary key get `null`.
|
|
166
|
+
*/
|
|
167
|
+
function renderPrimaryKeyColumns(models) {
|
|
168
|
+
const lines = [];
|
|
169
|
+
const entries = (0, mapper_js_1.sortModels)(models).map((m) => {
|
|
170
|
+
const pk = (0, mapper_js_1.findPrimaryKeyColumn)(m);
|
|
171
|
+
return ` ${renderKey(m.name)}: ${pk === null ? "null" : JSON.stringify(pk)},`;
|
|
172
|
+
});
|
|
173
|
+
lines.push("export const PRIMARY_KEY_COLUMNS = {", ...entries, '} as const satisfies Record<ModelName, string | null>', "");
|
|
174
|
+
return lines;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Render the `SOFT_DELETE_COLUMNS` map when `softDeleteColumn` is enabled.
|
|
178
|
+
*
|
|
179
|
+
* Only models with an auto-detected soft-delete column appear in the map.
|
|
180
|
+
*/
|
|
181
|
+
function renderSoftDeleteColumns(models) {
|
|
182
|
+
const lines = [];
|
|
183
|
+
const entries = (0, mapper_js_1.sortModels)(models)
|
|
184
|
+
.map((m) => {
|
|
185
|
+
const col = (0, mapper_js_1.findSoftDeleteColumn)(m);
|
|
186
|
+
return col === null
|
|
187
|
+
? null
|
|
188
|
+
: ` ${renderKey(m.name)}: ${JSON.stringify(col)},`;
|
|
189
|
+
})
|
|
190
|
+
.filter((e) => e !== null);
|
|
191
|
+
if (entries.length === 0) {
|
|
192
|
+
lines.push('export const SOFT_DELETE_COLUMNS = {} as const satisfies Partial<Record<ModelName, string>>', "");
|
|
193
|
+
return lines;
|
|
194
|
+
}
|
|
195
|
+
lines.push("export const SOFT_DELETE_COLUMNS = {", ...entries, '} as const satisfies Partial<Record<ModelName, string>>', "");
|
|
196
|
+
return lines;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Render the `TableDescriptor` interface and `TABLES` map when `tables`
|
|
200
|
+
* is enabled.
|
|
201
|
+
*/
|
|
202
|
+
function renderTables(datamodel) {
|
|
203
|
+
const lines = [];
|
|
204
|
+
lines.push("export interface ColumnDescriptor {", ' readonly name: string', " readonly type: 'string' | 'number' | 'boolean' | 'date' | 'json' | 'bytes' | 'unknown'", ' readonly required: boolean', ' readonly list: boolean', ' readonly unique: boolean', ' readonly isEnum: boolean', ' readonly enumValues?: ReadonlyArray<string>', '}', '', 'export interface TableDescriptor {', ' readonly name: string', ' readonly primaryKey: string | null', ' readonly softDelete: string | null', ' readonly columns: ReadonlyArray<ColumnDescriptor>', ' readonly includedInSync: boolean', '}', '');
|
|
205
|
+
const models = (0, mapper_js_1.sortModels)(datamodel.models);
|
|
206
|
+
const entries = models.map((m) => renderTableEntry(m, datamodel));
|
|
207
|
+
lines.push('export const TABLES: { [M in ModelName]: TableDescriptor } = {', ...entries, '}', "");
|
|
208
|
+
return lines;
|
|
209
|
+
}
|
|
210
|
+
function renderTableEntry(model, datamodel) {
|
|
211
|
+
const tableName = model.dbName ?? model.name;
|
|
212
|
+
const primaryKey = (0, mapper_js_1.findPrimaryKeyColumn)(model);
|
|
213
|
+
const softDelete = (0, mapper_js_1.findSoftDeleteColumn)(model);
|
|
214
|
+
const columns = model.fields
|
|
215
|
+
.filter(mapper_js_1.isIncludeField)
|
|
216
|
+
.map((f) => renderColumnDescriptor(f, datamodel));
|
|
217
|
+
const columnLines = columns.length === 0
|
|
218
|
+
? [' columns: [],']
|
|
219
|
+
: [' columns: [', ...columns.map((c) => ` ${c},`), ' ],'];
|
|
220
|
+
return [
|
|
221
|
+
` ${renderKey(model.name)}: {`,
|
|
222
|
+
` name: ${JSON.stringify(tableName)},`,
|
|
223
|
+
` primaryKey: ${primaryKey === null ? "null" : JSON.stringify(primaryKey)},`,
|
|
224
|
+
` softDelete: ${softDelete === null ? "null" : JSON.stringify(softDelete)},`,
|
|
225
|
+
...columnLines,
|
|
226
|
+
' includedInSync: true,',
|
|
227
|
+
' },',
|
|
228
|
+
].join("\n");
|
|
229
|
+
}
|
|
230
|
+
function renderColumnDescriptor(field, datamodel) {
|
|
231
|
+
const enumValues = (0, mapper_js_1.enumValuesForField)(field, datamodel);
|
|
232
|
+
const isEnum = field.kind === "enum";
|
|
233
|
+
const columnType = isEnum ? "string" : (0, mapper_js_1.prismaTypeToColumnType)(field.type);
|
|
234
|
+
const base = {
|
|
235
|
+
name: JSON.stringify(field.name),
|
|
236
|
+
type: `'${columnType}'`,
|
|
237
|
+
required: String(field.isRequired),
|
|
238
|
+
list: String(field.isList),
|
|
239
|
+
unique: String(field.isId || field.isUnique),
|
|
240
|
+
isEnum: String(isEnum),
|
|
241
|
+
};
|
|
242
|
+
const parts = [
|
|
243
|
+
`name: ${base.name}`,
|
|
244
|
+
`type: ${base.type}`,
|
|
245
|
+
`required: ${base.required}`,
|
|
246
|
+
`list: ${base.list}`,
|
|
247
|
+
`unique: ${base.unique}`,
|
|
248
|
+
`isEnum: ${base.isEnum}`,
|
|
249
|
+
];
|
|
250
|
+
if (enumValues && enumValues.length > 0) {
|
|
251
|
+
parts.push(`enumValues: ${JSON.stringify([...enumValues])} as const`);
|
|
252
|
+
}
|
|
253
|
+
return `{ ${parts.join("; ")} }`;
|
|
254
|
+
}
|
|
161
255
|
/**
|
|
162
256
|
* Render the helper exports at the bottom of the file:
|
|
163
257
|
*
|
|
@@ -206,6 +300,15 @@ function renderModule(datamodel, options) {
|
|
|
206
300
|
lines.push(renderModel(m, datamodel, options));
|
|
207
301
|
lines.push(...renderRelationSchemas(m, datamodel, options));
|
|
208
302
|
}
|
|
303
|
+
if (options.idColumn) {
|
|
304
|
+
lines.push(...renderPrimaryKeyColumns(models));
|
|
305
|
+
}
|
|
306
|
+
if (options.softDeleteColumn) {
|
|
307
|
+
lines.push(...renderSoftDeleteColumns(models));
|
|
308
|
+
}
|
|
309
|
+
if (options.tables) {
|
|
310
|
+
lines.push(...renderTables(datamodel));
|
|
311
|
+
}
|
|
209
312
|
lines.push(...renderModelHelpers(models, options));
|
|
210
313
|
return lines.join("\n");
|
|
211
314
|
}
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -39,6 +39,21 @@ export interface GeneratorOptionsConfig {
|
|
|
39
39
|
* foreign-key columns (`relationFromFields`). Default `false`.
|
|
40
40
|
*/
|
|
41
41
|
readonly relationColumns?: boolean | string;
|
|
42
|
+
/**
|
|
43
|
+
* Emit `PRIMARY_KEY_COLUMNS` mapping each model to its primary-key column.
|
|
44
|
+
* Default `false`.
|
|
45
|
+
*/
|
|
46
|
+
readonly idColumn?: boolean | string;
|
|
47
|
+
/**
|
|
48
|
+
* Emit `SOFT_DELETE_COLUMNS` mapping each model to its soft-delete column
|
|
49
|
+
* (if auto-detected). Default `false`.
|
|
50
|
+
*/
|
|
51
|
+
readonly softDeleteColumn?: boolean | string;
|
|
52
|
+
/**
|
|
53
|
+
* Emit `TABLES` introspection map and `TableDescriptor` interface.
|
|
54
|
+
* Default `false`.
|
|
55
|
+
*/
|
|
56
|
+
readonly tables?: boolean | string;
|
|
42
57
|
}
|
|
43
58
|
/**
|
|
44
59
|
* Fully-resolved options (defaults applied) used internally by the renderer.
|
|
@@ -53,6 +68,33 @@ export interface ResolvedOptions {
|
|
|
53
68
|
readonly exportModelNameType: boolean;
|
|
54
69
|
readonly standardSchemaV1: boolean;
|
|
55
70
|
readonly relationColumns: boolean;
|
|
71
|
+
readonly idColumn: boolean;
|
|
72
|
+
readonly softDeleteColumn: boolean;
|
|
73
|
+
readonly tables: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Runtime descriptor for a model's table. Emitted when `tables = "true"`.
|
|
77
|
+
*/
|
|
78
|
+
export interface TableDescriptor {
|
|
79
|
+
/** SQL table name. Uses the model's `@@map` name when available. */
|
|
80
|
+
readonly name: string;
|
|
81
|
+
/** Primary-key column name, or `null` if none could be auto-detected. */
|
|
82
|
+
readonly primaryKey: string | null;
|
|
83
|
+
/** Soft-delete column name, or `null` if none was auto-detected. */
|
|
84
|
+
readonly softDelete: string | null;
|
|
85
|
+
/** Column descriptors for scalar and enum fields (relations are omitted). */
|
|
86
|
+
readonly columns: ReadonlyArray<ColumnDescriptor>;
|
|
87
|
+
/** Whether the table should participate in sync operations. */
|
|
88
|
+
readonly includedInSync: boolean;
|
|
89
|
+
}
|
|
90
|
+
export interface ColumnDescriptor {
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly type: "string" | "number" | "boolean" | "date" | "json" | "bytes" | "unknown";
|
|
93
|
+
readonly required: boolean;
|
|
94
|
+
readonly list: boolean;
|
|
95
|
+
readonly unique: boolean;
|
|
96
|
+
readonly isEnum: boolean;
|
|
97
|
+
readonly enumValues?: readonly string[];
|
|
56
98
|
}
|
|
57
99
|
/**
|
|
58
100
|
* The shape of an `@prisma/dmmf` field that we care about.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAChD,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prisma-effect-schema-generator",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Prisma generator that emits Effect Schema values for every model — drop-in validation for your database rows.",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "Prisma generator that emits Effect Schema values, relation schemas, and runtime introspection maps (primary keys, soft-delete columns, table descriptors) for every model — drop-in validation for your database rows.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"prisma",
|
|
7
7
|
"prisma-generator",
|