prisma-effect-kysely 1.13.0 → 1.14.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 +45 -0
- package/README.md +30 -0
- package/dist/effect/enum.d.ts +1 -1
- package/dist/effect/enum.d.ts.map +1 -1
- package/dist/effect/enum.js +19 -22
- package/dist/effect/enum.js.map +1 -1
- package/dist/effect/generator.d.ts +1 -1
- package/dist/effect/generator.d.ts.map +1 -1
- package/dist/effect/generator.js +17 -20
- package/dist/effect/generator.js.map +1 -1
- package/dist/effect/join-table.d.ts +1 -1
- package/dist/effect/join-table.d.ts.map +1 -1
- package/dist/effect/join-table.js +7 -11
- package/dist/effect/join-table.js.map +1 -1
- package/dist/effect/type.js +10 -14
- package/dist/effect/type.js.map +1 -1
- package/dist/generator/config.d.ts +1 -1
- package/dist/generator/config.d.ts.map +1 -1
- package/dist/generator/config.js +10 -15
- package/dist/generator/config.js.map +1 -1
- package/dist/generator/contract-scaffolder.d.ts +2 -2
- package/dist/generator/contract-scaffolder.d.ts.map +1 -1
- package/dist/generator/contract-scaffolder.js +21 -65
- package/dist/generator/contract-scaffolder.js.map +1 -1
- package/dist/generator/domain-detector.d.ts.map +1 -1
- package/dist/generator/domain-detector.js +5 -43
- package/dist/generator/domain-detector.js.map +1 -1
- package/dist/generator/index.d.ts +2 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +9 -27
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/orchestrator.d.ts.map +1 -1
- package/dist/generator/orchestrator.js +33 -40
- package/dist/generator/orchestrator.js.map +1 -1
- package/dist/kysely/generator.d.ts +1 -1
- package/dist/kysely/generator.d.ts.map +1 -1
- package/dist/kysely/generator.js +9 -12
- package/dist/kysely/generator.js.map +1 -1
- package/dist/kysely/helpers.d.ts +4 -8
- package/dist/kysely/helpers.d.ts.map +1 -1
- package/dist/kysely/helpers.js +29 -71
- package/dist/kysely/helpers.js.map +1 -1
- package/dist/kysely/type.d.ts +2 -1
- package/dist/kysely/type.d.ts.map +1 -1
- package/dist/kysely/type.js +27 -39
- package/dist/kysely/type.js.map +1 -1
- package/dist/prisma/enum.d.ts +1 -1
- package/dist/prisma/enum.d.ts.map +1 -1
- package/dist/prisma/enum.js +3 -8
- package/dist/prisma/enum.js.map +1 -1
- package/dist/prisma/generator.d.ts +2 -2
- package/dist/prisma/generator.d.ts.map +1 -1
- package/dist/prisma/generator.js +6 -42
- package/dist/prisma/generator.js.map +1 -1
- package/dist/prisma/relation.d.ts.map +1 -1
- package/dist/prisma/relation.js +45 -48
- package/dist/prisma/relation.js.map +1 -1
- package/dist/prisma/type.d.ts +1 -1
- package/dist/prisma/type.d.ts.map +1 -1
- package/dist/prisma/type.js +16 -29
- package/dist/prisma/type.js.map +1 -1
- package/dist/utils/annotations.d.ts.map +1 -1
- package/dist/utils/annotations.js +3 -9
- package/dist/utils/annotations.js.map +1 -1
- package/dist/utils/codegen.js +1 -4
- package/dist/utils/codegen.js.map +1 -1
- package/dist/utils/file-manager.js +9 -12
- package/dist/utils/file-manager.js.map +1 -1
- package/dist/utils/naming.d.ts +11 -0
- package/dist/utils/naming.d.ts.map +1 -1
- package/dist/utils/naming.js +15 -6
- package/dist/utils/naming.js.map +1 -1
- package/dist/utils/templates.d.ts.map +1 -1
- package/dist/utils/templates.js +5 -43
- package/dist/utils/templates.js.map +1 -1
- package/package.json +33 -25
- package/dist/utils/unsupported-config.d.ts +0 -26
- package/dist/utils/unsupported-config.d.ts.map +0 -1
- package/dist/utils/unsupported-config.js +0 -36
- package/dist/utils/unsupported-config.js.map +0 -1
package/dist/prisma/relation.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModelIdField = getModelIdField;
|
|
4
|
-
exports.detectImplicitManyToMany = detectImplicitManyToMany;
|
|
5
|
-
const type_1 = require("./type");
|
|
1
|
+
import { isUuidField } from './type.js';
|
|
6
2
|
/**
|
|
7
3
|
* Detect if a relation field is part of an implicit many-to-many relation
|
|
8
4
|
* Criteria:
|
|
@@ -23,7 +19,7 @@ function isImplicitManyToManyField(field) {
|
|
|
23
19
|
* Get the ID field from a model
|
|
24
20
|
* Handles both single @id and composite @@id
|
|
25
21
|
*/
|
|
26
|
-
function getModelIdField(model) {
|
|
22
|
+
export function getModelIdField(model) {
|
|
27
23
|
// Try to find single @id field
|
|
28
24
|
const idField = model.fields.find((f) => f.isId === true);
|
|
29
25
|
if (idField) {
|
|
@@ -43,58 +39,59 @@ function getModelIdField(model) {
|
|
|
43
39
|
* Detect all implicit many-to-many relations from DMMF models
|
|
44
40
|
* Returns metadata for generating join table schemas
|
|
45
41
|
*/
|
|
46
|
-
function detectImplicitManyToMany(models) {
|
|
42
|
+
export function detectImplicitManyToMany(models) {
|
|
47
43
|
const joinTables = new Map();
|
|
48
44
|
for (const model of models) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
continue;
|
|
52
|
-
}
|
|
53
|
-
// Get the related model
|
|
45
|
+
const validFields = model.fields.filter((field) => shouldProcessField(field, model, models));
|
|
46
|
+
for (const field of validFields) {
|
|
54
47
|
const relatedModel = models.find((m) => m.name === field.type);
|
|
55
|
-
if (!relatedModel) {
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
// Check if the relation is reciprocal (both sides are lists)
|
|
59
|
-
const relatedField = relatedModel.fields.find((f) => f.relationName === field.relationName && f.isList === true);
|
|
60
|
-
if (!relatedField || !isImplicitManyToManyField(relatedField)) {
|
|
61
|
-
// Not a true implicit m-n relation
|
|
48
|
+
if (!(relatedModel && isValidImplicitRelation(field, relatedModel))) {
|
|
62
49
|
continue;
|
|
63
50
|
}
|
|
64
|
-
|
|
65
|
-
if (model.name === relatedModel.name) {
|
|
51
|
+
if (!field.relationName || joinTables.has(field.relationName)) {
|
|
66
52
|
continue;
|
|
67
53
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
// Note: relationName should always be defined for implicit m-n relations
|
|
72
|
-
if (!field.relationName) {
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
const tableName = `_${field.relationName}`;
|
|
76
|
-
const relationName = field.relationName;
|
|
77
|
-
// Skip if we've already processed this relation
|
|
78
|
-
if (joinTables.has(relationName)) {
|
|
79
|
-
continue;
|
|
54
|
+
const joinTableInfo = createJoinTableInfo(field, model, relatedModel, models);
|
|
55
|
+
if (joinTableInfo) {
|
|
56
|
+
joinTables.set(field.relationName, joinTableInfo);
|
|
80
57
|
}
|
|
81
|
-
// Keep alphabetical ordering for A/B column assignment
|
|
82
|
-
const modelNames = [model.name, relatedModel.name].sort();
|
|
83
|
-
// Extract ID field types
|
|
84
|
-
const modelAIdField = getModelIdField(models.find((m) => m.name === modelNames[0]));
|
|
85
|
-
const modelBIdField = getModelIdField(models.find((m) => m.name === modelNames[1]));
|
|
86
|
-
joinTables.set(relationName, {
|
|
87
|
-
tableName,
|
|
88
|
-
relationName,
|
|
89
|
-
modelA: modelNames[0],
|
|
90
|
-
modelB: modelNames[1],
|
|
91
|
-
columnAType: modelAIdField.type,
|
|
92
|
-
columnBType: modelBIdField.type,
|
|
93
|
-
columnAIsUuid: (0, type_1.isUuidField)(modelAIdField),
|
|
94
|
-
columnBIsUuid: (0, type_1.isUuidField)(modelBIdField),
|
|
95
|
-
});
|
|
96
58
|
}
|
|
97
59
|
}
|
|
98
60
|
return Array.from(joinTables.values());
|
|
99
61
|
}
|
|
62
|
+
function shouldProcessField(field, model, models) {
|
|
63
|
+
if (!isImplicitManyToManyField(field)) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
const relatedModel = models.find((m) => m.name === field.type);
|
|
67
|
+
return !!(relatedModel && model.name !== relatedModel.name);
|
|
68
|
+
}
|
|
69
|
+
function createJoinTableInfo(field, model, relatedModel, models) {
|
|
70
|
+
const modelNames = [model.name, relatedModel.name].sort();
|
|
71
|
+
const modelA = models.find((m) => m.name === modelNames[0]);
|
|
72
|
+
const modelB = models.find((m) => m.name === modelNames[1]);
|
|
73
|
+
if (!(modelA && modelB)) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const modelAIdField = getModelIdField(modelA);
|
|
77
|
+
const modelBIdField = getModelIdField(modelB);
|
|
78
|
+
const relationName = field.relationName;
|
|
79
|
+
if (!relationName) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
tableName: `_${relationName}`,
|
|
84
|
+
relationName,
|
|
85
|
+
modelA: modelNames[0],
|
|
86
|
+
modelB: modelNames[1],
|
|
87
|
+
columnAType: modelAIdField.type,
|
|
88
|
+
columnBType: modelBIdField.type,
|
|
89
|
+
columnAIsUuid: isUuidField(modelAIdField),
|
|
90
|
+
columnBIsUuid: isUuidField(modelBIdField),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function isValidImplicitRelation(field, relatedModel) {
|
|
94
|
+
const relatedField = relatedModel.fields.find((f) => f.relationName === field.relationName && f.isList === true);
|
|
95
|
+
return !!(relatedField && isImplicitManyToManyField(relatedField));
|
|
96
|
+
}
|
|
100
97
|
//# sourceMappingURL=relation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/prisma/relation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/prisma/relation.ts"],"names":[],"mappings":"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"}
|
package/dist/prisma/type.d.ts
CHANGED
|
@@ -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,WAwB5C;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,WAwB5C;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,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAEzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAEvF;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,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAE/E"}
|
package/dist/prisma/type.js
CHANGED
|
@@ -1,31 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isUuidField = isUuidField;
|
|
4
|
-
exports.getFieldDbName = getFieldDbName;
|
|
5
|
-
exports.hasDefaultValue = hasDefaultValue;
|
|
6
|
-
exports.isIdField = isIdField;
|
|
7
|
-
exports.isRequiredField = isRequiredField;
|
|
8
|
-
exports.isListField = isListField;
|
|
9
|
-
exports.filterInternalModels = filterInternalModels;
|
|
10
|
-
exports.filterSchemaFields = filterSchemaFields;
|
|
11
|
-
exports.getModelDbName = getModelDbName;
|
|
12
|
-
exports.sortModels = sortModels;
|
|
13
|
-
exports.sortFields = sortFields;
|
|
14
1
|
/**
|
|
15
2
|
* Check if a field is a UUID using native DMMF type information
|
|
16
3
|
* 3-tier detection: native type � documentation � field name patterns
|
|
17
4
|
*/
|
|
18
|
-
function isUuidField(field) {
|
|
5
|
+
export function isUuidField(field) {
|
|
19
6
|
// 1. Check native type (most reliable)
|
|
20
|
-
if (field.nativeType?.[0] ===
|
|
7
|
+
if (field.nativeType?.[0] === 'Uuid') {
|
|
21
8
|
return true;
|
|
22
9
|
}
|
|
23
10
|
// 2. Check documentation for @db.Uuid
|
|
24
|
-
if (field.documentation?.includes(
|
|
11
|
+
if (field.documentation?.includes('@db.Uuid')) {
|
|
25
12
|
return true;
|
|
26
13
|
}
|
|
27
14
|
// 3. Fallback: Field name patterns (only for String type)
|
|
28
|
-
if (field.type !==
|
|
15
|
+
if (field.type !== 'String') {
|
|
29
16
|
return false;
|
|
30
17
|
}
|
|
31
18
|
const uuidFieldPatterns = [
|
|
@@ -39,61 +26,61 @@ function isUuidField(field) {
|
|
|
39
26
|
/**
|
|
40
27
|
* Get the database column name for a field (respects @map directive)
|
|
41
28
|
*/
|
|
42
|
-
function getFieldDbName(field) {
|
|
29
|
+
export function getFieldDbName(field) {
|
|
43
30
|
return field.dbName ?? field.name;
|
|
44
31
|
}
|
|
45
32
|
/**
|
|
46
33
|
* Check if field has a default value using native DMMF property
|
|
47
34
|
*/
|
|
48
|
-
function hasDefaultValue(field) {
|
|
35
|
+
export function hasDefaultValue(field) {
|
|
49
36
|
return field.hasDefaultValue === true;
|
|
50
37
|
}
|
|
51
38
|
/**
|
|
52
39
|
* Check if field is an ID field using native DMMF property
|
|
53
40
|
*/
|
|
54
|
-
function isIdField(field) {
|
|
41
|
+
export function isIdField(field) {
|
|
55
42
|
return field.isId === true;
|
|
56
43
|
}
|
|
57
44
|
/**
|
|
58
45
|
* Check if field is required using native DMMF property
|
|
59
46
|
*/
|
|
60
|
-
function isRequiredField(field) {
|
|
47
|
+
export function isRequiredField(field) {
|
|
61
48
|
return field.isRequired === true;
|
|
62
49
|
}
|
|
63
50
|
/**
|
|
64
51
|
* Check if field is a list/array using native DMMF property
|
|
65
52
|
*/
|
|
66
|
-
function isListField(field) {
|
|
53
|
+
export function isListField(field) {
|
|
67
54
|
return field.isList === true;
|
|
68
55
|
}
|
|
69
56
|
/**
|
|
70
57
|
* Filter models to exclude internal models (starting with _)
|
|
71
58
|
*/
|
|
72
|
-
function filterInternalModels(models) {
|
|
73
|
-
return models.filter((model) => !model.name.startsWith(
|
|
59
|
+
export function filterInternalModels(models) {
|
|
60
|
+
return models.filter((model) => !model.name.startsWith('_'));
|
|
74
61
|
}
|
|
75
62
|
/**
|
|
76
63
|
* Filter fields to only include scalar and enum fields (exclude relations)
|
|
77
64
|
*/
|
|
78
|
-
function filterSchemaFields(fields) {
|
|
79
|
-
return fields.filter((field) => field.kind ===
|
|
65
|
+
export function filterSchemaFields(fields) {
|
|
66
|
+
return fields.filter((field) => field.kind === 'scalar' || field.kind === 'enum');
|
|
80
67
|
}
|
|
81
68
|
/**
|
|
82
69
|
* Get the database table name for a model (respects @@map directive)
|
|
83
70
|
*/
|
|
84
|
-
function getModelDbName(model) {
|
|
71
|
+
export function getModelDbName(model) {
|
|
85
72
|
return model.dbName ?? model.name;
|
|
86
73
|
}
|
|
87
74
|
/**
|
|
88
75
|
* Sort models alphabetically for deterministic output
|
|
89
76
|
*/
|
|
90
|
-
function sortModels(models) {
|
|
77
|
+
export function sortModels(models) {
|
|
91
78
|
return models.slice().sort((a, b) => a.name.localeCompare(b.name));
|
|
92
79
|
}
|
|
93
80
|
/**
|
|
94
81
|
* Sort fields alphabetically for deterministic output
|
|
95
82
|
*/
|
|
96
|
-
function sortFields(fields) {
|
|
83
|
+
export function sortFields(fields) {
|
|
97
84
|
return fields.slice().sort((a, b) => a.name.localeCompare(b.name));
|
|
98
85
|
}
|
|
99
86
|
//# sourceMappingURL=type.js.map
|
package/dist/prisma/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/prisma/type.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,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,0DAA0D;IAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,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,MAAM,UAAU,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,MAAM,UAAU,kBAAkB,CAAC,MAA6B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,MAAM,UAAU,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,iBAiC1D;AAgBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,WAKrE"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extractEffectTypeOverride = extractEffectTypeOverride;
|
|
4
|
-
exports.hasCustomTypeAnnotations = hasCustomTypeAnnotations;
|
|
5
1
|
/**
|
|
6
2
|
* @customType Annotation Parser
|
|
7
3
|
*
|
|
@@ -25,7 +21,7 @@ exports.hasCustomTypeAnnotations = hasCustomTypeAnnotations;
|
|
|
25
21
|
* @param field - Prisma DMMF field
|
|
26
22
|
* @returns Extracted type string or null if no annotation found
|
|
27
23
|
*/
|
|
28
|
-
function extractEffectTypeOverride(field) {
|
|
24
|
+
export function extractEffectTypeOverride(field) {
|
|
29
25
|
if (!field.documentation)
|
|
30
26
|
return null;
|
|
31
27
|
// Match @customType annotation - handle balanced parentheses
|
|
@@ -47,13 +43,11 @@ function extractEffectTypeOverride(field) {
|
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
if (parenCount !== 0) {
|
|
50
|
-
console.warn(`⚠️ Unbalanced parentheses in @customType for field: ${field.name}`);
|
|
51
46
|
return null;
|
|
52
47
|
}
|
|
53
48
|
const typeStr = field.documentation.substring(startIdx, endIdx).trim();
|
|
54
49
|
// Validate it's either a custom type or starts with Schema.
|
|
55
|
-
if (!typeStr.startsWith('Schema.')
|
|
56
|
-
console.warn(`⚠️ Invalid @customType for ${field.name}: must start with "Schema." or be a custom type (e.g., Vector1536)`);
|
|
50
|
+
if (!(typeStr.startsWith('Schema.') || isCustomType(typeStr))) {
|
|
57
51
|
return null;
|
|
58
52
|
}
|
|
59
53
|
return typeStr;
|
|
@@ -77,7 +71,7 @@ function isCustomType(typeStr) {
|
|
|
77
71
|
* @param fields - Array of Prisma fields
|
|
78
72
|
* @returns true if any field uses custom types in @effectType
|
|
79
73
|
*/
|
|
80
|
-
function hasCustomTypeAnnotations(fields) {
|
|
74
|
+
export function hasCustomTypeAnnotations(fields) {
|
|
81
75
|
return fields.some((field) => {
|
|
82
76
|
const override = extractEffectTypeOverride(field);
|
|
83
77
|
return override && isCustomType(override);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAiB;IACzD,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEtC,6DAA6D;IAC7D,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtE,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAElC,wCAAwC;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;IACrF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7E,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QACjD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvE,4DAA4D;IAC5D,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA6B;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/utils/codegen.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Code generation utilities
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.generateFileHeader = generateFileHeader;
|
|
7
4
|
/**
|
|
8
5
|
* Generate standard file header for generated files
|
|
9
6
|
*
|
|
10
7
|
* @param timestamp - Optional timestamp (defaults to current time)
|
|
11
8
|
*/
|
|
12
|
-
function generateFileHeader(timestamp = new Date()) {
|
|
9
|
+
export function generateFileHeader(timestamp = new Date()) {
|
|
13
10
|
return `/**
|
|
14
11
|
* Generated: ${timestamp.toISOString()}
|
|
15
12
|
* DO NOT EDIT MANUALLY
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/utils/codegen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/utils/codegen.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAkB,IAAI,IAAI,EAAE;IAC7D,OAAO;gBACO,SAAS,CAAC,WAAW,EAAE;;IAEnC,CAAC;AACL,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const promises_1 = require("fs/promises");
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const templates_1 = require("./templates");
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { formatCode } from './templates.js';
|
|
7
4
|
/**
|
|
8
5
|
* Manages file system operations for the generator
|
|
9
6
|
*/
|
|
10
|
-
class FileManager {
|
|
7
|
+
export class FileManager {
|
|
8
|
+
outputPath;
|
|
11
9
|
constructor(outputPath) {
|
|
12
10
|
this.outputPath = outputPath;
|
|
13
11
|
}
|
|
@@ -15,15 +13,15 @@ class FileManager {
|
|
|
15
13
|
* Ensure the output directory exists
|
|
16
14
|
*/
|
|
17
15
|
async ensureDirectory() {
|
|
18
|
-
await
|
|
16
|
+
await mkdir(this.outputPath, { recursive: true });
|
|
19
17
|
}
|
|
20
18
|
/**
|
|
21
19
|
* Write a file with automatic code formatting
|
|
22
20
|
*/
|
|
23
21
|
async writeFile(filename, content) {
|
|
24
|
-
const formatted = await
|
|
25
|
-
const filePath =
|
|
26
|
-
await
|
|
22
|
+
const formatted = await formatCode(content);
|
|
23
|
+
const filePath = join(this.outputPath, filename);
|
|
24
|
+
await writeFile(filePath, formatted);
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
27
|
* Get the output path
|
|
@@ -32,5 +30,4 @@ class FileManager {
|
|
|
32
30
|
return this.outputPath;
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
|
-
exports.FileManager = FileManager;
|
|
36
33
|
//# sourceMappingURL=file-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/utils/file-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/utils/file-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,WAAW;IACO;IAA7B,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAe;QAC/C,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
|
package/dist/utils/naming.d.ts
CHANGED
|
@@ -27,4 +27,15 @@ export declare function toPascalCase(str: string, suffix?: string): string;
|
|
|
27
27
|
* toSnakeCase('ProductStatus') // 'product_status'
|
|
28
28
|
*/
|
|
29
29
|
export declare function toSnakeCase(str: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Convert an enum name to its Schema wrapper name
|
|
32
|
+
* Used for generating type references in Kysely interfaces
|
|
33
|
+
*
|
|
34
|
+
* @param enumName - The original enum name (e.g., MATCH_TYPE, AD_STATUS)
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* toEnumSchemaName('MATCH_TYPE') // 'MatchTypeSchema'
|
|
38
|
+
* toEnumSchemaName('AD_STATUS') // 'AdStatusSchema'
|
|
39
|
+
*/
|
|
40
|
+
export declare function toEnumSchemaName(enumName: string): string;
|
|
30
41
|
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UA8BxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,UAYtC"}
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UA8BxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,UAYtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,UAEhD"}
|
package/dist/utils/naming.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Naming utilities for consistent TypeScript identifier generation
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.toPascalCase = toPascalCase;
|
|
7
|
-
exports.toSnakeCase = toSnakeCase;
|
|
8
4
|
/**
|
|
9
5
|
* Convert any string to PascalCase with optional suffix
|
|
10
6
|
* Handles: snake_case, camelCase, kebab-case, or mixed formats
|
|
@@ -18,7 +14,7 @@ exports.toSnakeCase = toSnakeCase;
|
|
|
18
14
|
* toPascalCase('PRODUCT_STATUS', 'Schema') // 'ProductStatusSchema'
|
|
19
15
|
* toPascalCase('USER_ROLE', 'Type') // 'UserRoleType'
|
|
20
16
|
*/
|
|
21
|
-
function toPascalCase(str, suffix) {
|
|
17
|
+
export function toPascalCase(str, suffix) {
|
|
22
18
|
// Handle empty string
|
|
23
19
|
if (!str)
|
|
24
20
|
return str;
|
|
@@ -59,7 +55,7 @@ function toPascalCase(str, suffix) {
|
|
|
59
55
|
* toSnakeCase('ProductTag') // 'product_tag'
|
|
60
56
|
* toSnakeCase('ProductStatus') // 'product_status'
|
|
61
57
|
*/
|
|
62
|
-
function toSnakeCase(str) {
|
|
58
|
+
export function toSnakeCase(str) {
|
|
63
59
|
if (!str)
|
|
64
60
|
return str;
|
|
65
61
|
return (str
|
|
@@ -70,4 +66,17 @@ function toSnakeCase(str) {
|
|
|
70
66
|
// Convert to lowercase
|
|
71
67
|
.toLowerCase());
|
|
72
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Convert an enum name to its Schema wrapper name
|
|
71
|
+
* Used for generating type references in Kysely interfaces
|
|
72
|
+
*
|
|
73
|
+
* @param enumName - The original enum name (e.g., MATCH_TYPE, AD_STATUS)
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* toEnumSchemaName('MATCH_TYPE') // 'MatchTypeSchema'
|
|
77
|
+
* toEnumSchemaName('AD_STATUS') // 'AdStatusSchema'
|
|
78
|
+
*/
|
|
79
|
+
export function toEnumSchemaName(enumName) {
|
|
80
|
+
return toPascalCase(enumName, 'Schema');
|
|
81
|
+
}
|
|
73
82
|
//# sourceMappingURL=naming.js.map
|
package/dist/utils/naming.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAe;IACvD,sBAAsB;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IAErB,0CAA0C;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,UAAkB,CAAC;IAEvB,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,UAAU,GAAG,UAAU;iBACpB,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;aAAM,CAAC;YACN,6CAA6C;YAC7C,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,kCAAkC;QAClC,UAAU,GAAG,KAAK;aACf,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uBAAuB;aACzD,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;aACzE,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IAErB,OAAO,CACL,GAAG;QACD,+DAA+D;SAC9D,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;QAC3B,uCAAuC;SACtC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,uBAAuB;SACtB,WAAW,EAAE,CACjB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,mBAa5C"}
|
package/dist/utils/templates.js
CHANGED
|
@@ -1,54 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.formatCode = formatCode;
|
|
37
|
-
const prettier = __importStar(require("prettier"));
|
|
38
|
-
async function formatCode(code) {
|
|
1
|
+
import * as prettier from 'prettier';
|
|
2
|
+
export async function formatCode(code) {
|
|
39
3
|
try {
|
|
40
4
|
return await prettier.format(code, {
|
|
41
|
-
parser:
|
|
5
|
+
parser: 'typescript',
|
|
42
6
|
semi: true,
|
|
43
7
|
singleQuote: true,
|
|
44
|
-
trailingComma:
|
|
8
|
+
trailingComma: 'es5',
|
|
45
9
|
tabWidth: 2,
|
|
46
10
|
printWidth: 100,
|
|
47
11
|
});
|
|
48
12
|
}
|
|
49
|
-
catch
|
|
50
|
-
// If prettier fails, return the original code
|
|
51
|
-
console.warn("Prettier formatting failed, returning unformatted code:", error instanceof Error ? error.message : String(error));
|
|
13
|
+
catch {
|
|
52
14
|
return code;
|
|
53
15
|
}
|
|
54
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|