prisma-effect-kysely 1.8.1 → 1.8.2
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 +46 -0
- package/dist/effect/generator.js +5 -5
- package/dist/effect/generator.js.map +1 -1
- package/dist/kysely/type.d.ts +4 -2
- package/dist/kysely/type.d.ts.map +1 -1
- package/dist/kysely/type.js +9 -8
- package/dist/kysely/type.js.map +1 -1
- package/dist/utils/unsupported-config.d.ts +26 -0
- package/dist/utils/unsupported-config.d.ts.map +1 -0
- package/dist/utils/unsupported-config.js +36 -0
- package/dist/utils/unsupported-config.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,52 @@ 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.8.2] - 2025-10-13
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
#### Kysely Join Type Inference
|
|
13
|
+
- **DB interface now uses pre-resolved SelectEncoded types**: Fixed TypeScript compilation errors when using Kysely `innerJoin()` with junction tables
|
|
14
|
+
- **Problem**: `Schema.Schema.Encoded<typeof _table>` created conditional types too complex for Kysely's deep generic inference
|
|
15
|
+
- **Solution**: Use existing pre-resolved `*SelectEncoded` type aliases that already exist in generated code
|
|
16
|
+
- **Impact**: Kysely can now properly infer types for join operations without "Type instantiation is excessively deep" errors
|
|
17
|
+
- **Breaking**: None - only internal DB interface generation changed, user API remains identical
|
|
18
|
+
- Location: `src/kysely/type.ts:61-72`
|
|
19
|
+
|
|
20
|
+
#### Unused Enum Type Imports
|
|
21
|
+
- **types.ts now imports only Schema wrappers**: Eliminated TypeScript "declared but never read" warnings for enum types
|
|
22
|
+
- **Problem**: Generated `types.ts` imported both plain enum types (e.g., `BudgetStatus`) and schema wrappers (e.g., `BudgetStatusSchema`), but only the schema wrappers were used in field definitions
|
|
23
|
+
- **Solution**: Import generation now only includes `*Schema` wrappers, not plain enum types
|
|
24
|
+
- **Impact**: Eliminates all unused import warnings for enum types in generated code
|
|
25
|
+
- **Breaking**: None - users can still import plain enum types directly from `enums.ts` if needed
|
|
26
|
+
- Location: `src/effect/generator.ts:95-107`
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
#### Test Coverage
|
|
31
|
+
- Added comprehensive test suite for Kysely join type inference (`src/__tests__/kysely-join-inference.test.ts`)
|
|
32
|
+
- Type-level tests verify TypeScript compilation succeeds
|
|
33
|
+
- Tests junction table joins (e.g., `_product_tags`)
|
|
34
|
+
- Tests complex many-to-many query patterns with aliases
|
|
35
|
+
- Tests multiple junction table joins in single query
|
|
36
|
+
- All tests use TDD approach (failing test first, then fix)
|
|
37
|
+
|
|
38
|
+
### Technical Details
|
|
39
|
+
|
|
40
|
+
**Kysely Join Fix:**
|
|
41
|
+
- DB interface entries changed from `Table: Schema.Schema.Encoded<typeof _Table>` to `Table: TableSelectEncoded`
|
|
42
|
+
- Join table entries changed from `_table: Schema.Schema.Encoded<typeof _joinTable>` to `_table: joinTableSelectEncoded`
|
|
43
|
+
|
|
44
|
+
**Enum Import Fix:**
|
|
45
|
+
- Import generation changed from `.flatMap()` returning `[baseName, `${baseName}Schema`]` to `.map()` returning only `${baseName}Schema`
|
|
46
|
+
- Generated imports change from `import { Role, RoleSchema, Status, StatusSchema }` to `import { RoleSchema, StatusSchema }`
|
|
47
|
+
- Plain enum types still exported from `enums.ts` for direct use
|
|
48
|
+
|
|
49
|
+
**Overall:**
|
|
50
|
+
- Effect Schema functionality preserved - all 158 tests passing
|
|
51
|
+
- No type coercions introduced
|
|
52
|
+
- No breaking changes
|
|
53
|
+
|
|
8
54
|
## [1.8.1] - 2025-10-12
|
|
9
55
|
|
|
10
56
|
### Fixed
|
package/dist/effect/generator.js
CHANGED
|
@@ -80,13 +80,13 @@ export type ${name}UpdateEncoded = Schema.Schema.Encoded<typeof ${name}.Updateab
|
|
|
80
80
|
`import { columnType, generated, getSchemas } from "prisma-effect-kysely";`,
|
|
81
81
|
];
|
|
82
82
|
if (hasEnums) {
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
83
|
+
// Only import Schema wrappers (not plain enum types)
|
|
84
|
+
// Use PascalCase naming with Schema suffix
|
|
85
|
+
// No SCREAMING_SNAKE_CASE
|
|
86
86
|
const enumImports = this.dmmf.datamodel.enums
|
|
87
|
-
.
|
|
87
|
+
.map((e) => {
|
|
88
88
|
const baseName = (0, naming_1.toPascalCase)(e.name);
|
|
89
|
-
return
|
|
89
|
+
return `${baseName}Schema`;
|
|
90
90
|
})
|
|
91
91
|
.join(', ');
|
|
92
92
|
imports.push(`import { ${enumImports} } from "./enums";`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":";;;AACA,iCAA2C;AAC3C,iCAAwC;AACxC,4CAA+C;AAC/C,8CAAsD;AACtD,6CAAuD;AAGvD;;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,MAAM;aAC5B,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;;;;OAIG;IACH,mBAAmB,CAAC,QAAiB;QACnC,MAAM,MAAM,GAAG,IAAA,4BAAkB,GAAE,CAAC;QAEpC,MAAM,OAAO,GAAG;YACd,kCAAkC;YAClC,2EAA2E;SAC5E,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/effect/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/kysely/type.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DMMF } from
|
|
2
|
-
import type { JoinTableInfo } from
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
|
+
import type { JoinTableInfo } from '../prisma/relation';
|
|
3
3
|
/**
|
|
4
4
|
* Determine if field needs Kysely columnType wrapper
|
|
5
5
|
* ID fields with @default are read-only (can't insert/update)
|
|
@@ -25,10 +25,12 @@ export declare function applyMapDirective(fieldType: string, field: DMMF.Field):
|
|
|
25
25
|
export declare function buildKyselyFieldType(baseFieldType: string, field: DMMF.Field): string;
|
|
26
26
|
/**
|
|
27
27
|
* Generate DB interface entry for a model
|
|
28
|
+
* Uses pre-resolved *SelectEncoded type for Kysely compatibility
|
|
28
29
|
*/
|
|
29
30
|
export declare function generateDBInterfaceEntry(model: DMMF.Model): string;
|
|
30
31
|
/**
|
|
31
32
|
* Generate DB interface entry for a join table
|
|
33
|
+
* Uses pre-resolved *SelectEncoded type for Kysely compatibility
|
|
32
34
|
*/
|
|
33
35
|
export declare function generateJoinTableDBInterfaceEntry(joinTable: JoinTableInfo): string;
|
|
34
36
|
/**
|
|
@@ -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;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;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;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAIzD;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,aAAa,UAGzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,EAC7B,UAAU,GAAE,aAAa,EAAO,UAajC"}
|
package/dist/kysely/type.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.generateDBInterfaceEntry = generateDBInterfaceEntry;
|
|
|
9
9
|
exports.generateJoinTableDBInterfaceEntry = generateJoinTableDBInterfaceEntry;
|
|
10
10
|
exports.generateDBInterface = generateDBInterface;
|
|
11
11
|
const type_1 = require("../prisma/type");
|
|
12
|
+
const naming_1 = require("../utils/naming");
|
|
12
13
|
/**
|
|
13
14
|
* Determine if field needs Kysely columnType wrapper
|
|
14
15
|
* ID fields with @default are read-only (can't insert/update)
|
|
@@ -58,29 +59,29 @@ function buildKyselyFieldType(baseFieldType, field) {
|
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* Generate DB interface entry for a model
|
|
62
|
+
* Uses pre-resolved *SelectEncoded type for Kysely compatibility
|
|
61
63
|
*/
|
|
62
64
|
function generateDBInterfaceEntry(model) {
|
|
63
65
|
const tableName = model.dbName || model.name;
|
|
64
|
-
const
|
|
65
|
-
return ` ${tableName}:
|
|
66
|
+
const pascalName = (0, naming_1.toPascalCase)(model.name);
|
|
67
|
+
return ` ${tableName}: ${pascalName}SelectEncoded;`;
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
68
70
|
* Generate DB interface entry for a join table
|
|
71
|
+
* Uses pre-resolved *SelectEncoded type for Kysely compatibility
|
|
69
72
|
*/
|
|
70
73
|
function generateJoinTableDBInterfaceEntry(joinTable) {
|
|
71
74
|
const { tableName, relationName } = joinTable;
|
|
72
|
-
return ` ${tableName}:
|
|
75
|
+
return ` ${tableName}: ${relationName}SelectEncoded;`;
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
* Generate complete DB interface including join tables
|
|
76
79
|
*/
|
|
77
80
|
function generateDBInterface(models, joinTables = []) {
|
|
78
|
-
const modelEntries = Array.from(models)
|
|
79
|
-
.map(generateDBInterfaceEntry)
|
|
80
|
-
.join("\n");
|
|
81
|
+
const modelEntries = Array.from(models).map(generateDBInterfaceEntry).join('\n');
|
|
81
82
|
const joinTableEntries = joinTables.length > 0
|
|
82
|
-
?
|
|
83
|
-
:
|
|
83
|
+
? '\n' + joinTables.map(generateJoinTableDBInterfaceEntry).join('\n')
|
|
84
|
+
: '';
|
|
84
85
|
return `// Kysely Database Interface
|
|
85
86
|
export interface DB {
|
|
86
87
|
${modelEntries}${joinTableEntries}
|
package/dist/kysely/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/kysely/type.ts"],"names":[],"mappings":";;AASA,0CAEC;AAMD,wCAEC;AAKD,gDAOC;AAKD,8CAMC;AAMD,oDAQC;AAMD,4DAIC;AAMD,8EAGC;AAKD,kDAeC;AA9FD,yCAA4E;AAE5E,4CAA+C;AAE/C;;;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;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,KAAiB;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,KAAK,SAAS,KAAK,UAAU,gBAAgB,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,SAAgB,iCAAiC,CAAC,SAAwB;IACxE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAC9C,OAAO,KAAK,SAAS,KAAK,YAAY,gBAAgB,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,MAA6B,EAC7B,aAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjF,MAAM,gBAAgB,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;;EAEP,YAAY,GAAG,gBAAgB;EAC/B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for a single Unsupported field
|
|
3
|
+
*/
|
|
4
|
+
export interface UnsupportedFieldConfig {
|
|
5
|
+
effectType: string;
|
|
6
|
+
dbType: string;
|
|
7
|
+
dbName: string;
|
|
8
|
+
required: boolean;
|
|
9
|
+
comment?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Full configuration structure
|
|
13
|
+
*/
|
|
14
|
+
export interface UnsupportedConfig {
|
|
15
|
+
models: Record<string, Record<string, UnsupportedFieldConfig>>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Load unsupported fields configuration from JSON file
|
|
19
|
+
* Looks for prisma/unsupported-fields.json relative to schema location
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadUnsupportedConfig(schemaPath: string): UnsupportedConfig | null;
|
|
22
|
+
/**
|
|
23
|
+
* Get unsupported fields for a specific model
|
|
24
|
+
*/
|
|
25
|
+
export declare function getUnsupportedFields(config: UnsupportedConfig | null, modelName: string): Record<string, UnsupportedFieldConfig>;
|
|
26
|
+
//# sourceMappingURL=unsupported-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported-config.d.ts","sourceRoot":"","sources":["../../src/utils/unsupported-config.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAChE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAiBlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAGxC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadUnsupportedConfig = loadUnsupportedConfig;
|
|
4
|
+
exports.getUnsupportedFields = getUnsupportedFields;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
/**
|
|
8
|
+
* Load unsupported fields configuration from JSON file
|
|
9
|
+
* Looks for prisma/unsupported-fields.json relative to schema location
|
|
10
|
+
*/
|
|
11
|
+
function loadUnsupportedConfig(schemaPath) {
|
|
12
|
+
try {
|
|
13
|
+
// Assume schema is in prisma/schema/ directory
|
|
14
|
+
// Config should be in prisma/unsupported-fields.json
|
|
15
|
+
const schemaDir = (0, path_1.dirname)((0, path_1.dirname)(schemaPath)); // Go up to prisma/
|
|
16
|
+
const configPath = (0, path_1.join)(schemaDir, 'unsupported-fields.json');
|
|
17
|
+
if (!(0, fs_1.existsSync)(configPath)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const content = (0, fs_1.readFileSync)(configPath, 'utf-8');
|
|
21
|
+
return JSON.parse(content);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.warn(`⚠️ Failed to load unsupported-fields.json: ${error}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get unsupported fields for a specific model
|
|
30
|
+
*/
|
|
31
|
+
function getUnsupportedFields(config, modelName) {
|
|
32
|
+
if (!config)
|
|
33
|
+
return {};
|
|
34
|
+
return config.models[modelName] || {};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=unsupported-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported-config.js","sourceRoot":"","sources":["../../src/utils/unsupported-config.ts"],"names":[],"mappings":";;AAyBA,sDAiBC;AAKD,oDAMC;AArDD,2BAA8C;AAC9C,+BAAqC;AAoBrC;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,IAAI,CAAC;QACH,+CAA+C;QAC/C,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB;QACnE,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAsB,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAAgC,EAChC,SAAiB;IAEjB,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC"}
|