prisma-kysely 1.8.0 → 2.1.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.
Files changed (63) hide show
  1. package/README.md +15 -9
  2. package/dist/__test__/e2e.test.js +406 -43
  3. package/dist/__test__/e2e.test.js.map +1 -1
  4. package/dist/dialectTests/common.js +4 -4
  5. package/dist/dialectTests/common.js.map +1 -1
  6. package/dist/dialectTests/sqlite.js +27 -5
  7. package/dist/dialectTests/sqlite.js.map +1 -1
  8. package/dist/generator.js +37 -11
  9. package/dist/generator.js.map +1 -1
  10. package/dist/helpers/generateDatabaseType.js +1 -1
  11. package/dist/helpers/generateDatabaseType.js.map +1 -1
  12. package/dist/helpers/generateDatabaseType.test.js +36 -0
  13. package/dist/helpers/generateDatabaseType.test.js.map +1 -1
  14. package/dist/helpers/generateEnumType.js +8 -3
  15. package/dist/helpers/generateEnumType.js.map +1 -1
  16. package/dist/helpers/generateEnumType.test.js +18 -8
  17. package/dist/helpers/generateEnumType.test.js.map +1 -1
  18. package/dist/helpers/generateField.js.map +1 -1
  19. package/dist/helpers/generateFieldType.js +1 -0
  20. package/dist/helpers/generateFieldType.js.map +1 -1
  21. package/dist/helpers/generateFieldType.test.js +29 -3
  22. package/dist/helpers/generateFieldType.test.js.map +1 -1
  23. package/dist/helpers/generateFile.js.map +1 -1
  24. package/dist/helpers/generateFile.test.js +0 -1
  25. package/dist/helpers/generateFile.test.js.map +1 -1
  26. package/dist/helpers/generateFiles.js +55 -7
  27. package/dist/helpers/generateFiles.js.map +1 -1
  28. package/dist/helpers/generateImplicitManyToManyModels.js +12 -11
  29. package/dist/helpers/generateImplicitManyToManyModels.js.map +1 -1
  30. package/dist/helpers/generateImplicitManyToManyModels.test.js +129 -0
  31. package/dist/helpers/generateImplicitManyToManyModels.test.js.map +1 -1
  32. package/dist/helpers/generateModel.js +6 -2
  33. package/dist/helpers/generateModel.js.map +1 -1
  34. package/dist/helpers/generateModel.test.js +18 -2
  35. package/dist/helpers/generateModel.test.js.map +1 -1
  36. package/dist/helpers/generateStringLiteralUnion.test.js +2 -6
  37. package/dist/helpers/generateStringLiteralUnion.test.js.map +1 -1
  38. package/dist/helpers/generateTypeOverrideFromDocumentation.js.map +1 -1
  39. package/dist/helpers/generatedEnumType.test.js +19 -9
  40. package/dist/helpers/generatedEnumType.test.js.map +1 -1
  41. package/dist/helpers/multiSchemaHelpers.js +55 -16
  42. package/dist/helpers/multiSchemaHelpers.js.map +1 -1
  43. package/dist/helpers/multiSchemaHelpers.test.js +36 -2
  44. package/dist/helpers/multiSchemaHelpers.test.js.map +1 -1
  45. package/dist/utils/formatFile.js +18 -8
  46. package/dist/utils/formatFile.js.map +1 -1
  47. package/dist/utils/normalizeCase.js +2 -2
  48. package/dist/utils/normalizeCase.js.map +1 -1
  49. package/dist/utils/normalizeCase.test.js +8 -0
  50. package/dist/utils/normalizeCase.test.js.map +1 -1
  51. package/dist/utils/testUtils.js +17 -7
  52. package/dist/utils/testUtils.js.map +1 -1
  53. package/dist/utils/validateConfig.js +8 -0
  54. package/dist/utils/validateConfig.js.map +1 -1
  55. package/dist/utils/validateConfig.test.js.map +1 -1
  56. package/dist/utils/{camelCase.js → words.js} +7 -4
  57. package/dist/utils/words.js.map +1 -0
  58. package/package.json +54 -48
  59. package/dist/helpers/generateTypedAliasDeclaration.js +0 -12
  60. package/dist/helpers/generateTypedAliasDeclaration.js.map +0 -1
  61. package/dist/helpers/generateTypedAliasDeclaration.test.js +0 -15
  62. package/dist/helpers/generateTypedAliasDeclaration.test.js.map +0 -1
  63. package/dist/utils/camelCase.js.map +0 -1
