joist-codegen 0.1.536 → 1.0.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 (59) hide show
  1. package/build/EntityDbMetadata.d.ts +71 -23
  2. package/build/EntityDbMetadata.js +229 -63
  3. package/build/EntityDbMetadata.js.map +1 -1
  4. package/build/EntityDbMetadata.test.js +5 -5
  5. package/build/EntityDbMetadata.test.js.map +1 -1
  6. package/build/assignTags.d.ts +1 -1
  7. package/build/assignTags.js +2 -2
  8. package/build/assignTags.js.map +1 -1
  9. package/build/config.d.ts +8 -1
  10. package/build/config.js +25 -13
  11. package/build/config.js.map +1 -1
  12. package/build/config.test.d.ts +1 -0
  13. package/build/config.test.js +37 -0
  14. package/build/config.test.js.map +1 -0
  15. package/build/generateEntitiesFile.d.ts +2 -1
  16. package/build/generateEntitiesFile.js +6 -3
  17. package/build/generateEntitiesFile.js.map +1 -1
  18. package/build/generateEntityCodegenFile.d.ts +2 -4
  19. package/build/generateEntityCodegenFile.js +278 -90
  20. package/build/generateEntityCodegenFile.js.map +1 -1
  21. package/build/generateEnumFile.d.ts +2 -3
  22. package/build/generateEnumFile.js +15 -10
  23. package/build/generateEnumFile.js.map +1 -1
  24. package/build/generateFactoriesFiles.js +4 -4
  25. package/build/generateFactoriesFiles.js.map +1 -1
  26. package/build/generateInitialEntityFile.js +7 -2
  27. package/build/generateInitialEntityFile.js.map +1 -1
  28. package/build/generateMetadataFile.js +96 -69
  29. package/build/generateMetadataFile.js.map +1 -1
  30. package/build/generatePgEnumFile.d.ts +4 -0
  31. package/build/generatePgEnumFile.js +18 -0
  32. package/build/generatePgEnumFile.js.map +1 -0
  33. package/build/index.d.ts +24 -8
  34. package/build/index.js +116 -40
  35. package/build/index.js.map +1 -1
  36. package/build/symbols.d.ts +62 -51
  37. package/build/symbols.js +64 -52
  38. package/build/symbols.js.map +1 -1
  39. package/build/utils.d.ts +4 -2
  40. package/build/utils.js +21 -11
  41. package/build/utils.js.map +1 -1
  42. package/package.json +26 -14
  43. package/jest.config.js +0 -10
  44. package/package.json.bak +0 -28
  45. package/src/EntityDbMetadata.test.ts +0 -42
  46. package/src/EntityDbMetadata.ts +0 -322
  47. package/src/assignTags.ts +0 -45
  48. package/src/config.ts +0 -82
  49. package/src/generateEntitiesFile.ts +0 -26
  50. package/src/generateEntityCodegenFile.ts +0 -414
  51. package/src/generateEnumFile.ts +0 -63
  52. package/src/generateFactoriesFiles.ts +0 -29
  53. package/src/generateInitialEntityFile.ts +0 -12
  54. package/src/generateMetadataFile.ts +0 -175
  55. package/src/index.ts +0 -180
  56. package/src/symbols.ts +0 -53
  57. package/src/utils.ts +0 -87
  58. package/tsconfig.json +0 -21
  59. package/tsconfig.tsbuildinfo +0 -3377
