joist-graphql-codegen 2.3.0-next.41 → 2.3.0-next.43

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 (125) hide show
  1. package/build/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/build/generateEnumDetailResolvers.cjs +40 -0
  3. package/build/generateEnumDetailResolvers.cjs.map +1 -0
  4. package/build/generateEnumDetailResolvers.d.cts +8 -0
  5. package/build/generateEnumDetailResolvers.d.cts.map +1 -0
  6. package/build/generateEnumDetailResolvers.d.mts +8 -0
  7. package/build/generateEnumDetailResolvers.d.mts.map +1 -0
  8. package/build/generateEnumDetailResolvers.js +23 -23
  9. package/build/generateEnumDetailResolvers.js.map +1 -1
  10. package/build/generateEnumsGraphql.cjs +29 -0
  11. package/build/generateEnumsGraphql.cjs.map +1 -0
  12. package/build/generateEnumsGraphql.d.cts +8 -0
  13. package/build/generateEnumsGraphql.d.cts.map +1 -0
  14. package/build/generateEnumsGraphql.d.mts +8 -0
  15. package/build/generateEnumsGraphql.d.mts.map +1 -0
  16. package/build/generateEnumsGraphql.js +24 -27
  17. package/build/generateEnumsGraphql.js.map +1 -1
  18. package/build/generateGraphqlCodegen.cjs +54 -0
  19. package/build/generateGraphqlCodegen.cjs.map +1 -0
  20. package/build/generateGraphqlCodegen.d.cts +8 -0
  21. package/build/generateGraphqlCodegen.d.cts.map +1 -0
  22. package/build/generateGraphqlCodegen.d.mts +8 -0
  23. package/build/generateGraphqlCodegen.d.mts.map +1 -0
  24. package/build/generateGraphqlCodegen.js +28 -30
  25. package/build/generateGraphqlCodegen.js.map +1 -1
  26. package/build/generateGraphqlSchemaFiles.cjs +491 -0
  27. package/build/generateGraphqlSchemaFiles.cjs.map +1 -0
  28. package/build/{generateGraphqlSchemaFiles.d.ts → generateGraphqlSchemaFiles.d.cts} +6 -2
  29. package/build/generateGraphqlSchemaFiles.d.cts.map +1 -0
  30. package/build/generateGraphqlSchemaFiles.d.mts +15 -0
  31. package/build/generateGraphqlSchemaFiles.d.mts.map +1 -0
  32. package/build/generateGraphqlSchemaFiles.js +444 -286
  33. package/build/generateGraphqlSchemaFiles.js.map +1 -1
  34. package/build/generateObjectResolvers.cjs +70 -0
  35. package/build/generateObjectResolvers.cjs.map +1 -0
  36. package/build/{generateObjectResolvers.d.ts → generateObjectResolvers.d.cts} +5 -1
  37. package/build/generateObjectResolvers.d.cts.map +1 -0
  38. package/build/generateObjectResolvers.d.mts +17 -0
  39. package/build/generateObjectResolvers.d.mts.map +1 -0
  40. package/build/generateObjectResolvers.js +48 -38
  41. package/build/generateObjectResolvers.js.map +1 -1
  42. package/build/generateQueryPageResolvers.cjs +51 -0
  43. package/build/generateQueryPageResolvers.cjs.map +1 -0
  44. package/build/generateQueryPageResolvers.d.cts +8 -0
  45. package/build/generateQueryPageResolvers.d.cts.map +1 -0
  46. package/build/generateQueryPageResolvers.d.mts +8 -0
  47. package/build/generateQueryPageResolvers.d.mts.map +1 -0
  48. package/build/generateQueryPageResolvers.js +31 -35
  49. package/build/generateQueryPageResolvers.js.map +1 -1
  50. package/build/generateQueryResolvers.cjs +55 -0
  51. package/build/generateQueryResolvers.cjs.map +1 -0
  52. package/build/generateQueryResolvers.d.cts +10 -0
  53. package/build/generateQueryResolvers.d.cts.map +1 -0
  54. package/build/generateQueryResolvers.d.mts +10 -0
  55. package/build/generateQueryResolvers.d.mts.map +1 -0
  56. package/build/generateQueryResolvers.js +38 -36
  57. package/build/generateQueryResolvers.js.map +1 -1
  58. package/build/generateResolverUtils.cjs +36 -0
  59. package/build/generateResolverUtils.cjs.map +1 -0
  60. package/build/generateResolverUtils.d.cts +8 -0
  61. package/build/generateResolverUtils.d.cts.map +1 -0
  62. package/build/generateResolverUtils.d.mts +8 -0
  63. package/build/generateResolverUtils.d.mts.map +1 -0
  64. package/build/generateResolverUtils.js +25 -26
  65. package/build/generateResolverUtils.js.map +1 -1
  66. package/build/generateSaveResolvers.cjs +57 -0
  67. package/build/generateSaveResolvers.cjs.map +1 -0
  68. package/build/{generateSaveResolvers.d.ts → generateSaveResolvers.d.cts} +5 -1
  69. package/build/generateSaveResolvers.d.cts.map +1 -0
  70. package/build/generateSaveResolvers.d.mts +17 -0
  71. package/build/generateSaveResolvers.d.mts.map +1 -0
  72. package/build/generateSaveResolvers.js +39 -40
  73. package/build/generateSaveResolvers.js.map +1 -1
  74. package/build/graphqlUtils.cjs +160 -0
  75. package/build/graphqlUtils.cjs.map +1 -0
  76. package/build/graphqlUtils.d.cts +31 -0
  77. package/build/graphqlUtils.d.cts.map +1 -0
  78. package/build/graphqlUtils.d.mts +31 -0
  79. package/build/graphqlUtils.d.mts.map +1 -0
  80. package/build/graphqlUtils.js +120 -218
  81. package/build/graphqlUtils.js.map +1 -1
  82. package/build/history.cjs +25 -0
  83. package/build/history.cjs.map +1 -0
  84. package/build/history.d.cts +9 -0
  85. package/build/history.d.cts.map +1 -0
  86. package/build/history.d.mts +9 -0
  87. package/build/history.d.mts.map +1 -0
  88. package/build/history.js +17 -14
  89. package/build/history.js.map +1 -1
  90. package/build/index.cjs +57 -0
  91. package/build/index.cjs.map +1 -0
  92. package/build/index.d.cts +7 -0
  93. package/build/index.d.cts.map +1 -0
  94. package/build/index.d.mts +7 -0
  95. package/build/index.d.mts.map +1 -0
  96. package/build/index.js +48 -54
  97. package/build/index.js.map +1 -1
  98. package/build/testUtils.cjs +181 -0
  99. package/build/testUtils.cjs.map +1 -0
  100. package/build/testUtils.d.cts +20 -0
  101. package/build/testUtils.d.cts.map +1 -0
  102. package/build/testUtils.d.mts +20 -0
  103. package/build/testUtils.d.mts.map +1 -0
  104. package/build/testUtils.js +152 -158
  105. package/build/testUtils.js.map +1 -1
  106. package/build/utils.cjs +51 -0
  107. package/build/utils.cjs.map +1 -0
  108. package/build/utils.d.cts +16 -0
  109. package/build/utils.d.cts.map +1 -0
  110. package/build/utils.d.mts +16 -0
  111. package/build/utils.d.mts.map +1 -0
  112. package/build/utils.js +37 -49
  113. package/build/utils.js.map +1 -1
  114. package/package.json +28 -5
  115. package/build/generateEnumDetailResolvers.d.ts +0 -4
  116. package/build/generateEnumsGraphql.d.ts +0 -4
  117. package/build/generateGraphqlCodegen.d.ts +0 -4
  118. package/build/generateQueryPageResolvers.d.ts +0 -4
  119. package/build/generateQueryResolvers.d.ts +0 -6
  120. package/build/generateResolverUtils.d.ts +0 -4
  121. package/build/graphqlUtils.d.ts +0 -27
  122. package/build/history.d.ts +0 -5
  123. package/build/index.d.ts +0 -3
  124. package/build/testUtils.d.ts +0 -24
  125. package/build/utils.d.ts +0 -12
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
@@ -0,0 +1,40 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
+ const require_utils = require("./utils.cjs");
4
+ let change_case = require("change-case");
5
+ require("joist-codegen");
6
+ let pluralize = require("pluralize");
7
+ pluralize = require_runtime.__toESM(pluralize, 1);
8
+ let ts_poet = require("ts-poet");
9
+ //#region src/generateEnumDetailResolvers.ts
10
+ /** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's "enum detail" types. */
11
+ function generateEnumDetailResolvers(config, enums) {
12
+ const entitiesPath = require_utils.getEntitiesImportPath(config);
13
+ const enumNames = Object.values(enums).map(({ name }) => name);
14
+ const resolvers = Object.values(enums).map(({ name, extraPrimitives }) => {
15
+ const type = (0, ts_poet.imp)(`${(0, pluralize.default)(name)}@${entitiesPath}`);
16
+ return ts_poet.code`
17
+ ${name}Detail: {
18
+ code: (root) => root,
19
+ name: (root) => ${type}.getByCode(root).name,
20
+ ${extraPrimitives.map((p) => (0, change_case.camelCase)(p.columnName)).map((fieldName) => ts_poet.code`${fieldName}: (root) => ${type}.getByCode(root).${fieldName},`)}
21
+ },
22
+ `;
23
+ });
24
+ const Resolvers = (0, ts_poet.imp)("t:Resolvers@src/generated/graphql-types.ts");
25
+ return {
26
+ name: "../resolvers/enumResolvers.ts",
27
+ overwrite: true,
28
+ contents: ts_poet.code`
29
+ type EnumDetails = ${enumNames.length === 0 ? "never" : enumNames.map((n) => `"${n}Detail"`).join(" | ")};
30
+
31
+ export const enumResolvers: Pick<${Resolvers}, EnumDetails> = {
32
+ ${resolvers}
33
+ };
34
+ `
35
+ };
36
+ }
37
+ //#endregion
38
+ exports.generateEnumDetailResolvers = generateEnumDetailResolvers;
39
+
40
+ //# sourceMappingURL=generateEnumDetailResolvers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumDetailResolvers.cjs","names":["getEntitiesImportPath","imp","camelCase","code"],"sources":["../src/generateEnumDetailResolvers.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type Config, type EnumMetadata } from \"joist-codegen\";\nimport pluralize from \"pluralize\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\n/** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's \"enum detail\" types. */\nexport function generateEnumDetailResolvers(config: Config, enums: EnumMetadata): CodegenFile {\n const entitiesPath = getEntitiesImportPath(config);\n const enumNames = Object.values(enums).map(({ name }) => name);\n\n const resolvers = Object.values(enums).map(({ name, extraPrimitives }) => {\n const type = imp(`${pluralize(name)}@${entitiesPath}`);\n return code`\n ${name}Detail: {\n code: (root) => root,\n name: (root) => ${type}.getByCode(root).name,\n ${extraPrimitives\n .map((p) => camelCase(p.columnName))\n .map((fieldName) => code`${fieldName}: (root) => ${type}.getByCode(root).${fieldName},`)}\n },\n `;\n });\n\n const Resolvers = imp(\"t:Resolvers@src/generated/graphql-types.ts\");\n\n const contents = code`\n type EnumDetails = ${enumNames.length === 0 ? \"never\" : enumNames.map((n) => `\"${n}Detail\"`).join(\" | \")};\n\n export const enumResolvers: Pick<${Resolvers}, EnumDetails> = {\n ${resolvers}\n };\n `;\n\n return { name: \"../resolvers/enumResolvers.ts\", overwrite: true, contents };\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,4BAA4B,QAAgB,OAAkC;CAC5F,MAAM,eAAeA,cAAAA,sBAAsB,MAAM;CACjD,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI;CAE7D,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,sBAAsB;EACxE,MAAM,QAAA,GAAOC,QAAAA,IAAAA,CAAI,IAAA,GAAG,UAAA,QAAA,CAAU,IAAI,EAAE,GAAG,cAAc;EACrD,OAAO,QAAA,IAAI;QACP,KAAK;;0BAEa,KAAK;UACrB,gBACC,KAAK,OAAA,GAAMC,YAAAA,UAAAA,CAAU,EAAE,UAAU,CAAC,CAAC,CACnC,KAAK,cAAc,QAAA,IAAI,GAAG,UAAU,cAAc,KAAK,mBAAmB,UAAU,EAAE,EAAE;;;CAGjG,CAAC;CAED,MAAM,aAAA,GAAYD,QAAAA,IAAAA,CAAI,4CAA4C;CAUlE,OAAO;EAAE,MAAM;EAAiC,WAAW;EAAM,UARhDE,QAAAA,IAAI;yBACE,UAAU,WAAW,IAAI,UAAU,UAAU,KAAK,MAAM,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,EAAE;;uCAEtE,UAAU;QACzC,UAAU;;;CAI0D;AAC5E"}
@@ -0,0 +1,8 @@
1
+ import { Config, EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateEnumDetailResolvers.d.ts
4
+ /** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's "enum detail" types. */
5
+ declare function generateEnumDetailResolvers(config: Config, enums: EnumMetadata): CodegenFile;
6
+ //#endregion
7
+ export { generateEnumDetailResolvers };
8
+ //# sourceMappingURL=generateEnumDetailResolvers.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumDetailResolvers.d.cts","names":[],"sources":["../src/generateEnumDetailResolvers.ts"],"mappings":";;;;iBAQgB,4BAA4B,QAAQ,QAAQ,OAAO,eAAe"}
@@ -0,0 +1,8 @@
1
+ import { Config, EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateEnumDetailResolvers.d.ts
4
+ /** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's "enum detail" types. */
5
+ declare function generateEnumDetailResolvers(config: Config, enums: EnumMetadata): CodegenFile;
6
+ //#endregion
7
+ export { generateEnumDetailResolvers };
8
+ //# sourceMappingURL=generateEnumDetailResolvers.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumDetailResolvers.d.mts","names":[],"sources":["../src/generateEnumDetailResolvers.ts"],"mappings":";;;;iBAQgB,4BAA4B,QAAQ,QAAQ,OAAO,eAAe"}
@@ -1,37 +1,37 @@
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.generateEnumDetailResolvers = generateEnumDetailResolvers;
7
- const change_case_1 = require("change-case");
8
- const pluralize_1 = __importDefault(require("pluralize"));
9
- const ts_poet_1 = require("ts-poet");
10
- const utils_1 = require("./utils");
1
+ import { getEntitiesImportPath } from "./utils.js";
2
+ import { camelCase } from "change-case";
3
+ import "joist-codegen";
4
+ import pluralize from "pluralize";
5
+ import { code, imp } from "ts-poet";
6
+ //#region src/generateEnumDetailResolvers.ts
11
7
  /** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's "enum detail" types. */
12
8
  function generateEnumDetailResolvers(config, enums) {
13
- const entitiesPath = (0, utils_1.getEntitiesImportPath)(config);
14
- const enumNames = Object.values(enums).map(({ name }) => name);
15
- const resolvers = Object.values(enums).map(({ name, extraPrimitives }) => {
16
- const type = (0, ts_poet_1.imp)(`${(0, pluralize_1.default)(name)}@${entitiesPath}`);
17
- return (0, ts_poet_1.code) `
9
+ const entitiesPath = getEntitiesImportPath(config);
10
+ const enumNames = Object.values(enums).map(({ name }) => name);
11
+ const resolvers = Object.values(enums).map(({ name, extraPrimitives }) => {
12
+ const type = imp(`${pluralize(name)}@${entitiesPath}`);
13
+ return code`
18
14
  ${name}Detail: {
19
15
  code: (root) => root,
20
16
  name: (root) => ${type}.getByCode(root).name,
21
- ${extraPrimitives
22
- .map((p) => (0, change_case_1.camelCase)(p.columnName))
23
- .map((fieldName) => (0, ts_poet_1.code) `${fieldName}: (root) => ${type}.getByCode(root).${fieldName},`)}
17
+ ${extraPrimitives.map((p) => camelCase(p.columnName)).map((fieldName) => code`${fieldName}: (root) => ${type}.getByCode(root).${fieldName},`)}
24
18
  },
25
19
  `;
26
- });
27
- const Resolvers = (0, ts_poet_1.imp)("t:Resolvers@src/generated/graphql-types.ts");
28
- const contents = (0, ts_poet_1.code) `
20
+ });
21
+ const Resolvers = imp("t:Resolvers@src/generated/graphql-types.ts");
22
+ return {
23
+ name: "../resolvers/enumResolvers.ts",
24
+ overwrite: true,
25
+ contents: code`
29
26
  type EnumDetails = ${enumNames.length === 0 ? "never" : enumNames.map((n) => `"${n}Detail"`).join(" | ")};
30
27
 
31
28
  export const enumResolvers: Pick<${Resolvers}, EnumDetails> = {
32
29
  ${resolvers}
33
30
  };
34
- `;
35
- return { name: "../resolvers/enumResolvers.ts", overwrite: true, contents };
31
+ `
32
+ };
36
33
  }
34
+ //#endregion
35
+ export { generateEnumDetailResolvers };
36
+
37
37
  //# sourceMappingURL=generateEnumDetailResolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateEnumDetailResolvers.js","sourceRoot":"","sources":["../src/generateEnumDetailResolvers.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwC;AAExC,0DAAkC;AAClC,qCAAiD;AAEjD,mCAAgD;AAEhD,iHAAiH;AACjH,qCAA4C,MAAc,EAAE,KAAmB;IAC7E,MAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QACvD,OAAO,IAAA,cAAI,EAAA;QACP,IAAI;;0BAEc,IAAI;UACpB,eAAe;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,GAAG,SAAS,eAAe,IAAI,oBAAoB,SAAS,GAAG,CAAC;;KAE7F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,4CAA4C,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAA,cAAI,EAAA;yBACE,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;uCAErE,SAAS;QACxC,SAAS;;GAEd,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"generateEnumDetailResolvers.js","names":[],"sources":["../src/generateEnumDetailResolvers.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type Config, type EnumMetadata } from \"joist-codegen\";\nimport pluralize from \"pluralize\";\nimport { type CodegenFile, code, imp } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\n/** Generates a `src/resolvers/enumResolvers.ts` with a resolver for each of our domain's \"enum detail\" types. */\nexport function generateEnumDetailResolvers(config: Config, enums: EnumMetadata): CodegenFile {\n const entitiesPath = getEntitiesImportPath(config);\n const enumNames = Object.values(enums).map(({ name }) => name);\n\n const resolvers = Object.values(enums).map(({ name, extraPrimitives }) => {\n const type = imp(`${pluralize(name)}@${entitiesPath}`);\n return code`\n ${name}Detail: {\n code: (root) => root,\n name: (root) => ${type}.getByCode(root).name,\n ${extraPrimitives\n .map((p) => camelCase(p.columnName))\n .map((fieldName) => code`${fieldName}: (root) => ${type}.getByCode(root).${fieldName},`)}\n },\n `;\n });\n\n const Resolvers = imp(\"t:Resolvers@src/generated/graphql-types.ts\");\n\n const contents = code`\n type EnumDetails = ${enumNames.length === 0 ? \"never\" : enumNames.map((n) => `\"${n}Detail\"`).join(\" | \")};\n\n export const enumResolvers: Pick<${Resolvers}, EnumDetails> = {\n ${resolvers}\n };\n `;\n\n return { name: \"../resolvers/enumResolvers.ts\", overwrite: true, contents };\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,4BAA4B,QAAgB,OAAkC;CAC5F,MAAM,eAAe,sBAAsB,MAAM;CACjD,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI;CAE7D,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,sBAAsB;EACxE,MAAM,OAAO,IAAI,GAAG,UAAU,IAAI,EAAE,GAAG,cAAc;EACrD,OAAO,IAAI;QACP,KAAK;;0BAEa,KAAK;UACrB,gBACC,KAAK,MAAM,UAAU,EAAE,UAAU,CAAC,CAAC,CACnC,KAAK,cAAc,IAAI,GAAG,UAAU,cAAc,KAAK,mBAAmB,UAAU,EAAE,EAAE;;;CAGjG,CAAC;CAED,MAAM,YAAY,IAAI,4CAA4C;CAUlE,OAAO;EAAE,MAAM;EAAiC,WAAW;EAAM,UARhD,IAAI;yBACE,UAAU,WAAW,IAAI,UAAU,UAAU,KAAK,MAAM,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,EAAE;;uCAEtE,UAAU;QACzC,UAAU;;;CAI0D;AAC5E"}
@@ -0,0 +1,29 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_graphqlUtils = require("./graphqlUtils.cjs");
3
+ let change_case = require("change-case");
4
+ require("joist-codegen");
5
+ require("ts-poet");
6
+ //#region src/generateEnumsGraphql.ts
7
+ /** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */
8
+ async function generateEnumsGraphql(enums) {
9
+ const contents = Object.values(enums).map(({ name, rows, extraPrimitives }) => {
10
+ return [
11
+ `enum ${name} { ${rows.map((r) => r.code).join(" ")} }`,
12
+ "",
13
+ `type ${name}Detail { code: ${name}! name: String! ${extraPrimitives.filter((p) => !require_graphqlUtils.isJsonbColumn(p)).map((p) => `${(0, change_case.camelCase)(p.columnName)}: ${require_graphqlUtils.mapTypescriptTypeToGraphQLType(p.fieldName, p.fieldType)}!`).join(" ")} }`,
14
+ ""
15
+ ];
16
+ }).flat();
17
+ const allEnumDetails = Object.values(enums).length > 0 ? `type AllEnumDetails {
18
+ ${Object.values(enums).map(({ name }) => `${(0, change_case.camelCase)(name)}: [${name}Detail!]!`).join("\n")}
19
+ }` : "";
20
+ return {
21
+ name: "../../schema/enums.graphql",
22
+ overwrite: true,
23
+ contents: await require_graphqlUtils.formatGraphQL([...contents, allEnumDetails].join("\n"))
24
+ };
25
+ }
26
+ //#endregion
27
+ exports.generateEnumsGraphql = generateEnumsGraphql;
28
+
29
+ //# sourceMappingURL=generateEnumsGraphql.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumsGraphql.cjs","names":["isJsonbColumn","camelCase","mapTypescriptTypeToGraphQLType","formatGraphQL"],"sources":["../src/generateEnumsGraphql.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type EnumMetadata } from \"joist-codegen\";\nimport { type CodegenFile } from \"ts-poet\";\n\nimport {\n type SupportedTypescriptTypes,\n formatGraphQL,\n isJsonbColumn,\n mapTypescriptTypeToGraphQLType,\n} from \"./graphqlUtils.ts\";\n\n/** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */\nexport async function generateEnumsGraphql(enums: EnumMetadata): Promise<CodegenFile> {\n const contents = Object.values(enums)\n .map(({ name, rows, extraPrimitives }) => {\n const enumDecl = `enum ${name} { ${rows.map((r) => r.code).join(\" \")} }`;\n const detailDecl = `type ${name}Detail { code: ${name}! name: String! ${extraPrimitives\n // Not supporting jsonb columns in GraphQL enums for now...would be doable if we\n // add a jsonb type --> GQL type mapping, or maybe even created that GQL type ourselves\n // from a superstruct definition of the type.\n .filter((p) => !isJsonbColumn(p))\n .map(\n (p) =>\n `${camelCase(p.columnName)}: ${mapTypescriptTypeToGraphQLType(\n p.fieldName,\n p.fieldType as SupportedTypescriptTypes,\n )}!`,\n )\n .join(\" \")} }`;\n return [enumDecl, \"\", detailDecl, \"\"];\n })\n .flat();\n\n const allEnumDetails =\n Object.values(enums).length > 0\n ? `type AllEnumDetails {\n ${Object.values(enums)\n .map(({ name }) => `${camelCase(name)}: [${name}Detail!]!`)\n .join(\"\\n\")} \n }`\n : \"\";\n\n const formatted = await formatGraphQL([...contents, allEnumDetails].join(\"\\n\"));\n\n return { name: \"../../schema/enums.graphql\", overwrite: true, contents: formatted };\n}\n"],"mappings":";;;;;;;AAYA,eAAsB,qBAAqB,OAA2C;CACpF,MAAM,WAAW,OAAO,OAAO,KAAK,CAAC,CAClC,KAAK,EAAE,MAAM,MAAM,sBAAsB;EAexC,OAAO;GAAC,QAdiB,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE;GAcnD;GAAI,QAbK,KAAK,iBAAiB,KAAK,kBAAkB,gBAIrE,QAAQ,MAAM,CAACA,qBAAAA,cAAc,CAAC,CAAC,CAAC,CAChC,KACE,MACC,IAAA,GAAGC,YAAAA,UAAAA,CAAU,EAAE,UAAU,EAAE,IAAIC,qBAAAA,+BAC7B,EAAE,WACF,EAAE,SACJ,EAAE,EACN,CAAC,CACA,KAAK,GAAG,EAAE;GACqB;EAAE;CACtC,CAAC,CAAC,CACD,KAAK;CAER,MAAM,iBACJ,OAAO,OAAO,KAAK,CAAC,CAAC,SAAS,IAC1B;QACA,OAAO,OAAO,KAAK,CAAC,CACnB,KAAK,EAAE,WAAW,IAAA,GAAGD,YAAAA,UAAAA,CAAU,IAAI,EAAE,KAAK,KAAK,UAAU,CAAC,CAC1D,KAAK,IAAI,EAAE;SAEZ;CAIN,OAAO;EAAE,MAAM;EAA8B,WAAW;EAAM,UAAU,MAFhDE,qBAAAA,cAAc,CAAC,GAAG,UAAU,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC;CAEI;AACpF"}
@@ -0,0 +1,8 @@
1
+ import { EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateEnumsGraphql.d.ts
4
+ /** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */
5
+ declare function generateEnumsGraphql(enums: EnumMetadata): Promise<CodegenFile>;
6
+ //#endregion
7
+ export { generateEnumsGraphql };
8
+ //# sourceMappingURL=generateEnumsGraphql.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumsGraphql.d.cts","names":[],"sources":["../src/generateEnumsGraphql.ts"],"mappings":";;;;iBAYsB,qBAAqB,OAAO,eAAe,QAAQ"}
@@ -0,0 +1,8 @@
1
+ import { EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateEnumsGraphql.d.ts
4
+ /** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */
5
+ declare function generateEnumsGraphql(enums: EnumMetadata): Promise<CodegenFile>;
6
+ //#endregion
7
+ export { generateEnumsGraphql };
8
+ //# sourceMappingURL=generateEnumsGraphql.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEnumsGraphql.d.mts","names":[],"sources":["../src/generateEnumsGraphql.ts"],"mappings":";;;;iBAYsB,qBAAqB,OAAO,eAAe,QAAQ"}
@@ -1,31 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateEnumsGraphql = generateEnumsGraphql;
4
- const change_case_1 = require("change-case");
5
- const graphqlUtils_1 = require("./graphqlUtils");
1
+ import { formatGraphQL, isJsonbColumn, mapTypescriptTypeToGraphQLType } from "./graphqlUtils.js";
2
+ import { camelCase } from "change-case";
3
+ import "joist-codegen";
4
+ import "ts-poet";
5
+ //#region src/generateEnumsGraphql.ts
6
6
  /** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */
7
7
  async function generateEnumsGraphql(enums) {
8
- const contents = Object.values(enums)
9
- .map(({ name, rows, extraPrimitives }) => {
10
- const enumDecl = `enum ${name} { ${rows.map((r) => r.code).join(" ")} }`;
11
- const detailDecl = `type ${name}Detail { code: ${name}! name: String! ${extraPrimitives
12
- // Not supporting jsonb columns in GraphQL enums for now...would be doable if we
13
- // add a jsonb type --> GQL type mapping, or maybe even created that GQL type ourselves
14
- // from a superstruct definition of the type.
15
- .filter((p) => !(0, graphqlUtils_1.isJsonbColumn)(p))
16
- .map((p) => `${(0, change_case_1.camelCase)(p.columnName)}: ${(0, graphqlUtils_1.mapTypescriptTypeToGraphQLType)(p.fieldName, p.fieldType)}!`)
17
- .join(" ")} }`;
18
- return [enumDecl, "", detailDecl, ""];
19
- })
20
- .flat();
21
- const allEnumDetails = Object.values(enums).length > 0
22
- ? `type AllEnumDetails {
23
- ${Object.values(enums)
24
- .map(({ name }) => `${(0, change_case_1.camelCase)(name)}: [${name}Detail!]!`)
25
- .join("\n")}
26
- }`
27
- : "";
28
- const formatted = await (0, graphqlUtils_1.formatGraphQL)([...contents, allEnumDetails].join("\n"));
29
- return { name: "../../schema/enums.graphql", overwrite: true, contents: formatted };
8
+ const contents = Object.values(enums).map(({ name, rows, extraPrimitives }) => {
9
+ return [
10
+ `enum ${name} { ${rows.map((r) => r.code).join(" ")} }`,
11
+ "",
12
+ `type ${name}Detail { code: ${name}! name: String! ${extraPrimitives.filter((p) => !isJsonbColumn(p)).map((p) => `${camelCase(p.columnName)}: ${mapTypescriptTypeToGraphQLType(p.fieldName, p.fieldType)}!`).join(" ")} }`,
13
+ ""
14
+ ];
15
+ }).flat();
16
+ const allEnumDetails = Object.values(enums).length > 0 ? `type AllEnumDetails {
17
+ ${Object.values(enums).map(({ name }) => `${camelCase(name)}: [${name}Detail!]!`).join("\n")}
18
+ }` : "";
19
+ return {
20
+ name: "../../schema/enums.graphql",
21
+ overwrite: true,
22
+ contents: await formatGraphQL([...contents, allEnumDetails].join("\n"))
23
+ };
30
24
  }
25
+ //#endregion
26
+ export { generateEnumsGraphql };
27
+
31
28
  //# sourceMappingURL=generateEnumsGraphql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateEnumsGraphql.js","sourceRoot":"","sources":["../src/generateEnumsGraphql.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAIxC,iDAAwH;AAExH,4FAA4F;AACrF,KAAK,+BAA+B,KAAmB;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,QAAQ,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACzE,MAAM,UAAU,GAAG,QAAQ,IAAI,kBAAkB,IAAI,mBAAmB,eAAe;YACrF,gFAAgF;YAChF,uFAAuF;YACvF,6CAA6C;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,4BAAa,EAAC,CAAC,CAAC,CAAC;aAChC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,IAAA,uBAAS,EAAC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAA,6CAA8B,EAC3D,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,SAAqC,CACxC,GAAG,CACP;aACA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,MAAM,cAAc,GAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC;QACA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;aACnB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;aAC1D,IAAI,CAAC,IAAI,CAAC;MACb;QACA,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAa,EAAC,CAAC,GAAG,QAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhF,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACtF,CAAC"}
1
+ {"version":3,"file":"generateEnumsGraphql.js","names":[],"sources":["../src/generateEnumsGraphql.ts"],"sourcesContent":["import { camelCase } from \"change-case\";\nimport { type EnumMetadata } from \"joist-codegen\";\nimport { type CodegenFile } from \"ts-poet\";\n\nimport {\n type SupportedTypescriptTypes,\n formatGraphQL,\n isJsonbColumn,\n mapTypescriptTypeToGraphQLType,\n} from \"./graphqlUtils.ts\";\n\n/** Generates a `schema/enums.graphql` with GQL enums that match all of our domain enums. */\nexport async function generateEnumsGraphql(enums: EnumMetadata): Promise<CodegenFile> {\n const contents = Object.values(enums)\n .map(({ name, rows, extraPrimitives }) => {\n const enumDecl = `enum ${name} { ${rows.map((r) => r.code).join(\" \")} }`;\n const detailDecl = `type ${name}Detail { code: ${name}! name: String! ${extraPrimitives\n // Not supporting jsonb columns in GraphQL enums for now...would be doable if we\n // add a jsonb type --> GQL type mapping, or maybe even created that GQL type ourselves\n // from a superstruct definition of the type.\n .filter((p) => !isJsonbColumn(p))\n .map(\n (p) =>\n `${camelCase(p.columnName)}: ${mapTypescriptTypeToGraphQLType(\n p.fieldName,\n p.fieldType as SupportedTypescriptTypes,\n )}!`,\n )\n .join(\" \")} }`;\n return [enumDecl, \"\", detailDecl, \"\"];\n })\n .flat();\n\n const allEnumDetails =\n Object.values(enums).length > 0\n ? `type AllEnumDetails {\n ${Object.values(enums)\n .map(({ name }) => `${camelCase(name)}: [${name}Detail!]!`)\n .join(\"\\n\")} \n }`\n : \"\";\n\n const formatted = await formatGraphQL([...contents, allEnumDetails].join(\"\\n\"));\n\n return { name: \"../../schema/enums.graphql\", overwrite: true, contents: formatted };\n}\n"],"mappings":";;;;;;AAYA,eAAsB,qBAAqB,OAA2C;CACpF,MAAM,WAAW,OAAO,OAAO,KAAK,CAAC,CAClC,KAAK,EAAE,MAAM,MAAM,sBAAsB;EAexC,OAAO;GAAC,QAdiB,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE;GAcnD;GAAI,QAbK,KAAK,iBAAiB,KAAK,kBAAkB,gBAIrE,QAAQ,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAChC,KACE,MACC,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,+BAC7B,EAAE,WACF,EAAE,SACJ,EAAE,EACN,CAAC,CACA,KAAK,GAAG,EAAE;GACqB;EAAE;CACtC,CAAC,CAAC,CACD,KAAK;CAER,MAAM,iBACJ,OAAO,OAAO,KAAK,CAAC,CAAC,SAAS,IAC1B;QACA,OAAO,OAAO,KAAK,CAAC,CACnB,KAAK,EAAE,WAAW,GAAG,UAAU,IAAI,EAAE,KAAK,KAAK,UAAU,CAAC,CAC1D,KAAK,IAAI,EAAE;SAEZ;CAIN,OAAO;EAAE,MAAM;EAA8B,WAAW;EAAM,UAAU,MAFhD,cAAc,CAAC,GAAG,UAAU,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC;CAEI;AACpF"}
@@ -0,0 +1,54 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils = require("./utils.cjs");
3
+ require("joist-codegen");
4
+ let ts_poet = require("ts-poet");
5
+ //#region src/generateGraphqlCodegen.ts
6
+ /** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */
7
+ function generateGraphqlCodegen(config, entities, enums) {
8
+ const enumNames = Object.values(enums).map(({ name }) => name);
9
+ const pgEnumNames = Array.from(new Set(entities.flatMap(({ pgEnums }) => pgEnums.map(({ enumName }) => enumName))));
10
+ const entitiesMapperImportPath = require_utils.getEntitiesImportPath(config).replace(/\.ts$/, "");
11
+ const pageInfoMapperPath = config.esm ? "joist-graphql-resolver-utils/index" : "joist-graphql-resolver-utils";
12
+ const pageInfoMapper = (config.paginationStyle ?? "cursor") === "limit" ? `${pageInfoMapperPath}#LimitPageInfo` : `${pageInfoMapperPath}#CursorPageInfo`;
13
+ const mappedTypes = sortObject(Object.fromEntries([
14
+ ...entities.map(({ entity }) => [entity.name, `${entitiesMapperImportPath}#${entity.name}`]),
15
+ ...enumNames.map((name) => [`${name}Detail`, `${entitiesMapperImportPath}#${name}`]),
16
+ ["PageInfo", pageInfoMapper]
17
+ ]));
18
+ const contents = config.esm ? ts_poet.code`
19
+ export const mappers = {
20
+ ${Object.entries(mappedTypes).map(([key, value]) => `${key}: "${value}",`)}
21
+ };
22
+
23
+ export const enumValues = {
24
+ ${enumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
25
+ ${pgEnumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
26
+ };
27
+ ` : ts_poet.code`
28
+ const mappers = {
29
+ ${Object.entries(mappedTypes).map(([key, value]) => `${key}: "${value}",`)}
30
+ };
31
+
32
+ const enumValues = {
33
+ ${enumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
34
+ ${pgEnumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
35
+ };
36
+
37
+ module.exports = { mappers, enumValues };
38
+ `;
39
+ return {
40
+ name: `../../graphql-codegen-joist.${config.esm ? "mjs" : "js"}`,
41
+ overwrite: true,
42
+ contents
43
+ };
44
+ }
45
+ function sortObject(obj) {
46
+ return Object.keys(obj).sort().reduce((acc, key) => {
47
+ acc[key] = obj[key];
48
+ return acc;
49
+ }, {});
50
+ }
51
+ //#endregion
52
+ exports.generateGraphqlCodegen = generateGraphqlCodegen;
53
+
54
+ //# sourceMappingURL=generateGraphqlCodegen.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateGraphqlCodegen.cjs","names":["getEntitiesImportPath"],"sources":["../src/generateGraphqlCodegen.ts"],"sourcesContent":["import { type Config, type EntityDbMetadata, type EnumMetadata } from \"joist-codegen\";\nimport { type CodegenFile, code } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\n/** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */\nexport function generateGraphqlCodegen(config: Config, entities: EntityDbMetadata[], enums: EnumMetadata): CodegenFile {\n const enumNames = Object.values(enums).map(({ name }) => name);\n const pgEnumNames = Array.from(new Set(entities.flatMap(({ pgEnums }) => pgEnums.map(({ enumName }) => enumName))));\n\n // Combine the entity mapped types and enum detail mapped types\n const entitiesMapperImportPath = getEntitiesImportPath(config).replace(/\\.ts$/, \"\"); // Keep compatibility with the expected mapper format (no file extension)\n const pageInfoMapperPath = config.esm ? \"joist-graphql-resolver-utils/index\" : \"joist-graphql-resolver-utils\";\n const pageInfoMapper =\n (config.paginationStyle ?? \"cursor\") === \"limit\"\n ? `${pageInfoMapperPath}#LimitPageInfo`\n : `${pageInfoMapperPath}#CursorPageInfo`;\n const mappedTypes = sortObject(\n Object.fromEntries([\n ...entities.map(({ entity }) => [entity.name, `${entitiesMapperImportPath}#${entity.name}`]),\n ...enumNames.map((name) => [`${name}Detail`, `${entitiesMapperImportPath}#${name}`]),\n [\"PageInfo\", pageInfoMapper],\n ]),\n );\n\n const contents = config.esm\n ? code`\n export const mappers = {\n ${Object.entries(mappedTypes).map(([key, value]) => `${key}: \"${value}\",`)}\n };\n\n export const enumValues = {\n ${enumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n ${pgEnumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n };\n `\n : code`\n const mappers = {\n ${Object.entries(mappedTypes).map(([key, value]) => `${key}: \"${value}\",`)}\n };\n\n const enumValues = {\n ${enumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n ${pgEnumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n };\n\n module.exports = { mappers, enumValues };\n `;\n\n const ext = config.esm ? \"mjs\" : \"js\";\n return { name: `../../graphql-codegen-joist.${ext}`, overwrite: true, contents };\n}\n\nfunction sortObject<T extends object>(obj: T): T {\n return Object.keys(obj)\n .sort()\n .reduce(\n (acc, key) => {\n acc[key as keyof T] = obj[key as keyof T];\n return acc;\n },\n {} as any as T,\n ) as T;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,uBAAuB,QAAgB,UAA8B,OAAkC;CACrH,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI;CAC7D,MAAM,cAAc,MAAM,KAAK,IAAI,IAAI,SAAS,SAAS,EAAE,cAAc,QAAQ,KAAK,EAAE,eAAe,QAAQ,CAAC,CAAC,CAAC;CAGlH,MAAM,2BAA2BA,cAAAA,sBAAsB,MAAM,CAAC,CAAC,QAAQ,SAAS,EAAE;CAClF,MAAM,qBAAqB,OAAO,MAAM,uCAAuC;CAC/E,MAAM,kBACH,OAAO,mBAAmB,cAAc,UACrC,GAAG,mBAAmB,kBACtB,GAAG,mBAAmB;CAC5B,MAAM,cAAc,WAClB,OAAO,YAAY;EACjB,GAAG,SAAS,KAAK,EAAE,aAAa,CAAC,OAAO,MAAM,GAAG,yBAAyB,GAAG,OAAO,MAAM,CAAC;EAC3F,GAAG,UAAU,KAAK,SAAS,CAAC,GAAG,KAAK,SAAS,GAAG,yBAAyB,GAAG,MAAM,CAAC;EACnF,CAAC,YAAY,cAAc;CAC7B,CAAC,CACH;CAEA,MAAM,WAAW,OAAO,MACpB,QAAA,IAAI;;YAEE,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE;;;;YAIzE,UAAU,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;YAC3E,YAAY,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;;UAGnF,QAAA,IAAI;;YAEE,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE;;;;YAIzE,UAAU,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;YAC3E,YAAY,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;;;;;CAOvF,OAAO;EAAE,MAAM,+BADH,OAAO,MAAM,QAAQ;EACoB,WAAW;EAAM;CAAS;AACjF;AAEA,SAAS,WAA6B,KAAW;CAC/C,OAAO,OAAO,KAAK,GAAG,CAAC,CACpB,KAAK,CAAC,CACN,QACE,KAAK,QAAQ;EACZ,IAAI,OAAkB,IAAI;EAC1B,OAAO;CACT,GACA,CAAC,CACH;AACJ"}
@@ -0,0 +1,8 @@
1
+ import { Config, EntityDbMetadata, EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateGraphqlCodegen.d.ts
4
+ /** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */
5
+ declare function generateGraphqlCodegen(config: Config, entities: EntityDbMetadata[], enums: EnumMetadata): CodegenFile;
6
+ //#endregion
7
+ export { generateGraphqlCodegen };
8
+ //# sourceMappingURL=generateGraphqlCodegen.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateGraphqlCodegen.d.cts","names":[],"sources":["../src/generateGraphqlCodegen.ts"],"mappings":";;;;iBAMgB,uBAAuB,QAAQ,QAAQ,UAAU,oBAAoB,OAAO,eAAe"}
@@ -0,0 +1,8 @@
1
+ import { Config, EntityDbMetadata, EnumMetadata } from "joist-codegen";
2
+ import { CodegenFile } from "ts-poet";
3
+ //#region src/generateGraphqlCodegen.d.ts
4
+ /** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */
5
+ declare function generateGraphqlCodegen(config: Config, entities: EntityDbMetadata[], enums: EnumMetadata): CodegenFile;
6
+ //#endregion
7
+ export { generateGraphqlCodegen };
8
+ //# sourceMappingURL=generateGraphqlCodegen.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateGraphqlCodegen.d.mts","names":[],"sources":["../src/generateGraphqlCodegen.ts"],"mappings":";;;;iBAMgB,uBAAuB,QAAQ,QAAQ,UAAU,oBAAoB,OAAO,eAAe"}
@@ -1,25 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateGraphqlCodegen = generateGraphqlCodegen;
4
- const ts_poet_1 = require("ts-poet");
5
- const utils_1 = require("./utils");
1
+ import { getEntitiesImportPath } from "./utils.js";
2
+ import "joist-codegen";
3
+ import { code } from "ts-poet";
4
+ //#region src/generateGraphqlCodegen.ts
6
5
  /** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */
7
6
  function generateGraphqlCodegen(config, entities, enums) {
8
- const enumNames = Object.values(enums).map(({ name }) => name);
9
- const pgEnumNames = Array.from(new Set(entities.flatMap(({ pgEnums }) => pgEnums.map(({ enumName }) => enumName))));
10
- // Combine the entity mapped types and enum detail mapped types
11
- const entitiesMapperImportPath = (0, utils_1.getEntitiesImportPath)(config).replace(/\.ts$/, ""); // Keep compatibility with the expected mapper format (no file extension)
12
- const pageInfoMapperPath = config.esm ? "joist-graphql-resolver-utils/index" : "joist-graphql-resolver-utils";
13
- const pageInfoMapper = (config.paginationStyle ?? "cursor") === "limit"
14
- ? `${pageInfoMapperPath}#LimitPageInfo`
15
- : `${pageInfoMapperPath}#CursorPageInfo`;
16
- const mappedTypes = sortObject(Object.fromEntries([
17
- ...entities.map(({ entity }) => [entity.name, `${entitiesMapperImportPath}#${entity.name}`]),
18
- ...enumNames.map((name) => [`${name}Detail`, `${entitiesMapperImportPath}#${name}`]),
19
- ["PageInfo", pageInfoMapper],
20
- ]));
21
- const contents = config.esm
22
- ? (0, ts_poet_1.code) `
7
+ const enumNames = Object.values(enums).map(({ name }) => name);
8
+ const pgEnumNames = Array.from(new Set(entities.flatMap(({ pgEnums }) => pgEnums.map(({ enumName }) => enumName))));
9
+ const entitiesMapperImportPath = getEntitiesImportPath(config).replace(/\.ts$/, "");
10
+ const pageInfoMapperPath = config.esm ? "joist-graphql-resolver-utils/index" : "joist-graphql-resolver-utils";
11
+ const pageInfoMapper = (config.paginationStyle ?? "cursor") === "limit" ? `${pageInfoMapperPath}#LimitPageInfo` : `${pageInfoMapperPath}#CursorPageInfo`;
12
+ const mappedTypes = sortObject(Object.fromEntries([
13
+ ...entities.map(({ entity }) => [entity.name, `${entitiesMapperImportPath}#${entity.name}`]),
14
+ ...enumNames.map((name) => [`${name}Detail`, `${entitiesMapperImportPath}#${name}`]),
15
+ ["PageInfo", pageInfoMapper]
16
+ ]));
17
+ const contents = config.esm ? code`
23
18
  export const mappers = {
24
19
  ${Object.entries(mappedTypes).map(([key, value]) => `${key}: "${value}",`)}
25
20
  };
@@ -28,8 +23,7 @@ function generateGraphqlCodegen(config, entities, enums) {
28
23
  ${enumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
29
24
  ${pgEnumNames.map((name) => `${name}: "${entitiesMapperImportPath}#${name}",`)}
30
25
  };
31
- `
32
- : (0, ts_poet_1.code) `
26
+ ` : code`
33
27
  const mappers = {
34
28
  ${Object.entries(mappedTypes).map(([key, value]) => `${key}: "${value}",`)}
35
29
  };
@@ -41,15 +35,19 @@ function generateGraphqlCodegen(config, entities, enums) {
41
35
 
42
36
  module.exports = { mappers, enumValues };
43
37
  `;
44
- const ext = config.esm ? "mjs" : "js";
45
- return { name: `../../graphql-codegen-joist.${ext}`, overwrite: true, contents };
38
+ return {
39
+ name: `../../graphql-codegen-joist.${config.esm ? "mjs" : "js"}`,
40
+ overwrite: true,
41
+ contents
42
+ };
46
43
  }
47
44
  function sortObject(obj) {
48
- return Object.keys(obj)
49
- .sort()
50
- .reduce((acc, key) => {
51
- acc[key] = obj[key];
52
- return acc;
53
- }, {});
45
+ return Object.keys(obj).sort().reduce((acc, key) => {
46
+ acc[key] = obj[key];
47
+ return acc;
48
+ }, {});
54
49
  }
50
+ //#endregion
51
+ export { generateGraphqlCodegen };
52
+
55
53
  //# sourceMappingURL=generateGraphqlCodegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateGraphqlCodegen.js","sourceRoot":"","sources":["../src/generateGraphqlCodegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateGraphqlCodegen.js","names":[],"sources":["../src/generateGraphqlCodegen.ts"],"sourcesContent":["import { type Config, type EntityDbMetadata, type EnumMetadata } from \"joist-codegen\";\nimport { type CodegenFile, code } from \"ts-poet\";\n\nimport { getEntitiesImportPath } from \"./utils.ts\";\n\n/** Generates a `graphql-codegen-joist.js` (or .mjs for ESM) with the auto-generated mapped type/enum value settings. */\nexport function generateGraphqlCodegen(config: Config, entities: EntityDbMetadata[], enums: EnumMetadata): CodegenFile {\n const enumNames = Object.values(enums).map(({ name }) => name);\n const pgEnumNames = Array.from(new Set(entities.flatMap(({ pgEnums }) => pgEnums.map(({ enumName }) => enumName))));\n\n // Combine the entity mapped types and enum detail mapped types\n const entitiesMapperImportPath = getEntitiesImportPath(config).replace(/\\.ts$/, \"\"); // Keep compatibility with the expected mapper format (no file extension)\n const pageInfoMapperPath = config.esm ? \"joist-graphql-resolver-utils/index\" : \"joist-graphql-resolver-utils\";\n const pageInfoMapper =\n (config.paginationStyle ?? \"cursor\") === \"limit\"\n ? `${pageInfoMapperPath}#LimitPageInfo`\n : `${pageInfoMapperPath}#CursorPageInfo`;\n const mappedTypes = sortObject(\n Object.fromEntries([\n ...entities.map(({ entity }) => [entity.name, `${entitiesMapperImportPath}#${entity.name}`]),\n ...enumNames.map((name) => [`${name}Detail`, `${entitiesMapperImportPath}#${name}`]),\n [\"PageInfo\", pageInfoMapper],\n ]),\n );\n\n const contents = config.esm\n ? code`\n export const mappers = {\n ${Object.entries(mappedTypes).map(([key, value]) => `${key}: \"${value}\",`)}\n };\n\n export const enumValues = {\n ${enumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n ${pgEnumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n };\n `\n : code`\n const mappers = {\n ${Object.entries(mappedTypes).map(([key, value]) => `${key}: \"${value}\",`)}\n };\n\n const enumValues = {\n ${enumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n ${pgEnumNames.map((name) => `${name}: \"${entitiesMapperImportPath}#${name}\",`)}\n };\n\n module.exports = { mappers, enumValues };\n `;\n\n const ext = config.esm ? \"mjs\" : \"js\";\n return { name: `../../graphql-codegen-joist.${ext}`, overwrite: true, contents };\n}\n\nfunction sortObject<T extends object>(obj: T): T {\n return Object.keys(obj)\n .sort()\n .reduce(\n (acc, key) => {\n acc[key as keyof T] = obj[key as keyof T];\n return acc;\n },\n {} as any as T,\n ) as T;\n}\n"],"mappings":";;;;;AAMA,SAAgB,uBAAuB,QAAgB,UAA8B,OAAkC;CACrH,MAAM,YAAY,OAAO,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI;CAC7D,MAAM,cAAc,MAAM,KAAK,IAAI,IAAI,SAAS,SAAS,EAAE,cAAc,QAAQ,KAAK,EAAE,eAAe,QAAQ,CAAC,CAAC,CAAC;CAGlH,MAAM,2BAA2B,sBAAsB,MAAM,CAAC,CAAC,QAAQ,SAAS,EAAE;CAClF,MAAM,qBAAqB,OAAO,MAAM,uCAAuC;CAC/E,MAAM,kBACH,OAAO,mBAAmB,cAAc,UACrC,GAAG,mBAAmB,kBACtB,GAAG,mBAAmB;CAC5B,MAAM,cAAc,WAClB,OAAO,YAAY;EACjB,GAAG,SAAS,KAAK,EAAE,aAAa,CAAC,OAAO,MAAM,GAAG,yBAAyB,GAAG,OAAO,MAAM,CAAC;EAC3F,GAAG,UAAU,KAAK,SAAS,CAAC,GAAG,KAAK,SAAS,GAAG,yBAAyB,GAAG,MAAM,CAAC;EACnF,CAAC,YAAY,cAAc;CAC7B,CAAC,CACH;CAEA,MAAM,WAAW,OAAO,MACpB,IAAI;;YAEE,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE;;;;YAIzE,UAAU,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;YAC3E,YAAY,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;;UAGnF,IAAI;;YAEE,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE;;;;YAIzE,UAAU,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;YAC3E,YAAY,KAAK,SAAS,GAAG,KAAK,KAAK,yBAAyB,GAAG,KAAK,GAAG,EAAE;;;;;CAOvF,OAAO;EAAE,MAAM,+BADH,OAAO,MAAM,QAAQ;EACoB,WAAW;EAAM;CAAS;AACjF;AAEA,SAAS,WAA6B,KAAW;CAC/C,OAAO,OAAO,KAAK,GAAG,CAAC,CACpB,KAAK,CAAC,CACN,QACE,KAAK,QAAQ;EACZ,IAAI,OAAkB,IAAI;EAC1B,OAAO;CACT,GACA,CAAC,CACH;AACJ"}