@@ -1,27 +1,66 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.convertToMultiSchemaModels = void 0;
7
+ exports.parseMultiSchemaMap = parseMultiSchemaMap;
4
8
  const prisma_ast_1 = require("@mrleebo/prisma-ast");
5
- const convertToMultiSchemaModels = (models, dataModelStr) => {
6
- const parsedSchema = (0, prisma_ast_1.getSchema)(dataModelStr);
7
- const multiSchemaMap = new Map(parsedSchema.list
8
- .filter((block) => block.type === "model")
9
- .map((model) => {
10
- var _a;
11
- const schemaProperty = model.properties.find((prop) => prop.type === "attribute" && prop.name === "schema");
12
- const schemaName = (_a = schemaProperty === null || schemaProperty === void 0 ? void 0 : schemaProperty.args) === null || _a === void 0 ? void 0 : _a[0].value;
13
- if (typeof schemaName !== "string") {
14
- return [model.name, ""];
15
- }
16
- return [model.name, schemaName.replace(/"/g, "")];
17
- }));
18
- return models.map((model) => {
19
- const schemaName = multiSchemaMap.get(model.typeName);
9
+ const typescript_1 = __importDefault(require("typescript"));
10
+ const words_1 = require("../utils/words");
11
+ const convertToMultiSchemaModels = ({ defaultSchema, filterBySchema, groupBySchema, models, multiSchemaMap, }) => {
12
+ return models.flatMap((model) => {
13
+ const schemaName = multiSchemaMap === null || multiSchemaMap === void 0 ? void 0 : multiSchemaMap.get(model.typeName);
20
14
  if (!schemaName) {
21
15
  return model;
22
16
  }
23
- return { ...model, tableName: `${schemaName}.${model.tableName}` };
17
+ if (filterBySchema && !filterBySchema.has(schemaName)) {
18
+ return [];
19
+ }
20
+ if (schemaName === defaultSchema) {
21
+ return model;
22
+ }
23
+ return [
24
+ {
25
+ ...model,
26
+ typeName: groupBySchema
27
+ ? `${(0, words_1.capitalize)(schemaName)}.${model.typeName}`
28
+ : model.typeName,
29
+ tableName: model.tableName
30
+ ? `${schemaName}.${model.tableName}`
31
+ : undefined,
32
+ schema: groupBySchema ? schemaName : undefined,
33
+ },
34
+ ];
24
35
  });
25
36
  };
26
37
  exports.convertToMultiSchemaModels = convertToMultiSchemaModels;
38
+ const isIdentifierText = typescript_1.default.isIdentifierText;
39
+ function parseMultiSchemaMap(dataModelStr) {
40
+ var _a;
41
+ const parsedSchema = (0, prisma_ast_1.getSchema)(dataModelStr);
42
+ const multiSchemaMap = new Map();
43
+ for (const block of parsedSchema.list) {
44
+ if (block.type !== "model" &&
45
+ block.type !== "view" &&
46
+ block.type !== "type" &&
47
+ block.type !== "enum") {
48
+ continue;
49
+ }
50
+ const properties = block.type === "enum" ? block.enumerators : block.properties;
51
+ const schemaProperty = properties.find((prop) => prop.type === "attribute" && prop.name === "schema");
52
+ const schemaName = (_a = schemaProperty === null || schemaProperty === void 0 ? void 0 : schemaProperty.args) === null || _a === void 0 ? void 0 : _a[0].value;
53
+ if (typeof schemaName !== "string") {
54
+ multiSchemaMap.set(block.name, "");
55
+ }
56
+ else {
57
+ const schema = JSON.parse(schemaName).toString();
58
+ if (isIdentifierText && !isIdentifierText(schema)) {
59
+ throw new Error(`Cannot generate identifier for schema "${schema}" in model "${block.name}" because it is not a valid Identifier, please disable \`groupBySchema\` or rename it.`);
60
+ }
61
+ multiSchemaMap.set(block.name, schema);
62
+ }
63
+ }
64
+ return multiSchemaMap;
65
+ }
27
66
  //# sourceMappingURL=multiSchemaHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiSchemaHelpers.js","sourceRoot":"","sources":["../../src/helpers/multiSchemaHelpers.ts"],"names":[],"mappings":";;;AAAA,oDAI6B;AAoBtB,MAAM,0BAA0B,GAAG,CACxC,MAAW,EACX,YAAoB,EACf,EAAE;IACP,MAAM,YAAY,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,YAAY,CAAC,IAAI;SACd,MAAM,CAAC,CAAC,KAAK,EAAkB,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;SACzD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;QACb,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAC1C,CAAC,IAAI,EAA0B,EAAE,CAC/B,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CACtD,CAAC;QAEF,MAAM,UAAU,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,0CAAG,CAAC,EAAE,KAAK,CAAC;QAEnD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACzB;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QAED,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAlCW,QAAA,0BAA0B,8BAkCrC"}
1
+ {"version":3,"file":"multiSchemaHelpers.js","sourceRoot":"","sources":["../../src/helpers/multiSchemaHelpers.ts"],"names":[],"mappings":";;;;;;AAwFA,kDA2CC;AAnID,oDAAqE;AACrE,4DAA4B;AAE5B,0CAA2C;AAyBpC,MAAM,0BAA0B,GAAG,CAA4B,EACpE,aAAa,EACb,cAAc,EACd,aAAa,EACb,MAAM,EACN,cAAc,GACuB,EAAO,EAAE;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QAGD,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL;gBACE,GAAG,KAAK;gBACR,QAAQ,EAAE,aAAa;oBACrB,CAAC,CAAC,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;oBACxB,CAAC,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE;oBACpC,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aAC/C;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArCW,QAAA,0BAA0B,8BAqCrC;AAGF,MAAM,gBAAgB,GAMpB,oBAAE,CAAC,gBAAgB,CAAC;AActB,SAAgB,mBAAmB,CAAC,YAAoB;;IACtD,MAAM,YAAY,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtC,IAEE,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,MAAM;YACrB,KAAK,CAAC,IAAI,KAAK,MAAM;YAErB,KAAK,CAAC,IAAI,KAAK,MAAM,EACrB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GACd,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAE/D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,CAAC,IAAI,EAA0B,EAAE,CAC/B,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CACtD,CAAC;QAEF,MAAM,UAAU,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,0CAAG,CAAC,EAAE,KAAK,CAAC;QAEnD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEzD,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,eAAe,KAAK,CAAC,IAAI,wFAAwF,CAClK,CAAC;YACJ,CAAC;YAGD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -27,16 +27,50 @@ model Eagle {
27
27
 
28
28
  @@map("eagles")
29
29
  @@schema("birds")
30
- }`;
30
+ }
31
+
32
+ model Fish {
33
+ id Int @id
34
+ name String
35
+
36
+ @@map("fish")
37
+ @@schema("public")
38
+ }
39
+
40
+ `;
31
41
  (0, vitest_1.test)("returns a list of models with schemas appended to the table name", () => {
32
42
  const initialModels = [
33
43
  { typeName: "Elephant", tableName: "elephants" },
34
44
  { typeName: "Eagle", tableName: "eagles" },
45
+ { typeName: "Fish", tableName: "fish" },
35
46
  ];
36
- const result = (0, multiSchemaHelpers_1.convertToMultiSchemaModels)(initialModels, testDataModel);
47
+ const result = (0, multiSchemaHelpers_1.convertToMultiSchemaModels)({
48
+ models: initialModels,
49
+ groupBySchema: false,
50
+ defaultSchema: "public",
51
+ filterBySchema: null,
52
+ multiSchemaMap: (0, multiSchemaHelpers_1.parseMultiSchemaMap)(testDataModel),
53
+ });
37
54
  (0, vitest_1.expect)(result).toEqual([
38
55
  { typeName: "Elephant", tableName: "mammals.elephants" },
39
56
  { typeName: "Eagle", tableName: "birds.eagles" },
57
+ { typeName: "Fish", tableName: "fish" },
58
+ ]);
59
+ });
60
+ (0, vitest_1.test)("returns a list of models with schemas appended to the table name filtered by schema", () => {
61
+ const initialModels = [
62
+ { typeName: "Elephant", tableName: "elephants" },
63
+ { typeName: "Eagle", tableName: "eagles" },
64
+ ];
65
+ const result = (0, multiSchemaHelpers_1.convertToMultiSchemaModels)({
66
+ models: initialModels,
67
+ groupBySchema: false,
68
+ defaultSchema: "public",
69
+ filterBySchema: new Set(["mammals"]),
70
+ multiSchemaMap: (0, multiSchemaHelpers_1.parseMultiSchemaMap)(testDataModel),
71
+ });
72
+ (0, vitest_1.expect)(result).toEqual([
73
+ { typeName: "Elephant", tableName: "mammals.elephants" },
40
74
  ]);
41
75
  });
42
76
  //# sourceMappingURL=multiSchemaHelpers.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiSchemaHelpers.test.js","sourceRoot":"","sources":["../../src/helpers/multiSchemaHelpers.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,6DAAkE;AAElE,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;EAyBpB,CAAC;AAEH,IAAA,aAAI,EAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,aAAa,GAAG;QACpB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;QAChD,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;KAC3C,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,+CAA0B,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAExE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE;QACxD,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;KACjD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"multiSchemaHelpers.test.js","sourceRoot":"","sources":["../../src/helpers/multiSchemaHelpers.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,6DAG8B;AAE9B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCrB,CAAC;AAEF,IAAA,aAAI,EAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,aAAa,GAAG;QACpB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;QAChD,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;QAC1C,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;KACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,+CAA0B,EAAC;QACxC,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAA,wCAAmB,EAAC,aAAa,CAAC;KACnD,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE;QACxD,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;QAChD,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;KACxC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qFAAqF,EAAE,GAAG,EAAE;IAC/F,MAAM,aAAa,GAAG;QACpB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;QAChD,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;KAC3C,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,+CAA0B,EAAC;QACxC,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACpC,cAAc,EAAE,IAAA,wCAAmB,EAAC,aAAa,CAAC;KACnD,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE;KACzD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
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
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.formatFile = void 0;
27
37
  const formatFile = async (content) => {
@@ -36,7 +46,7 @@ const formatFile = async (content) => {
36
46
  });
37
47
  return formatted;
38
48
  }
39
- catch (e) { }
49
+ catch (_a) { }
40
50
  return content;
41
51
  };
42
52
  exports.formatFile = formatFile;
@@ -1 +1 @@
1
- {"version":3,"file":"formatFile.js","sourceRoot":"","sources":["../../src/utils/formatFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAIlD,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;YACzC,GAAG,MAAM;YACT,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;KAClB;IAAC,OAAO,CAAC,EAAE,GAAE;IAEd,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAnBW,QAAA,UAAU,cAmBrB"}
1
+ {"version":3,"file":"formatFile.js","sourceRoot":"","sources":["../../src/utils/formatFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAIlD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;YACzC,GAAG,MAAM;YACT,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;IAEV,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAnBW,QAAA,UAAU,cAmBrB"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeCase = void 0;
4
- const camelCase_1 = require("./camelCase");
5
- const snakeToCamel = (0, camelCase_1.createCamelCaseMapper)();
4
+ const words_1 = require("./words");
5
+ const snakeToCamel = (0, words_1.createCamelCaseMapper)();
6
6
  const normalizeCase = (name, config) => {
7
7
  if (!config.camelCase)
8
8
  return name;
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeCase.js","sourceRoot":"","sources":["../../src/utils/normalizeCase.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAG1D,MAAM,YAAY,GAAG,IAAA,iCAAqB,GAAE,CAAC;AAEtC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IAC5D,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB"}
1
+ {"version":3,"file":"normalizeCase.js","sourceRoot":"","sources":["../../src/utils/normalizeCase.ts"],"names":[],"mappings":";;;AACA,mCAAsD;AAEtD,MAAM,YAAY,GAAG,IAAA,6BAAqB,GAAE,CAAC;AAEtC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IAC5D,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB"}
@@ -10,6 +10,10 @@ const normalizeCase_1 = require("./normalizeCase");
10
10
  fileName: "",
11
11
  enumFileName: "",
12
12
  readOnlyIds: false,
13
+ groupBySchema: false,
14
+ defaultSchema: "public",
15
+ dbTypeName: "DB",
16
+ importExtension: "",
13
17
  });
14
18
  (0, vitest_1.expect)(newName).toEqual("userId");
15
19
  });
@@ -21,6 +25,10 @@ const normalizeCase_1 = require("./normalizeCase");
21
25
  fileName: "",
22
26
  enumFileName: "",
23
27
  readOnlyIds: false,
28
+ groupBySchema: false,
29
+ defaultSchema: "public",
30
+ dbTypeName: "DB",
31
+ importExtension: "",
24
32
  });
25
33
  (0, vitest_1.expect)(newName).toEqual("user_id");
26
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeCase.test.js","sourceRoot":"","sources":["../../src/utils/normalizeCase.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,mDAAsD;AAEtD,IAAA,aAAI,EAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,YAAY,EAAE;QAC1C,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,YAAY,EAAE;QAC1C,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"normalizeCase.test.js","sourceRoot":"","sources":["../../src/utils/normalizeCase.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,mDAAsD;AAEtD,IAAA,aAAI,EAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,YAAY,EAAE;QAC1C,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE;KACpB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,YAAY,EAAE;QAC1C,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,YAAY;QAC9B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE;KACpB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
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
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.stringifyTsNode = void 0;
27
37
  const typescript_1 = __importStar(require("typescript"));
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/utils/testUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA+C;AAExC,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,EAAE;IAC/C,OAAO,IAAA,0BAAa,GAAE,CAAC,SAAS,CAC9B,oBAAE,CAAC,QAAQ,CAAC,WAAW,EACvB,IAAI,EACJ,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CACzB,EAAE,EACF,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EACpD,oBAAE,CAAC,SAAS,CAAC,IAAI,CAClB,CACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/utils/testUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA+C;AAExC,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,EAAE;IAC/C,OAAO,IAAA,0BAAa,GAAE,CAAC,SAAS,CAC9B,oBAAE,CAAC,QAAQ,CAAC,WAAW,EACvB,IAAI,EACJ,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CACzB,EAAE,EACF,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EACpD,oBAAE,CAAC,SAAS,CAAC,IAAI,CAClB,CACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
@@ -23,6 +23,7 @@ exports.configValidator = zod_1.default
23
23
  zod_1.default.literal("sqlserver"),
24
24
  ]),
