prisma-effect-kysely 1.3.0 → 1.4.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 +31 -0
- package/README.md +6 -0
- package/dist/effect/enum.d.ts +1 -1
- package/dist/effect/enum.js +2 -2
- package/dist/effect/generator.d.ts +1 -1
- package/dist/effect/generator.d.ts.map +1 -1
- package/dist/effect/generator.js +6 -5
- package/dist/effect/generator.js.map +1 -1
- package/dist/effect/type.d.ts +1 -1
- package/dist/effect/type.js +12 -12
- package/dist/generator/index.js +1 -1
- package/dist/generator/orchestrator.d.ts +1 -1
- package/dist/generator/orchestrator.js +7 -7
- package/dist/kysely/generator.d.ts +1 -1
- package/dist/kysely/generator.d.ts.map +1 -1
- package/dist/kysely/generator.js +3 -1
- package/dist/kysely/generator.js.map +1 -1
- package/dist/kysely/helpers.d.ts +7 -7
- package/dist/kysely/helpers.d.ts.map +1 -1
- package/dist/kysely/helpers.js +2 -2
- package/dist/kysely/helpers.js.map +1 -1
- package/dist/kysely/type.d.ts +1 -1
- package/dist/kysely/type.d.ts.map +1 -1
- package/dist/kysely/type.js +1 -1
- package/dist/kysely/type.js.map +1 -1
- package/dist/prisma/enum.d.ts +7 -2
- package/dist/prisma/enum.d.ts.map +1 -1
- package/dist/prisma/enum.js.map +1 -1
- package/dist/prisma/generator.d.ts +40 -4
- package/dist/prisma/generator.d.ts.map +1 -1
- package/dist/prisma/type.d.ts +67 -5
- package/dist/prisma/type.d.ts.map +1 -1
- package/dist/prisma/type.js +4 -4
- package/dist/prisma/type.js.map +1 -1
- package/dist/utils/naming.d.ts +15 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/dist/utils/naming.js +41 -0
- package/dist/utils/naming.js.map +1 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.4.0] - 2025-10-09
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **Naming Standardization** - All exported schemas and types now use PascalCase regardless of Prisma model naming convention
|
|
13
|
+
- Fixes inconsistent naming when models use snake_case (e.g., `session_model_preference`)
|
|
14
|
+
- Generated exports: `SessionModelPreference`, `SessionModelPreferenceSelect`, etc. (instead of `session_model_preferenceSelect`)
|
|
15
|
+
- Internal base schemas preserve original names with underscore prefix (e.g., `_session_model_preference`)
|
|
16
|
+
- Applies to operational schemas and all type exports (Select, Insert, Update, Encoded variants)
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- New `toPascalCase()` utility function for consistent TypeScript identifier generation
|
|
21
|
+
- Comprehensive tests for naming conversion (handles snake_case, kebab-case, camelCase, PascalCase)
|
|
22
|
+
- Test fixture `session_model_preference` to verify snake_case handling
|
|
23
|
+
|
|
24
|
+
### Technical Details
|
|
25
|
+
|
|
26
|
+
The generator now converts all model names to PascalCase when creating TypeScript exports using the new `toPascalCase()` utility. This ensures consistent, idiomatic TypeScript naming while preserving the original Prisma model names for internal schemas. The conversion handles snake_case, kebab-case, camelCase, and mixed formats.
|
|
27
|
+
|
|
28
|
+
**Impact**: Projects using snake_case model names will see different export names (breaking change for those projects). Projects using PascalCase models (recommended Prisma convention) will see no changes.
|
|
29
|
+
|
|
30
|
+
**Changed files:**
|
|
31
|
+
- `src/utils/naming.ts`: New naming utility
|
|
32
|
+
- `src/effect/generator.ts`: Updated to use PascalCase for all exports
|
|
33
|
+
- `src/__tests__/fixtures/test.prisma`: Added snake_case test model
|
|
34
|
+
- `src/__tests__/naming.test.ts`: New tests for naming utility
|
|
35
|
+
- `src/__tests__/generator.test.ts`: Added naming standardization tests
|
|
36
|
+
|
|
37
|
+
[1.4.0]: https://github.com/samuelho-dev/prisma-effect-kysely/compare/v1.3.1...v1.4.0
|
|
38
|
+
|
|
8
39
|
## [1.3.0] - 2025-01-09
|
|
9
40
|
|
|
10
41
|
### Added
|
package/README.md
CHANGED
|
@@ -65,6 +65,12 @@ export const User = Schema.Struct({
|
|
|
65
65
|
export type User = Schema.Schema.Type<typeof User>;
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
+
**Naming Convention**: All exported schemas and types use PascalCase, regardless of the Prisma model naming convention:
|
|
69
|
+
- Model `User` → `User`, `UserSelect`, `UserInsert`
|
|
70
|
+
- Model `session_preference` → `SessionPreference`, `SessionPreferenceSelect`, `SessionPreferenceInsert`
|
|
71
|
+
|
|
72
|
+
This ensures consistent TypeScript identifier naming while preserving the original model names for internal schemas.
|
|
73
|
+
|
|
68
74
|
### index.ts
|
|
69
75
|
|
|
70
76
|
Re-exports all generated types for easy importing
|
package/dist/effect/enum.d.ts
CHANGED
package/dist/effect/enum.js
CHANGED
|
@@ -12,7 +12,7 @@ function generateEnumSchema(enumDef) {
|
|
|
12
12
|
const value = (0, enum_1.getEnumValueDbName)(v);
|
|
13
13
|
return `"${value}"`;
|
|
14
14
|
})
|
|
15
|
-
.join(
|
|
15
|
+
.join(", ");
|
|
16
16
|
const enumName = enumDef.name;
|
|
17
17
|
return `export const ${enumName} = Schema.Literal(${enumValues});
|
|
18
18
|
|
|
@@ -27,7 +27,7 @@ function generateEnumsFile(enums) {
|
|
|
27
27
|
* DO NOT EDIT MANUALLY
|
|
28
28
|
*/`;
|
|
29
29
|
const imports = `import { Schema } from "effect";`;
|
|
30
|
-
const enumSchemas = Array.from(enums).map(generateEnumSchema).join(
|
|
30
|
+
const enumSchemas = Array.from(enums).map(generateEnumSchema).join("\n\n");
|
|
31
31
|
return `${header}\n\n${imports}\n\n${enumSchemas}`;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=enum.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAMrD;;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;;OAEG;IACH,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;IAO5C;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;IAiBrC;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;IAQ3D;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,OAAO;CAkBtC"}
|
package/dist/effect/generator.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EffectGenerator = void 0;
|
|
4
4
|
const enum_1 = require("./enum");
|
|
5
5
|
const type_1 = require("./type");
|
|
6
|
+
const naming_1 = require("../utils/naming");
|
|
6
7
|
/**
|
|
7
8
|
* Effect domain generator - orchestrates Effect Schema generation
|
|
8
9
|
*/
|
|
@@ -25,7 +26,7 @@ class EffectGenerator {
|
|
|
25
26
|
const fieldType = (0, type_1.buildFieldType)(field, this.dmmf);
|
|
26
27
|
return ` ${field.name}: ${fieldType}`;
|
|
27
28
|
})
|
|
28
|
-
.join(
|
|
29
|
+
.join(",\n");
|
|
29
30
|
const baseSchemaName = `_${model.name}`;
|
|
30
31
|
return `// ${model.name} Base Schema
|
|
31
32
|
export const ${baseSchemaName} = Schema.Struct({
|
|
@@ -37,14 +38,14 @@ ${fieldDefinitions}
|
|
|
37
38
|
*/
|
|
38
39
|
generateOperationalSchemas(model) {
|
|
39
40
|
const baseSchemaName = `_${model.name}`;
|
|
40
|
-
const operationalSchemaName = model.name;
|
|
41
|
+
const operationalSchemaName = (0, naming_1.toPascalCase)(model.name);
|
|
41
42
|
return `export const ${operationalSchemaName} = getSchemas(${baseSchemaName});`;
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Generate TypeScript type exports
|
|
45
46
|
*/
|
|
46
47
|
generateTypeExports(model) {
|
|
47
|
-
const name = model.name;
|
|
48
|
+
const name = (0, naming_1.toPascalCase)(model.name);
|
|
48
49
|
// Application-side types (decoded - for repository layer)
|
|
49
50
|
const applicationTypes = `export type ${name}Select = Schema.Schema.Type<typeof ${name}.Selectable>;
|
|
50
51
|
export type ${name}Insert = Schema.Schema.Type<typeof ${name}.Insertable>;
|
|
@@ -78,10 +79,10 @@ export type ${name}UpdateEncoded = Schema.Schema.Encoded<typeof ${name}.Updateab
|
|
|
78
79
|
`import { columnType, generated, getSchemas } from "prisma-effect-kysely";`,
|
|
79
80
|
];
|
|
80
81
|
if (hasEnums) {
|
|
81
|
-
const enumNames = this.dmmf.datamodel.enums.map((e) => e.name).join(
|
|
82
|
+
const enumNames = this.dmmf.datamodel.enums.map((e) => e.name).join(", ");
|
|
82
83
|
imports.push(`import { ${enumNames} } from "./enums";`);
|
|
83
84
|
}
|
|
84
|
-
return `${header}\n\n${imports.join(
|
|
85
|
+
return `${header}\n\n${imports.join("\n")}`;
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
exports.EffectGenerator = EffectGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":";;;AACA,iCAA2C;AAC3C,iCAAwC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":";;;AACA,iCAA2C;AAC3C,iCAAwC;AAExC,4CAA+C;AAE/C;;GAEG;AACH,MAAa,eAAe;IAC1B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,aAAa,CAAC,KAAoC;QAChD,OAAO,IAAA,wBAAiB,EAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAiB,EAAE,MAA6B;QACjE,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAA,qBAAc,EAAC,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;;OAEG;IACH,0BAA0B,CAAC,KAAiB;QAC1C,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,qBAAqB,GAAG,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvD,OAAO,gBAAgB,qBAAqB,iBAAiB,cAAc,IAAI,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAiB;QACnC,MAAM,IAAI,GAAG,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEtC,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,eAAe,IAAI,sCAAsC,IAAI;cAC5E,IAAI,sCAAsC,IAAI;cAC9C,IAAI,sCAAsC,IAAI,eAAe,CAAC;QAExE,kDAAkD;QAClD,MAAM,YAAY,GAAG;cACX,IAAI,gDAAgD,IAAI;cACxD,IAAI,gDAAgD,IAAI;cACxD,IAAI,gDAAgD,IAAI,eAAe,CAAC;QAElF,OAAO,gBAAgB,GAAG,YAAY,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,KAAiB,EAAE,MAAoB;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEpD,OAAO,GAAG,UAAU,OAAO,iBAAiB,OAAO,WAAW,EAAE,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,QAAiB;QACnC,MAAM,MAAM,GAAG;gBACH,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;IAEpC,CAAC;QAED,MAAM,OAAO,GAAG;YACd,kCAAkC;YAClC,2EAA2E;SAC5E,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,YAAY,SAAS,oBAAoB,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,CAAC;CACF;AA3FD,0CA2FC"}
|
package/dist/effect/type.d.ts
CHANGED
package/dist/effect/type.js
CHANGED
|
@@ -9,15 +9,15 @@ const annotations_1 = require("../utils/annotations");
|
|
|
9
9
|
* Uses const assertion to avoid type guards
|
|
10
10
|
*/
|
|
11
11
|
const PRISMA_SCALAR_MAP = {
|
|
12
|
-
String:
|
|
13
|
-
Int:
|
|
14
|
-
Float:
|
|
15
|
-
BigInt:
|
|
16
|
-
Decimal:
|
|
17
|
-
Boolean:
|
|
18
|
-
DateTime:
|
|
19
|
-
Json:
|
|
20
|
-
Bytes:
|
|
12
|
+
String: "Schema.String",
|
|
13
|
+
Int: "Schema.Number",
|
|
14
|
+
Float: "Schema.Number",
|
|
15
|
+
BigInt: "Schema.BigInt",
|
|
16
|
+
Decimal: "Schema.String", // For precision
|
|
17
|
+
Boolean: "Schema.Boolean",
|
|
18
|
+
DateTime: "Schema.Date",
|
|
19
|
+
Json: "Schema.Unknown", // Safe unknown type
|
|
20
|
+
Bytes: "Schema.Uint8Array",
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
23
|
* Map Prisma field type to Effect Schema type
|
|
@@ -30,8 +30,8 @@ function mapFieldToEffectType(field, dmmf) {
|
|
|
30
30
|
return typeOverride;
|
|
31
31
|
}
|
|
32
32
|
// PRIORITY 2: Handle String type with UUID detection
|
|
33
|
-
if (field.type ===
|
|
34
|
-
return
|
|
33
|
+
if (field.type === "String" && (0, type_1.isUuidField)(field)) {
|
|
34
|
+
return "Schema.UUID";
|
|
35
35
|
}
|
|
36
36
|
// PRIORITY 3: Handle scalar types with const assertion lookup
|
|
37
37
|
const scalarType = PRISMA_SCALAR_MAP[field.type];
|
|
@@ -44,7 +44,7 @@ function mapFieldToEffectType(field, dmmf) {
|
|
|
44
44
|
return field.type; // Use enum name directly
|
|
45
45
|
}
|
|
46
46
|
// PRIORITY 5: Fallback to Unknown
|
|
47
|
-
return
|
|
47
|
+
return "Schema.Unknown";
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Build complete field type with array and optional wrapping
|
package/dist/generator/index.js
CHANGED
|
@@ -22,7 +22,7 @@ const orchestrator_1 = require("./orchestrator");
|
|
|
22
22
|
__exportStar(require("../kysely/helpers"), exports);
|
|
23
23
|
exports.generator = (0, generator_helper_1.generatorHandler)({
|
|
24
24
|
onManifest: () => ({
|
|
25
|
-
version: '1.
|
|
25
|
+
version: '1.4.0',
|
|
26
26
|
defaultOutput: './generated',
|
|
27
27
|
prettyName: 'Prisma Effect Kysely Generator',
|
|
28
28
|
}),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GeneratorOptions } from
|
|
1
|
+
import type { GeneratorOptions } from "@prisma/generator-helper";
|
|
2
2
|
/**
|
|
3
3
|
* Orchestrates the generation of Effect Schema types from Prisma schema
|
|
4
4
|
* Uses domain-driven generators: Prisma → Effect → Kysely
|
|
@@ -23,7 +23,7 @@ class GeneratorOrchestrator {
|
|
|
23
23
|
validateOutputPath(options) {
|
|
24
24
|
const outputPath = options.generator.output?.value;
|
|
25
25
|
if (!outputPath) {
|
|
26
|
-
throw new Error(
|
|
26
|
+
throw new Error("Prisma Effect Generator: output path not configured.\n" +
|
|
27
27
|
'Add "output" to your generator block in schema.prisma');
|
|
28
28
|
}
|
|
29
29
|
return outputPath;
|
|
@@ -50,7 +50,7 @@ class GeneratorOrchestrator {
|
|
|
50
50
|
async generateEnums() {
|
|
51
51
|
const enums = this.prismaGen.getEnums();
|
|
52
52
|
const content = this.effectGen.generateEnums(enums);
|
|
53
|
-
await this.fileManager.writeFile(
|
|
53
|
+
await this.fileManager.writeFile("enums.ts", content);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Generate types.ts file
|
|
@@ -76,26 +76,26 @@ ${kyselyFields}
|
|
|
76
76
|
const typeExports = this.effectGen.generateTypeExports(model);
|
|
77
77
|
return `${baseSchema}\n\n${operationalSchema}\n\n${typeExports}`;
|
|
78
78
|
})
|
|
79
|
-
.join(
|
|
79
|
+
.join("\n\n");
|
|
80
80
|
// Generate DB interface
|
|
81
81
|
const dbInterface = this.kyselyGen.generateDBInterface(models);
|
|
82
82
|
const content = `${header}\n\n${modelSchemas}\n\n${dbInterface}`;
|
|
83
|
-
await this.fileManager.writeFile(
|
|
83
|
+
await this.fileManager.writeFile("types.ts", content);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Generate index.ts file
|
|
87
87
|
*/
|
|
88
88
|
async generateIndex() {
|
|
89
89
|
const content = this.kyselyGen.generateIndexFile();
|
|
90
|
-
await this.fileManager.writeFile(
|
|
90
|
+
await this.fileManager.writeFile("index.ts", content);
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
93
93
|
* Log generation start with stats
|
|
94
94
|
*/
|
|
95
95
|
logStart(options) {
|
|
96
|
-
const modelCount = options.dmmf.datamodel.models.filter((m) => !m.name.startsWith(
|
|
96
|
+
const modelCount = options.dmmf.datamodel.models.filter((m) => !m.name.startsWith("_")).length;
|
|
97
97
|
const enumCount = options.dmmf.datamodel.enums.length;
|
|
98
|
-
console.log(
|
|
98
|
+
console.log("[Prisma Effect Kysely Generator] Starting generation...");
|
|
99
99
|
console.log(`[Effect Generator] Processing ${modelCount} models, ${enumCount} enums`);
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/kysely/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAKrD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;IAUzC;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/kysely/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAKrD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;IAUzC;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAMjD;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;IAIjD;;OAEG;IACH,iBAAiB;CAGlB"}
|
package/dist/kysely/generator.js
CHANGED
|
@@ -25,7 +25,9 @@ class KyselyGenerator {
|
|
|
25
25
|
* Generate all fields for a model with Kysely integration
|
|
26
26
|
*/
|
|
27
27
|
generateModelFields(fields) {
|
|
28
|
-
return Array.from(fields)
|
|
28
|
+
return Array.from(fields)
|
|
29
|
+
.map((field) => this.generateFieldWithKysely(field))
|
|
30
|
+
.join(",\n");
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Generate DB interface for all models
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/kysely/generator.ts"],"names":[],"mappings":";;;AACA,iCAAmE;AACnE,yCAAgD;AAGhD;;;GAGG;AACH,MAAa,eAAe;IAC1B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,uBAAuB,CAAC,KAAiB;QACvC,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAA,qBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,gCAAgC;QAChC,MAAM,eAAe,GAAG,IAAA,2BAAoB,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEnE,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAA6B;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/kysely/generator.ts"],"names":[],"mappings":";;;AACA,iCAAmE;AACnE,yCAAgD;AAGhD;;;GAGG;AACH,MAAa,eAAe;IAC1B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;OAEG;IACH,uBAAuB,CAAC,KAAiB;QACvC,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAA,qBAAc,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,gCAAgC;QAChC,MAAM,eAAe,GAAG,IAAA,2BAAoB,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEnE,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAA6B;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;aACnD,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAA6B;QAC/C,OAAO,IAAA,0BAAmB,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,oDAAoD,CAAC;IAC9D,CAAC;CACF;AAtCD,0CAsCC"}
|
package/dist/kysely/helpers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as S from 'effect/Schema';
|
|
2
|
-
import {
|
|
2
|
+
import { Insertable, Selectable, Updateable } from 'kysely';
|
|
3
3
|
/**
|
|
4
4
|
* Runtime helpers for Kysely schema integration
|
|
5
5
|
* These are imported by generated code
|
|
@@ -10,20 +10,20 @@ export declare const GeneratedId: unique symbol;
|
|
|
10
10
|
* Mark a field as having different types for select/insert/update
|
|
11
11
|
* Used for ID fields with @default (read-only)
|
|
12
12
|
*/
|
|
13
|
-
export declare const columnType: <SType, SEncoded, IType, IEncoded, UType, UEncoded>(selectSchema: S.Schema<SType, SEncoded>, insertSchema: S.Schema<IType, IEncoded>, updateSchema: S.Schema<UType, UEncoded>) => S.Schema<
|
|
13
|
+
export declare const columnType: <SType, SEncoded, SR, IType, IEncoded, IR, UType, UEncoded, UR>(selectSchema: S.Schema<SType, SEncoded, SR>, insertSchema: S.Schema<IType, IEncoded, IR>, updateSchema: S.Schema<UType, UEncoded, UR>) => S.Schema<SType, SEncoded, SR>;
|
|
14
14
|
/**
|
|
15
15
|
* Mark a field as database-generated (optional on insert)
|
|
16
16
|
* Used for fields with @default
|
|
17
17
|
*/
|
|
18
|
-
export declare const generated: <SType, SEncoded>(schema: S.Schema<SType, SEncoded>) => S.
|
|
18
|
+
export declare const generated: <SType, SEncoded, R>(schema: S.Schema<SType, SEncoded, R>) => S.Schema<SType, SEncoded, R>;
|
|
19
19
|
/**
|
|
20
20
|
* Create selectable schema from base schema
|
|
21
21
|
*/
|
|
22
|
-
export declare const selectable: <Type, Encoded>(schema: S.Schema<Type, Encoded>) => S.
|
|
22
|
+
export declare const selectable: <Type, Encoded>(schema: S.Schema<Type, Encoded>) => S.SchemaClass<unknown, unknown, never>;
|
|
23
23
|
/**
|
|
24
24
|
* Create insertable schema from base schema
|
|
25
25
|
*/
|
|
26
|
-
export declare const insertable: <Type, Encoded>(schema: S.Schema<Type, Encoded>) => S.
|
|
26
|
+
export declare const insertable: <Type, Encoded>(schema: S.Schema<Type, Encoded>) => S.SchemaClass<unknown, unknown, never>;
|
|
27
27
|
/**
|
|
28
28
|
* Create updateable schema from base schema
|
|
29
29
|
*/
|
|
@@ -38,8 +38,8 @@ export interface Schemas<Type, Encoded> {
|
|
|
38
38
|
* Used in generated code
|
|
39
39
|
*/
|
|
40
40
|
export declare const getSchemas: <Type, Encoded>(baseSchema: S.Schema<Type, Encoded>) => {
|
|
41
|
-
Selectable: S.
|
|
42
|
-
Insertable: S.
|
|
41
|
+
Selectable: S.SchemaClass<unknown, unknown, never>;
|
|
42
|
+
Insertable: S.SchemaClass<unknown, unknown, never>;
|
|
43
43
|
Updateable: S.SchemaClass<unknown, unknown, never>;
|
|
44
44
|
};
|
|
45
45
|
export interface GetTypes<T extends Schemas<unknown, unknown>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAGL,UAAU,EACV,UAAU,EACV,UAAU,EACX,MAAM,QAAQ,CAAC;AAEhB;;;GAGG;AAEH,eAAO,MAAM,YAAY,eAA8B,CAAC;AACxD,eAAO,MAAM,WAAW,eAA6B,CAAC;AAwBtD;;;GAGG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,EACL,QAAQ,EACR,EAAE,EACF,KAAK,EACL,QAAQ,EACR,EAAE,EACF,KAAK,EACL,QAAQ,EACR,EAAE,EAEF,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAC3C,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAC3C,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,kCAkB5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,EAC1C,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,iCAQrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,2CAYxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,2CAuBxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,2CAwBxE,CAAC;AAEF,MAAM,WAAW,OAAO,CAAC,IAAI,EAAE,OAAO;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,EAAE,OAAO,EACtC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;;;;CAKnC,CAAC;AAEH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;CAC5C"}
|
package/dist/kysely/helpers.js
CHANGED
|
@@ -52,7 +52,7 @@ const columnType = (selectSchema, insertSchema, updateSchema) => {
|
|
|
52
52
|
insertSchema,
|
|
53
53
|
updateSchema,
|
|
54
54
|
};
|
|
55
|
-
return
|
|
55
|
+
return selectSchema.annotations({ [exports.ColumnTypeId]: schemas });
|
|
56
56
|
};
|
|
57
57
|
exports.columnType = columnType;
|
|
58
58
|
/**
|
|
@@ -65,7 +65,7 @@ const generated = (schema) => {
|
|
|
65
65
|
insertSchema: S.Union(schema, S.Undefined),
|
|
66
66
|
updateSchema: schema,
|
|
67
67
|
};
|
|
68
|
-
return
|
|
68
|
+
return schema.annotations({ [exports.GeneratedId]: schemas });
|
|
69
69
|
};
|
|
70
70
|
exports.generated = generated;
|
|
71
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/kysely/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,iDAAmC;AASnC;;;GAGG;AAEU,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC3C,QAAA,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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"}
|
package/dist/kysely/type.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,UAOtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,UAMrE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,UAOtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,UAMrE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,UAQ5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAIzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,UAShE"}
|
package/dist/kysely/type.js
CHANGED
|
@@ -69,7 +69,7 @@ function generateDBInterfaceEntry(model) {
|
|
|
69
69
|
function generateDBInterface(models) {
|
|
70
70
|
const tableEntries = Array.from(models)
|
|
71
71
|
.map(generateDBInterfaceEntry)
|
|
72
|
-
.join(
|
|
72
|
+
.join("\n");
|
|
73
73
|
return `// Kysely Database Interface
|
|
74
74
|
export interface DB {
|
|
75
75
|
${tableEntries}
|
package/dist/kysely/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAMD,wCAEC;AAKD,gDAOC;AAKD,8CAMC;AAMD,
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAMD,wCAEC;AAKD,gDAOC;AAKD,8CAMC;AAMD,oDAQC;AAKD,4DAIC;AAKD,kDASC;AA5ED,yCAA4E;AAE5E;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAiB;IAC/C,OAAO,IAAA,sBAAe,EAAC,KAAK,CAAC,IAAI,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAiB;IAC9C,OAAO,IAAA,sBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,SAAiB,EAAE,KAAiB;IACrE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,cAAc,SAAS,+BAA+B,CAAC;IAChE,CAAC;SAAM,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,aAAa,SAAS,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAAiB,EAAE,KAAiB;IACpE,MAAM,MAAM,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,4BAA4B,SAAS,0BAA0B,MAAM,KAAK,CAAC;IACpF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,aAAqB,EAAE,KAAiB;IAC3E,uDAAuD;IACvD,IAAI,SAAS,GAAG,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEzD,yDAAyD;IACzD,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEhD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CAAC,KAAiB;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,SAAS,kCAAkC,cAAc,IAAI,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAA6B;IAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACpC,GAAG,CAAC,wBAAwB,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;EAEP,YAAY;EACZ,CAAC;AACH,CAAC"}
|
package/dist/prisma/enum.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type { DMMF } from
|
|
1
|
+
import type { DMMF } from "@prisma/generator-helper";
|
|
2
2
|
/**
|
|
3
3
|
* Extract enum definitions from Prisma DMMF
|
|
4
4
|
* Handles @map directive for database-level enum values
|
|
5
5
|
*/
|
|
6
|
-
export declare function extractEnums(dmmf: DMMF.Document): readonly
|
|
6
|
+
export declare function extractEnums(dmmf: DMMF.Document): readonly import("@prisma/dmmf/dist/util").ReadonlyDeep<import("@prisma/dmmf/dist/util").ReadonlyDeep<import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
7
|
+
name: string;
|
|
8
|
+
values: DMMF.EnumValue[];
|
|
9
|
+
dbName?: string | null;
|
|
10
|
+
documentation?: string;
|
|
11
|
+
}>>>[];
|
|
7
12
|
/**
|
|
8
13
|
* Get the database value for an enum value (respects @map directive)
|
|
9
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/prisma/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;GAGG;AACH,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../src/prisma/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ;;;;;OAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,UAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,YAE1D"}
|
package/dist/prisma/enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/prisma/enum.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../src/prisma/enum.ts"],"names":[],"mappings":";;AAMA,oCAEC;AAKD,gDAEC;AAKD,0CAEC;AApBD;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAmB;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,SAAyB;IAC1D,OAAO,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,OAA2B;IACzD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DMMF } from
|
|
1
|
+
import type { DMMF } from "@prisma/generator-helper";
|
|
2
2
|
/**
|
|
3
3
|
* Prisma domain generator - orchestrates DMMF parsing and extraction
|
|
4
4
|
* No schema generation here, just native Prisma data extraction
|
|
@@ -9,14 +9,50 @@ export declare class PrismaGenerator {
|
|
|
9
9
|
/**
|
|
10
10
|
* Get all enums from DMMF
|
|
11
11
|
*/
|
|
12
|
-
getEnums(): readonly
|
|
12
|
+
getEnums(): readonly import("@prisma/dmmf/dist/util").ReadonlyDeep<import("@prisma/dmmf/dist/util").ReadonlyDeep<import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
13
|
+
name: string;
|
|
14
|
+
values: DMMF.EnumValue[];
|
|
15
|
+
dbName?: string | null;
|
|
16
|
+
documentation?: string;
|
|
17
|
+
}>>>[];
|
|
13
18
|
/**
|
|
14
19
|
* Get all models from DMMF (filtered and sorted)
|
|
15
20
|
*/
|
|
16
|
-
getModels():
|
|
21
|
+
getModels(): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
22
|
+
name: string;
|
|
23
|
+
dbName: string | null;
|
|
24
|
+
schema: string | null;
|
|
25
|
+
fields: DMMF.Field[];
|
|
26
|
+
uniqueFields: string[][];
|
|
27
|
+
uniqueIndexes: DMMF.uniqueIndex[];
|
|
28
|
+
documentation?: string;
|
|
29
|
+
primaryKey: DMMF.PrimaryKey | null;
|
|
30
|
+
isGenerated?: boolean;
|
|
31
|
+
}>[];
|
|
17
32
|
/**
|
|
18
33
|
* Get schema fields for a model (filtered and sorted)
|
|
19
34
|
*/
|
|
20
|
-
getModelFields(model: DMMF.Model):
|
|
35
|
+
getModelFields(model: DMMF.Model): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
36
|
+
kind: DMMF.FieldKind;
|
|
37
|
+
name: string;
|
|
38
|
+
isRequired: boolean;
|
|
39
|
+
isList: boolean;
|
|
40
|
+
isUnique: boolean;
|
|
41
|
+
isId: boolean;
|
|
42
|
+
isReadOnly: boolean;
|
|
43
|
+
isGenerated?: boolean;
|
|
44
|
+
isUpdatedAt?: boolean;
|
|
45
|
+
type: string;
|
|
46
|
+
nativeType?: [string, string[]] | null;
|
|
47
|
+
dbName?: string | null;
|
|
48
|
+
hasDefaultValue: boolean;
|
|
49
|
+
default?: DMMF.FieldDefault | DMMF.FieldDefaultScalar | DMMF.FieldDefaultScalar[];
|
|
50
|
+
relationFromFields?: string[];
|
|
51
|
+
relationToFields?: string[];
|
|
52
|
+
relationOnDelete?: string;
|
|
53
|
+
relationOnUpdate?: string;
|
|
54
|
+
relationName?: string;
|
|
55
|
+
documentation?: string;
|
|
56
|
+
}>[];
|
|
21
57
|
}
|
|
22
58
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/prisma/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,QAAQ
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/prisma/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD;;;GAGG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI,CAAC,QAAQ;IAEhD;;OAEG;IACH,QAAQ;;;;;;IAIR;;OAEG;IACH,SAAS;;;;;;;;;;;IAOT;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;CAIjC"}
|
package/dist/prisma/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DMMF } from
|
|
1
|
+
import type { DMMF } from "@prisma/generator-helper";
|
|
2
2
|
/**
|
|
3
3
|
* Check if a field is a UUID using native DMMF type information
|
|
4
4
|
* 3-tier detection: native type � documentation � field name patterns
|
|
@@ -27,11 +27,42 @@ export declare function isListField(field: DMMF.Field): boolean;
|
|
|
27
27
|
/**
|
|
28
28
|
* Filter models to exclude internal models (starting with _)
|
|
29
29
|
*/
|
|
30
|
-
export declare function filterInternalModels(models: readonly DMMF.Model[]):
|
|
30
|
+
export declare function filterInternalModels(models: readonly DMMF.Model[]): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
31
|
+
name: string;
|
|
32
|
+
dbName: string | null;
|
|
33
|
+
schema: string | null;
|
|
34
|
+
fields: DMMF.Field[];
|
|
35
|
+
uniqueFields: string[][];
|
|
36
|
+
uniqueIndexes: DMMF.uniqueIndex[];
|
|
37
|
+
documentation?: string;
|
|
38
|
+
primaryKey: DMMF.PrimaryKey | null;
|
|
39
|
+
isGenerated?: boolean;
|
|
40
|
+
}>[];
|
|
31
41
|
/**
|
|
32
42
|
* Filter fields to only include scalar and enum fields (exclude relations)
|
|
33
43
|
*/
|
|
34
|
-
export declare function filterSchemaFields(fields: readonly DMMF.Field[]):
|
|
44
|
+
export declare function filterSchemaFields(fields: readonly DMMF.Field[]): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
45
|
+
kind: DMMF.FieldKind;
|
|
46
|
+
name: string;
|
|
47
|
+
isRequired: boolean;
|
|
48
|
+
isList: boolean;
|
|
49
|
+
isUnique: boolean;
|
|
50
|
+
isId: boolean;
|
|
51
|
+
isReadOnly: boolean;
|
|
52
|
+
isGenerated?: boolean;
|
|
53
|
+
isUpdatedAt?: boolean;
|
|
54
|
+
type: string;
|
|
55
|
+
nativeType?: [string, string[]] | null;
|
|
56
|
+
dbName?: string | null;
|
|
57
|
+
hasDefaultValue: boolean;
|
|
58
|
+
default?: DMMF.FieldDefault | DMMF.FieldDefaultScalar | DMMF.FieldDefaultScalar[];
|
|
59
|
+
relationFromFields?: string[];
|
|
60
|
+
relationToFields?: string[];
|
|
61
|
+
relationOnDelete?: string;
|
|
62
|
+
relationOnUpdate?: string;
|
|
63
|
+
relationName?: string;
|
|
64
|
+
documentation?: string;
|
|
65
|
+
}>[];
|
|
35
66
|
/**
|
|
36
67
|
* Get the database table name for a model (respects @@map directive)
|
|
37
68
|
*/
|
|
@@ -39,9 +70,40 @@ export declare function getModelDbName(model: DMMF.Model): string;
|
|
|
39
70
|
/**
|
|
40
71
|
* Sort models alphabetically for deterministic output
|
|
41
72
|
*/
|
|
42
|
-
export declare function sortModels(models: readonly DMMF.Model[]):
|
|
73
|
+
export declare function sortModels(models: readonly DMMF.Model[]): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
74
|
+
name: string;
|
|
75
|
+
dbName: string | null;
|
|
76
|
+
schema: string | null;
|
|
77
|
+
fields: DMMF.Field[];
|
|
78
|
+
uniqueFields: string[][];
|
|
79
|
+
uniqueIndexes: DMMF.uniqueIndex[];
|
|
80
|
+
documentation?: string;
|
|
81
|
+
primaryKey: DMMF.PrimaryKey | null;
|
|
82
|
+
isGenerated?: boolean;
|
|
83
|
+
}>[];
|
|
43
84
|
/**
|
|
44
85
|
* Sort fields alphabetically for deterministic output
|
|
45
86
|
*/
|
|
46
|
-
export declare function sortFields(fields: readonly DMMF.Field[]):
|
|
87
|
+
export declare function sortFields(fields: readonly DMMF.Field[]): import("@prisma/dmmf/dist/util").ReadonlyDeep<{
|
|
88
|
+
kind: DMMF.FieldKind;
|
|
89
|
+
name: string;
|
|
90
|
+
isRequired: boolean;
|
|
91
|
+
isList: boolean;
|
|
92
|
+
isUnique: boolean;
|
|
93
|
+
isId: boolean;
|
|
94
|
+
isReadOnly: boolean;
|
|
95
|
+
isGenerated?: boolean;
|
|
96
|
+
isUpdatedAt?: boolean;
|
|
97
|
+
type: string;
|
|
98
|
+
nativeType?: [string, string[]] | null;
|
|
99
|
+
dbName?: string | null;
|
|
100
|
+
hasDefaultValue: boolean;
|
|
101
|
+
default?: DMMF.FieldDefault | DMMF.FieldDefaultScalar | DMMF.FieldDefaultScalar[];
|
|
102
|
+
relationFromFields?: string[];
|
|
103
|
+
relationToFields?: string[];
|
|
104
|
+
relationOnDelete?: string;
|
|
105
|
+
relationOnUpdate?: string;
|
|
106
|
+
relationName?: string;
|
|
107
|
+
documentation?: string;
|
|
108
|
+
}>[];
|
|
47
109
|
//# sourceMappingURL=type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAoB5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAoB5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAE5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;;;;;;;;;;KAEjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;KAI/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAE/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;;;;;;;;;;KAEvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;KAEvD"}
|
package/dist/prisma/type.js
CHANGED
|
@@ -17,11 +17,11 @@ exports.sortFields = sortFields;
|
|
|
17
17
|
*/
|
|
18
18
|
function isUuidField(field) {
|
|
19
19
|
// 1. Check native type (most reliable)
|
|
20
|
-
if (field.nativeType?.[0] ===
|
|
20
|
+
if (field.nativeType?.[0] === "Uuid") {
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
23
23
|
// 2. Check documentation for @db.Uuid
|
|
24
|
-
if (field.documentation?.includes(
|
|
24
|
+
if (field.documentation?.includes("@db.Uuid")) {
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
27
|
// 3. Fallback: Field name patterns
|
|
@@ -67,13 +67,13 @@ function isListField(field) {
|
|
|
67
67
|
* Filter models to exclude internal models (starting with _)
|
|
68
68
|
*/
|
|
69
69
|
function filterInternalModels(models) {
|
|
70
|
-
return models.filter((model) => !model.name.startsWith(
|
|
70
|
+
return models.filter((model) => !model.name.startsWith("_"));
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* Filter fields to only include scalar and enum fields (exclude relations)
|
|
74
74
|
*/
|
|
75
75
|
function filterSchemaFields(fields) {
|
|
76
|
-
return fields.filter((field) => field.kind ===
|
|
76
|
+
return fields.filter((field) => field.kind === "scalar" || field.kind === "enum");
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
79
|
* Get the database table name for a model (respects @@map directive)
|
package/dist/prisma/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":";;AAMA,kCAoBC;AAKD,wCAEC;AAKD,0CAEC;AAKD,8BAEC;AAKD,0CAEC;AAKD,kCAEC;AAKD,
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":";;AAMA,kCAoBC;AAKD,wCAEC;AAKD,0CAEC;AAKD,8BAEC;AAKD,0CAEC;AAKD,kCAEC;AAKD,oDAEC;AAKD,gDAIC;AAKD,wCAEC;AAKD,gCAEC;AAKD,gCAEC;AAhGD;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAiB;IAC3C,uCAAuC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mCAAmC;IACnC,MAAM,iBAAiB,GAAG;QACxB,MAAM,EAAE,oBAAoB;QAC5B,MAAM,EAAE,wBAAwB;QAChC,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,qBAAqB;KACvB,CAAC;IAEX,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAiB;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAA6B;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAA6B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAC5D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,MAA6B;IACtD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,MAA6B;IACtD,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Naming utilities for consistent TypeScript identifier generation
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert any string to PascalCase for TypeScript type names
|
|
6
|
+
* Handles: snake_case, camelCase, kebab-case, or mixed formats
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* toPascalCase('user') // 'User'
|
|
10
|
+
* toPascalCase('session_model_preference') // 'SessionModelPreference'
|
|
11
|
+
* toPascalCase('user-profile') // 'UserProfile'
|
|
12
|
+
* toPascalCase('userProfile') // 'UserProfile'
|
|
13
|
+
*/
|
|
14
|
+
export declare function toPascalCase(str: string): string;
|
|
15
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyBhD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Naming utilities for consistent TypeScript identifier generation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.toPascalCase = toPascalCase;
|
|
7
|
+
/**
|
|
8
|
+
* Convert any string to PascalCase for TypeScript type names
|
|
9
|
+
* Handles: snake_case, camelCase, kebab-case, or mixed formats
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* toPascalCase('user') // 'User'
|
|
13
|
+
* toPascalCase('session_model_preference') // 'SessionModelPreference'
|
|
14
|
+
* toPascalCase('user-profile') // 'UserProfile'
|
|
15
|
+
* toPascalCase('userProfile') // 'UserProfile'
|
|
16
|
+
*/
|
|
17
|
+
function toPascalCase(str) {
|
|
18
|
+
// Handle empty string
|
|
19
|
+
if (!str)
|
|
20
|
+
return str;
|
|
21
|
+
// Split on underscores, dashes, or spaces
|
|
22
|
+
const words = str.split(/[_-\s]+/);
|
|
23
|
+
// If no delimiters found, check if already camelCase/PascalCase
|
|
24
|
+
if (words.length === 1) {
|
|
25
|
+
// Split camelCase/PascalCase by capital letters
|
|
26
|
+
const camelWords = str.split(/(?=[A-Z])/);
|
|
27
|
+
if (camelWords.length > 1) {
|
|
28
|
+
return camelWords
|
|
29
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
30
|
+
.join('');
|
|
31
|
+
}
|
|
32
|
+
// Single word - just capitalize first letter
|
|
33
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
34
|
+
}
|
|
35
|
+
// Convert each word to PascalCase
|
|
36
|
+
return words
|
|
37
|
+
.filter((word) => word.length > 0) // Remove empty strings
|
|
38
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
39
|
+
.join('');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAYH,oCAyBC;AAnCD;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,GAAW;IACtC,sBAAsB;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IAErB,0CAA0C;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnC,gEAAgE;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,gDAAgD;QAChD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,UAAU;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBACzE,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,6CAA6C;QAC7C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,kCAAkC;IAClC,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uBAAuB;SACzD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prisma-effect-kysely",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Prisma generator that creates Effect Schema types from Prisma schema compatible with Kysely",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Samuel Ho",
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@prisma/client": "6.16.3",
|
|
59
|
+
"@prisma/dmmf": "^6.17.0",
|
|
59
60
|
"@prisma/generator-helper": "^6.17.0",
|
|
60
61
|
"effect": "^3.18.4",
|
|
61
62
|
"prettier": "^3.6.2"
|