@@ -8,25 +8,25 @@ const configDummy = { relationNameOverrides: {} };
8
8
  describe("EntityDbMetadata", () => {
9
9
  describe("tableToEntityName", () => {
10
10
  it("singularizes the table names", () => {
11
- expect(utils_1.tableToEntityName(config_1.defaultConfig, { name: "authors" })).toEqual("Author");
11
+ expect((0, utils_1.tableToEntityName)(config_1.defaultConfig, { name: "authors" })).toEqual("Author");
12
12
  });
13
13
  it("uses config for the table names", () => {
14
14
  const config = {
15
15
  ...config_1.defaultConfig,
16
16
  entities: { Author: { tag: "a", tableName: "TBL_ATHR" } },
17
17
  };
18
- expect(utils_1.tableToEntityName(config, { name: "TBL_ATHR" })).toEqual("Author");
18
+ expect((0, utils_1.tableToEntityName)(config, { name: "TBL_ATHR" })).toEqual("Author");
19
19
  });
20
20
  });
21
21
  describe("collectionName", () => {
22
22
  it("handles base case", () => {
23
- expect(EntityDbMetadata_1.collectionName(configDummy, EntityDbMetadata_1.makeEntity("Author"), EntityDbMetadata_1.makeEntity("Book"), relationDummy).fieldName).toEqual("books");
23
+ expect((0, EntityDbMetadata_1.collectionName)(configDummy, (0, EntityDbMetadata_1.makeEntity)("Author"), (0, EntityDbMetadata_1.makeEntity)("Book"), relationDummy).fieldName).toEqual("books");
24
24
  });
25
25
  it("handles author/mentor", () => {
26
- expect(EntityDbMetadata_1.collectionName(configDummy, EntityDbMetadata_1.makeEntity("Author"), EntityDbMetadata_1.makeEntity("Author"), relationDummy).fieldName).toEqual("authors");
26
+ expect((0, EntityDbMetadata_1.collectionName)(configDummy, (0, EntityDbMetadata_1.makeEntity)("Author"), (0, EntityDbMetadata_1.makeEntity)("Author"), relationDummy).fieldName).toEqual("authors");
27
27
  });
28
28
  it("handles book/book review", () => {
29
- expect(EntityDbMetadata_1.collectionName(configDummy, EntityDbMetadata_1.makeEntity("Book"), EntityDbMetadata_1.makeEntity("BookReview"), relationDummy).fieldName).toEqual("reviews");
29
+ expect((0, EntityDbMetadata_1.collectionName)(configDummy, (0, EntityDbMetadata_1.makeEntity)("Book"), (0, EntityDbMetadata_1.makeEntity)("BookReview"), relationDummy).fieldName).toEqual("reviews");
30
30
  });
31
31
  });
32
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityDbMetadata.test.js","sourceRoot":"","sources":["../src/EntityDbMetadata.test.ts"],"names":[],"mappings":";;AAAA,qCAAyC;AACzC,yDAAkF;AAClF,mCAA4C;AAE5C,MAAM,aAAa,GAAQ,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC;AACjE,MAAM,WAAW,GAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,yBAAiB,CAAC,sBAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG;gBACb,GAAG,sBAAa;gBAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;aAC1D,CAAC;YACF,MAAM,CAAC,yBAAiB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,iCAAc,CAAC,WAAW,EAAE,6BAAU,CAAC,QAAQ,CAAC,EAAE,6BAAU,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAC5G,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,iCAAc,CAAC,WAAW,EAAE,6BAAU,CAAC,QAAQ,CAAC,EAAE,6BAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAC9G,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,CACJ,iCAAc,CAAC,WAAW,EAAE,6BAAU,CAAC,MAAM,CAAC,EAAE,6BAAU,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CACnG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EntityDbMetadata.test.js","sourceRoot":"","sources":["../src/EntityDbMetadata.test.ts"],"names":[],"mappings":";;AAAA,qCAAyC;AACzC,yDAAgE;AAChE,mCAA4C;AAE5C,MAAM,aAAa,GAAQ,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC;AACjE,MAAM,WAAW,GAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,IAAA,yBAAiB,EAAC,sBAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG;gBACb,GAAG,sBAAa;gBAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;aAC1D,CAAC;YACF,MAAM,CAAC,IAAA,yBAAiB,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,IAAA,iCAAc,EAAC,WAAW,EAAE,IAAA,6BAAU,EAAC,QAAQ,CAAC,EAAE,IAAA,6BAAU,EAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAC5G,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,IAAA,iCAAc,EAAC,WAAW,EAAE,IAAA,6BAAU,EAAC,QAAQ,CAAC,EAAE,IAAA,6BAAU,EAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAC9G,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,CACJ,IAAA,iCAAc,EAAC,WAAW,EAAE,IAAA,6BAAU,EAAC,MAAM,CAAC,EAAE,IAAA,6BAAU,EAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,SAAS,CACnG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { DbMetadata } from "./index";
2
1
  import { Config } from "./config";
2
+ import { DbMetadata } from "./index";
3
3
  /**
4
4
  * Looks for any entities that don't have tags in `config` yet, and guesses at what a good tag would be.
5
5
  *
@@ -19,7 +19,7 @@ function assignTags(config, dbMetadata) {
19
19
  .filter((e) => !existingTags[e.name])
20
20
  .forEach((e) => {
21
21
  const abbreviatedTag = guessTagName(e.name);
22
- const tagName = existingTagNames.includes(abbreviatedTag) ? change_case_1.camelCase(e.name) : abbreviatedTag;
22
+ const tagName = existingTagNames.includes(abbreviatedTag) ? (0, change_case_1.camelCase)(e.name) : abbreviatedTag;
23
23
  const oc = config.entities[e.name];
24
24
  if (!oc) {
25
25
  config.entities[e.name] = { tag: tagName };
@@ -34,7 +34,7 @@ function assignTags(config, dbMetadata) {
34
34
  exports.assignTags = assignTags;
35
35
  /** Abbreviates `BookReview` -> `book_review` -> `br`. */
36
36
  function guessTagName(name) {
37
- return change_case_1.snakeCase(name)
37
+ return (0, change_case_1.snakeCase)(name)
38
38
  .split("_")
39
39
  .map((w) => w[0])
40
40
  .join("");
@@ -1 +1 @@
1
- {"version":3,"file":"assignTags.js","sourceRoot":"","sources":["../src/assignTags.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAInD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,UAAsB;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAErD,UAAU,CAAC,QAAQ;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,uBAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC/F,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,EAAE;YACP,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SAC5C;aAAM;YACL,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC;SAClB;QACD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEL,8BAA8B;AAChC,CAAC;AAxBD,gCAwBC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,uBAAS,CAAC,IAAI,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"assignTags.js","sourceRoot":"","sources":["../src/assignTags.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAInD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,UAAsB;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACnD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAErD,UAAU,CAAC,QAAQ;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAS,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC/F,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,EAAE;YACP,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SAC5C;aAAM;YACL,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC;SAClB;QACD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEL,8BAA8B;AAChC,CAAC;AAxBD,gCAwBC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAA,uBAAS,EAAC,IAAI,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
package/build/config.d.ts CHANGED
@@ -2,9 +2,13 @@ import { Entity } from "EntityDbMetadata";
2
2
  export interface FieldConfig {
3
3
  derived?: "sync" | "async";
4
4
  protected?: boolean;
5
+ ignore?: true;
6
+ superstruct?: string;
5
7
  }
6
8
  export interface RelationConfig {
7
9
  name?: string;
10
+ polymorphic?: "notNull" | true;
11
+ large?: true;
8
12
  }
9
13
  export interface EntityConfig {
10
14
  tag: string;
@@ -17,13 +21,16 @@ export interface Config {
17
21
  entitiesDirectory: string;
18
22
  codegenPlugins: string[];
19
23
  entities: Record<string, EntityConfig>;
20
- __tableToEntityName: Record<string, string>;
24
+ __tableToEntityName?: Record<string, string>;
21
25
  }
22
26
  export declare const defaultConfig: Config;
23
27
  export declare const ormMaintainedFields: string[];
24
28
  export declare function isDerived(config: Config, entity: Entity, fieldName: string): boolean;
25
29
  export declare function isAsyncDerived(config: Config, entity: Entity, fieldName: string): boolean;
26
30
  export declare function isProtected(config: Config, entity: Entity, fieldName: string): boolean;
31
+ export declare function superstructConfig(config: Config, entity: Entity, fieldName: string): string | undefined;
32
+ export declare function isLargeCollection(config: Config, entity: Entity, fieldName: string): boolean;
33
+ export declare function isFieldIgnored(config: Config, entity: Entity, fieldName: string, notNull?: boolean, hasDefault?: boolean): boolean;
27
34
  export declare function relationName(config: Config, entity: Entity, relationName: string): string;
28
35
  export declare function loadConfig(): Promise<Config>;
29
36
  /**
package/build/config.js CHANGED
@@ -14,12 +14,12 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
14
  var __importStar = (this && this.__importStar) || function (mod) {
15
15
  if (mod && mod.__esModule) return mod;
16
16
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.writeConfig = exports.loadConfig = exports.relationName = exports.isProtected = exports.isAsyncDerived = exports.isDerived = exports.ormMaintainedFields = exports.defaultConfig = void 0;
22
+ exports.writeConfig = exports.loadConfig = exports.relationName = exports.isFieldIgnored = exports.isLargeCollection = exports.superstructConfig = exports.isProtected = exports.isAsyncDerived = exports.isDerived = exports.ormMaintainedFields = exports.defaultConfig = void 0;
23
23
  const fs_1 = require("fs");
24
24
  const prettier_1 = __importStar(require("prettier"));
25
25
  const utils_1 = require("./utils");
@@ -31,28 +31,40 @@ exports.defaultConfig = {
31
31
  };
32
32
  exports.ormMaintainedFields = ["createdAt", "updatedAt"];
33
33
  function isDerived(config, entity, fieldName) {
34
- var _a, _b, _c;
35
- return ((_c = (_b = (_a = config.entities[entity.name]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[fieldName]) === null || _c === void 0 ? void 0 : _c.derived) === "sync";
34
+ return config.entities[entity.name]?.fields?.[fieldName]?.derived === "sync";
36
35
  }
37
36
  exports.isDerived = isDerived;
38
37
  function isAsyncDerived(config, entity, fieldName) {
39
- var _a, _b, _c;
40
- return ((_c = (_b = (_a = config.entities[entity.name]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[fieldName]) === null || _c === void 0 ? void 0 : _c.derived) === "async";
38
+ return config.entities[entity.name]?.fields?.[fieldName]?.derived === "async";
41
39
  }
42
40
  exports.isAsyncDerived = isAsyncDerived;
43
41
  function isProtected(config, entity, fieldName) {
44
- var _a, _b, _c;
45
- return ((_c = (_b = (_a = config.entities[entity.name]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[fieldName]) === null || _c === void 0 ? void 0 : _c.protected) === true;
42
+ return config.entities[entity.name]?.fields?.[fieldName]?.protected === true;
46
43
  }
47
44
  exports.isProtected = isProtected;
45
+ function superstructConfig(config, entity, fieldName) {
46
+ return config.entities[entity.name]?.fields?.[fieldName]?.superstruct;
47
+ }
48
+ exports.superstructConfig = superstructConfig;
49
+ function isLargeCollection(config, entity, fieldName) {
50
+ return config.entities[entity.name]?.relations?.[fieldName]?.large === true;
51
+ }
52
+ exports.isLargeCollection = isLargeCollection;
53
+ function isFieldIgnored(config, entity, fieldName, notNull = false, hasDefault = false) {
54
+ const ignore = config.entities[entity.name]?.fields?.[fieldName]?.ignore === true;
55
+ if (ignore && notNull && !hasDefault) {
56
+ (0, utils_1.fail)(`notNull field ${entity.name}.${fieldName} cannot be ignored. Alter the column to be optional or have a default value prior to ignoring it.`);
57
+ }
58
+ return ignore;
59
+ }
60
+ exports.isFieldIgnored = isFieldIgnored;
48
61
  function relationName(config, entity, relationName) {
49
- var _a, _b, _c, _d, _e;
50
- return (_e = (_d = (_c = (_b = (_a = config.entities) === null || _a === void 0 ? void 0 : _a[entity.name]) === null || _b === void 0 ? void 0 : _b.relations) === null || _c === void 0 ? void 0 : _c[relationName]) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : relationName;
62
+ return config.entities?.[entity.name]?.relations?.[relationName]?.name ?? relationName;
51
63
  }
52
64
  exports.relationName = relationName;
53
65
  const configPath = "./joist-codegen.json";
54
66
  async function loadConfig() {
55
- const exists = await utils_1.trueIfResolved(fs_1.promises.access(configPath));
67
+ const exists = await (0, utils_1.trueIfResolved)(fs_1.promises.access(configPath));
56
68
  if (exists) {
57
69
  const content = await fs_1.promises.readFile(configPath);
58
70
  return {
@@ -70,8 +82,8 @@ exports.loadConfig = loadConfig;
70
82
  * such that no changes to the config show up as noops to the scm.
71
83
  */
72
84
  async function writeConfig(config) {
73
- const prettierConfig = await prettier_1.resolveConfig("./");
74
- const sorted = utils_1.sortKeys(config);
85
+ const prettierConfig = await (0, prettier_1.resolveConfig)("./");
86
+ const sorted = (0, utils_1.sortKeys)(config);
75
87
  delete sorted.__tableToEntityName;
76
88
  const input = JSON.stringify(sorted);
77
89
  const content = prettier_1.default.format(input.trim(), { parser: "json", ...prettierConfig });
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,2BAAoC;AACpC,qDAAmD;AACnD,mCAAmD;AA2BtC,QAAA,aAAa,GAAW;IACnC,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,EAAE;IACZ,mBAAmB,EAAE,EAAE;CACxB,CAAC;AAEW,QAAA,mBAAmB,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE9D,SAAgB,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB;;IACzE,OAAO,mBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAE,MAAM,0CAAG,SAAS,2CAAG,OAAO,MAAK,MAAM,CAAC;AAC/E,CAAC;AAFD,8BAEC;AAED,SAAgB,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB;;IAC9E,OAAO,mBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAE,MAAM,0CAAG,SAAS,2CAAG,OAAO,MAAK,OAAO,CAAC;AAChF,CAAC;AAFD,wCAEC;AAED,SAAgB,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,SAAiB;;IAC3E,OAAO,mBAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAE,MAAM,0CAAG,SAAS,2CAAG,SAAS,MAAK,IAAI,CAAC;AAC/E,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,YAAoB;;IAC/E,qCAAO,MAAM,CAAC,QAAQ,0CAAG,MAAM,CAAC,IAAI,2CAAG,SAAS,0CAAG,YAAY,2CAAG,IAAI,mCAAI,YAAY,CAAC;AACzF,CAAC;AAFD,oCAEC;AAED,MAAM,UAAU,GAAG,sBAAsB,CAAC;AACnC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,MAAM,sBAAc,CAAC,aAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,IAAI,MAAM,EAAE;QACV,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO;YACL,GAAG,qBAAa;YAChB,GAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAY;SAC9C,CAAC;KACH;IACD,OAAO,qBAAa,CAAC;AACvB,CAAC;AAVD,gCAUC;AAED;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,cAAc,GAAG,MAAM,wBAAa,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,gBAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,mBAAmB,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;IACrF,MAAM,aAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAPD,kCAOC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config_1 = require("./config");
4
+ const EntityDbMetadata_1 = require("./EntityDbMetadata");
5
+ describe("config", () => {
6
+ describe("isFieldIgnored", () => {
7
+ // A little hack to test the case of `ignore: false`, since it is actually defined as `ignore?: true`
8
+ const falseAsTrue = false;
9
+ it.each([
10
+ ["does not ignore when no config is provided", newAuthorConfig()],
11
+ ["does not ignore when FieldConfig for fieldName is not specified", newAuthorConfig({})],
12
+ ["does not ignore when FieldConfig.fieldName has ignore unset", newAuthorConfig({ fieldName: {} })],
13
+ [
14
+ "does not ignore when FieldConfig.fieldName has ignore: false",
15
+ newAuthorConfig({ fieldName: { ignore: falseAsTrue } }),
16
+ ],
17
+ ])("%s", (_message, config) => {
18
+ expect((0, config_1.isFieldIgnored)(config, (0, EntityDbMetadata_1.makeEntity)("Author"), "fieldName", true)).toEqual(false);
19
+ });
20
+ it("indicates the field is ignored when the field is not required and configured with ignore: true", () => {
21
+ expect((0, config_1.isFieldIgnored)(newAuthorConfig({ shouldIgnore: { ignore: true } }), (0, EntityDbMetadata_1.makeEntity)("Author"), "shouldIgnore", false)).toEqual(true);
22
+ });
23
+ it("indicates the field is ignored when the field is required but has a default value and configured with ignore: true", () => {
24
+ expect((0, config_1.isFieldIgnored)(newAuthorConfig({ shouldIgnore: { ignore: true } }), (0, EntityDbMetadata_1.makeEntity)("Author"), "shouldIgnore", true, true)).toEqual(true);
25
+ });
26
+ it("fails if the ignored key is not nullable", async () => {
27
+ await expect(async () => (0, config_1.isFieldIgnored)(newAuthorConfig({ shouldNotIgnore: { ignore: true } }), (0, EntityDbMetadata_1.makeEntity)("Author"), "shouldNotIgnore", true)).rejects.toThrowError("notNull fields cannot be ignored. Alter the column to be optional or have a default value prior to ignoring it.");
28
+ });
29
+ });
30
+ });
31
+ function newAuthorConfig(fields) {
32
+ return {
33
+ ...config_1.defaultConfig,
34
+ entities: { Author: { tag: "a", fields } },
35
+ };
36
+ }
37
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":";;AAAA,qCAA8E;AAC9E,yDAAgD;AAEhD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,qGAAqG;QACrG,MAAM,WAAW,GAAG,KAAwB,CAAC;QAE7C,EAAE,CAAC,IAAI,CAAC;YACN,CAAC,4CAA4C,EAAE,eAAe,EAAE,CAAC;YACjE,CAAC,iEAAiE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC,6DAA6D,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YACnG;gBACE,8DAA8D;gBAC9D,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;aACxD;SACF,CAAC,CAAC,IAAI,EAAE,CAAC,QAAgB,EAAE,MAAc,EAAE,EAAE;YAC5C,MAAM,CAAC,IAAA,uBAAc,EAAC,MAAM,EAAE,IAAA,6BAAU,EAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gGAAgG,EAAE,GAAG,EAAE;YACxG,MAAM,CACJ,IAAA,uBAAc,EACZ,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EACnD,IAAA,6BAAU,EAAC,QAAQ,CAAC,EACpB,cAAc,EACd,KAAK,CACN,CACF,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oHAAoH,EAAE,GAAG,EAAE;YAC5H,MAAM,CACJ,IAAA,uBAAc,EACZ,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EACnD,IAAA,6BAAU,EAAC,QAAQ,CAAC,EACpB,cAAc,EACd,IAAI,EACJ,IAAI,CACL,CACF,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE,CACtB,IAAA,uBAAc,EACZ,eAAe,CAAC,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EACtD,IAAA,6BAAU,EAAC,QAAQ,CAAC,EACpB,iBAAiB,EACjB,IAAI,CACL,CACF,CAAC,OAAO,CAAC,YAAY,CACpB,iHAAiH,CAClH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,MAAoC;IAC3D,OAAO;QACL,GAAG,sBAAa;QAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { PgEnumData } from "index";
1
2
  import { Table } from "pg-structure";
2
3
  import { Code } from "ts-poet";
3
4
  import { Config } from "./config";
4
5
  import { EntityDbMetadata } from "./EntityDbMetadata";
5
- export declare function generateEntitiesFile(config: Config, entities: EntityDbMetadata[], enums: Table[]): Code;
6
+ export declare function generateEntitiesFile(config: Config, entities: EntityDbMetadata[], enums: Table[], pgEnums: PgEnumData[]): Code;
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateEntitiesFile = void 0;
4
4
  const ts_poet_1 = require("ts-poet");
5
5
  const utils_1 = require("./utils");
6
- function generateEntitiesFile(config, entities, enums) {
7
- return ts_poet_1.code `
6
+ function generateEntitiesFile(config, entities, enums, pgEnums) {
7
+ return (0, ts_poet_1.code) `
8
8
  // organize-imports-ignore
9
9
 
10
10
  // This file drives our import order to avoid undefined errors
11
11
  // when the subclasses extend the base classes, see:
12
12
  // https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de
13
13
  ${enums.map((table) => {
14
- return `export * from "./${utils_1.tableToEntityName(config, table)}";`;
14
+ return `export * from "./${(0, utils_1.tableToEntityName)(config, table)}";`;
15
15
  })}
16
16
  ${entities.map((meta) => {
17
17
  return `export * from "./${meta.entity.name}Codegen";`;
@@ -19,6 +19,9 @@ function generateEntitiesFile(config, entities, enums) {
19
19
  ${entities.map((meta) => {
20
20
  return `export * from "./${meta.entity.name}";`;
21
21
  })}
22
+ ${pgEnums.map((meta) => {
23
+ return `export * from "./${meta.name}";`;
24
+ })}
22
25
  export * from "./factories";
23
26
  export * from "./metadata";
24
27
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"generateEntitiesFile.js","sourceRoot":"","sources":["../src/generateEntitiesFile.ts"],"names":[],"mappings":";;;AACA,qCAAqC;AAGrC,mCAA4C;AAE5C,SAAgB,oBAAoB,CAAC,MAAc,EAAE,QAA4B,EAAE,KAAc;IAC/F,OAAO,cAAI,CAAA;;;;;;MAMP,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,OAAO,oBAAoB,yBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;MACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;IACzD,CAAC,CAAC;MACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC,CAAC;;;GAGH,CAAC;AACJ,CAAC;AAnBD,oDAmBC"}
1
+ {"version":3,"file":"generateEntitiesFile.js","sourceRoot":"","sources":["../src/generateEntitiesFile.ts"],"names":[],"mappings":";;;AAEA,qCAAqC;AAGrC,mCAA4C;AAE5C,SAAgB,oBAAoB,CAClC,MAAc,EACd,QAA4B,EAC5B,KAAc,EACd,OAAqB;IAErB,OAAO,IAAA,cAAI,EAAA;;;;;;MAMP,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,OAAO,oBAAoB,IAAA,yBAAiB,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;MACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;IACzD,CAAC,CAAC;MACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC,CAAC;MACA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,OAAO,oBAAoB,IAAI,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC,CAAC;;;GAGH,CAAC;AACJ,CAAC;AA3BD,oDA2BC"}
@@ -1,10 +1,8 @@
1
1
  import { Code } from "ts-poet";
2
- import { SymbolSpec } from "ts-poet/build/SymbolSpecs";
3
2
  import { Config } from "./config";
4
- import { EntityDbMetadata } from "./EntityDbMetadata";
3
+ import { EntityDbMetadata, PrimitiveTypescriptType } from "./EntityDbMetadata";
5
4
  export interface ColumnMetaData {
6
- typeConverter?: SymbolSpec;
7
- fieldType: SymbolSpec | string;
5
+ fieldType: PrimitiveTypescriptType;
8
6
  }
9
7
  /** Creates the base class with the boilerplate annotations. */
10
8
  export declare function generateEntityCodegenFile(config: Config, meta: EntityDbMetadata): Code;