25
25
  fileName: zod_1.default.string().optional().default("types.ts"),
26
+ importExtension: zod_1.default.string().default(""),
26
27
  enumFileName: zod_1.default.string().optional(),
27
28
  stringTypeOverride: zod_1.default.string().optional(),
28
29
  booleanTypeOverride: zod_1.default.string().optional(),
@@ -34,14 +35,21 @@ exports.configValidator = zod_1.default
34
35
  jsonTypeOverride: zod_1.default.string().optional(),
35
36
  bytesTypeOverride: zod_1.default.string().optional(),
36
37
  unsupportedTypeOverride: zod_1.default.string().optional(),
38
+ dbTypeName: zod_1.default.string().default("DB"),
37
39
  camelCase: booleanStringLiteral.default(false),
38
40
  readOnlyIds: booleanStringLiteral.default(false),
41
+ groupBySchema: booleanStringLiteral.default(false),
42
+ defaultSchema: zod_1.default.string().default("public"),
43
+ filterBySchema: zod_1.default.array(zod_1.default.string()).optional(),
39
44
  })
40
45
  .strict()
41
46
  .transform((config) => {
42
47
  if (!config.enumFileName) {
43
48
  config.enumFileName = config.fileName;
44
49
  }
50
+ if (config.groupBySchema && config.enumFileName !== config.fileName) {
51
+ throw new Error("groupBySchema is not compatible with enumFileName");
52
+ }
45
53
  return config;
46
54
  });
47
55
  const validateConfig = (config) => {
@@ -1 +1 @@
1
- {"version":3,"file":"validateConfig.js","sourceRoot":"","sources":["../../src/utils/validateConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateConfig.js","sourceRoot":"","sources":["../../src/utils/validateConfig.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateConfig.test.js","sourceRoot":"","sources":["../../src/utils/validateConfig.test.ts"],"names":[],"mappings":";;AAAA,mCAAqD;AAErD,qDAAkD;AAElD,IAAA,kBAAS,EAAC,GAAG,EAAE;IACb,WAAE,CAAC,aAAa,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,gBAAgB,GAAG,WAAE,CAAC,EAAE,EAAgB,CAAC;IAC/C,MAAM,oBAAoB,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;IAErC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAChC,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;IAErC,IAAA,+BAAc,EAAC;QACb,gBAAgB,EAAE,UAAU;QAC5B,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5C,IAAA,eAAM,EAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAClD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"validateConfig.test.js","sourceRoot":"","sources":["../../src/utils/validateConfig.test.ts"],"names":[],"mappings":";;AAAA,mCAAqD;AAErD,qDAAkD;AAElD,IAAA,kBAAS,EAAC,GAAG,EAAE;IACb,WAAE,CAAC,aAAa,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,gBAAgB,GAAG,WAAE,CAAC,EAAE,EAAuB,CAAC;IACtD,MAAM,oBAAoB,GAAG,WAAE,CAAC,EAAE,EAAwB,CAAC;IAE3D,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAChC,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;IAErC,IAAA,+BAAc,EAAC;QACb,gBAAgB,EAAE,UAAU;QAC5B,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC5C,IAAA,eAAM,EAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAClD,CAAC,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCamelCaseMapper = exports.createSnakeCaseMapper = void 0;
3
+ exports.createSnakeCaseMapper = createSnakeCaseMapper;
4
+ exports.createCamelCaseMapper = createCamelCaseMapper;
5
+ exports.capitalize = capitalize;
4
6
  function createSnakeCaseMapper({ upperCase = false, underscoreBeforeDigits = false, underscoreBetweenUppercaseLetters = false, } = {}) {
5
7
  return memoize((str) => {
6
8
  if (str.length === 0) {
@@ -41,7 +43,6 @@ function createSnakeCaseMapper({ upperCase = false, underscoreBeforeDigits = fal
41
43
  }
42
44
  });
43
45
  }
44
- exports.createSnakeCaseMapper = createSnakeCaseMapper;
45
46
  function createCamelCaseMapper({ upperCase = false, } = {}) {
46
47
  return memoize((str) => {
47
48
  if (str.length === 0) {
@@ -66,7 +67,6 @@ function createCamelCaseMapper({ upperCase = false, } = {}) {
66
67
  return out;
67
68
  });
68
69
  }
69
- exports.createCamelCaseMapper = createCamelCaseMapper;
70
70
  function isAllUpperCaseSnakeCase(str) {
71
71
  for (let i = 1, l = str.length; i < l; ++i) {
72
72
  const char = str[i];
@@ -90,4 +90,7 @@ function memoize(func) {
90
90
  return mapped;
91
91
  };
92
92
  }
93
- //# sourceMappingURL=camelCase.js.map
93
+ function capitalize(str) {
94
+ return str.charAt(0).toUpperCase() + str.slice(1);
95
+ }
96
+ //# sourceMappingURL=words.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../../src/utils/words.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,67 +1,73 @@
1
1
  {
2
2
  "name": "prisma-kysely",
3
+ "version": "2.1.0",
3
4
  "description": "Generate Kysely database types from a Prisma schema",
4
5
  "repository": {
5
- "url": "https://github.com/valtyr/prisma-kysely"
6
+ "url": "git+https://github.com/valtyr/prisma-kysely.git"
6
7
  },
7
- "version": "1.8.0",
8
- "main": "dist/generator.js",
9
- "files": [
10
- "dist"
11
- ],
12
8
  "license": "MIT",
9
+ "author": {
10
+ "name": "Valtyr Orn Kjartansson",
11
+ "url": "http://valtyr.is"
12
+ },
13
+ "contributors": [
14
+ {
15
+ "name": "Alistair Smith",
16
+ "url": "https://alistair.sh"
17
+ },
18
+ {
19
+ "name": "Arthur Fiorette",
20
+ "url": "https://arthur.place"
21
+ }
22
+ ],
23
+ "main": "dist/generator.js",
13
24
  "bin": {
14
25
  "prisma-kysely": "dist/bin.js"
15
26
  },
27
+ "files": [
28
+ "dist"
29
+ ],
16
30
  "scripts": {
17
- "start": "node dist/bin.js",
18
- "dev": "tspc --watch",
19
31
  "build": "tspc",
20
- "typecheck": "tspc --noemit",
21
- "prepack": "yarn build",
22
- "fix": "prettier --write \"**/*.{ts,tsx,md}\"",
32
+ "dev": "tspc --watch",
33
+ "fix": "prettier --write .",
23
34
  "lint": "eslint ./src",
24
- "test": "yarn build && vitest --passWithNoTests --coverage",
35
+ "prepack": "yarn build",
25
36
  "release": "yarn build && yarn changeset publish",
26
- "edit": "code ."
37
+ "start": "node dist/bin.js",
38
+ "test": "yarn build && vitest --passWithNoTests --coverage",
39
+ "typecheck": "tspc --noemit"
27
40
  },
28
41
  "dependencies": {
29
- "@mrleebo/prisma-ast": "^0.7.0",
30
- "@prisma/generator-helper": "5.3.1",
31
- "@prisma/internals": "5.3.1",
32
- "typescript": "^5.2.2",
33
- "zod": "^3.22.2"
42
+ "@mrleebo/prisma-ast": "^0.13.0",
43
+ "@prisma/generator-helper": "6.15.0",
44
+ "@prisma/internals": "6.15.0",
45
+ "typescript": "^5.9.2",
46
+ "zod": "^4.1.5"
34
47
  },
35
48
  "devDependencies": {
36
- "@changesets/cli": "^2.26.2",
37
- "@trivago/prettier-plugin-sort-imports": "^4.2.0",
38
- "@types/better-sqlite3": "^7.6.5",
39
- "@types/node": "20.6.2",
40
- "@types/pg": "^8.10.2",
41
- "@types/prettier": "2.7.3",
42
- "@typescript-eslint/eslint-plugin": "^6.7.0",
43
- "@typescript-eslint/parser": "^6.7.0",
44
- "@vitest/coverage-v8": "^0.34.4",
45
- "better-sqlite3": "^8.6.0",
46
- "eslint": "^8.49.0",
47
- "kysely": "^0.26.3",
48
- "mysql2": "^3.6.1",
49
- "pg": "^8.11.3",
50
- "prettier": "^2.8.8",
51
- "prisma": "5.3.1",
52
- "ts-patch": "^3.0.2",
53
- "typescript-transform-paths": "^3.4.6",
54
- "vite-tsconfig-paths": "^4.2.1",
55
- "vitest": "^0.34.4"
49
+ "@changesets/cli": "^2.29.6",
50
+ "@trivago/prettier-plugin-sort-imports": "^5.2.2",
51
+ "@types/node": "24.3.0",
52
+ "@types/pg": "^8.15.5",
53
+ "@types/prettier": "3.0.0",
54
+ "@typescript-eslint/eslint-plugin": "^8.41.0",
55
+ "@typescript-eslint/parser": "^8.41.0",
56
+ "@typescript-eslint/typescript-estree": "^8.41.0",
57
+ "@vitest/coverage-v8": "^3.2.4",
58
+ "eslint": "^9.34.0",
59
+ "kysely": "^0.28.2",
60
+ "mysql2": "^3.14.1",
61
+ "pg": "^8.16.2",
62
+ "prettier": "^3.6.2",
63
+ "prisma": "6.15.0",
64
+ "ts-patch": "^3.3.0",
65
+ "typescript-transform-paths": "^3.5.5",
66
+ "vite-tsconfig-paths": "^5.1.4",
67
+ "vitest": "^3.2.4"
68
+ },
69
+ "peerDependencies": {
70
+ "prisma": "~6.15"
56
71
  },
57
- "prettier": {
58
- "importOrder": [
59
- "^\\./env$",
60
- "<THIRD_PARTY_MODULES>",
61
- "^~/.*$",
62
- "^[./]"
63
- ],
64
- "importOrderSeparation": true,
65
- "importOrderSortSpecifiers": true
66
- }
72
+ "packageManager": "yarn@1.22.22"
67
73
  }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateTypedAliasDeclaration = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const generateTypedAliasDeclaration = (name, type) => {
9
- return typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(name), undefined, type);
10
- };
11
- exports.generateTypedAliasDeclaration = generateTypedAliasDeclaration;
12
- //# sourceMappingURL=generateTypedAliasDeclaration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypedAliasDeclaration.js","sourceRoot":"","sources":["../../src/helpers/generateTypedAliasDeclaration.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAErB,MAAM,6BAA6B,GAAG,CAC3C,IAAY,EACZ,IAAiB,EACjB,EAAE;IACF,OAAO,oBAAE,CAAC,OAAO,CAAC,0BAA0B,CAC1C,CAAC,oBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EACxD,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACjC,SAAS,EACT,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,6BAA6B,iCAUxC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const typescript_1 = __importDefault(require("typescript"));
7
- const vitest_1 = require("vitest");
8
- const generateTypedAliasDeclaration_1 = require("./generateTypedAliasDeclaration");
9
- const testUtils_1 = require("../utils/testUtils");
10
- (0, vitest_1.test)("it creates and exports a type alias :D", () => {
11
- const node = (0, generateTypedAliasDeclaration_1.generateTypedAliasDeclaration)("typeOne", typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createNull()));
12
- const result = (0, testUtils_1.stringifyTsNode)(node);
13
- (0, vitest_1.expect)(result).toEqual(`export type typeOne = null;`);
14
- });
15
- //# sourceMappingURL=generateTypedAliasDeclaration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateTypedAliasDeclaration.test.js","sourceRoot":"","sources":["../../src/helpers/generateTypedAliasDeclaration.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAA4B;AAC5B,mCAAsC;AAEtC,mFAAwF;AACxF,kDAAoD;AAEpD,IAAA,aAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG,IAAA,6DAA6B,EACxC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAC1D,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;IAErC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"camelCase.js","sourceRoot":"","sources":["../../src/utils/camelCase.ts"],"names":[],"mappings":"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"}