@powerhousedao/codegen 0.5.0 → 0.7.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 (48) hide show
  1. package/dist/cli.d.ts +0 -1
  2. package/dist/cli.js +45 -35
  3. package/dist/cli.js.map +1 -0
  4. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +64 -53
  5. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +1 -0
  6. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +31 -24
  7. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +1 -0
  8. package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.js +16 -14
  9. package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +1 -0
  10. package/dist/codegen/graphql.js +90 -82
  11. package/dist/codegen/graphql.js.map +1 -0
  12. package/dist/codegen/hygen.js +100 -86
  13. package/dist/codegen/hygen.js.map +1 -0
  14. package/dist/codegen/index.js +89 -77
  15. package/dist/codegen/index.js.map +1 -0
  16. package/dist/codegen/utils.js +30 -33
  17. package/dist/codegen/utils.js.map +1 -0
  18. package/dist/create-lib/command.js +17 -25
  19. package/dist/create-lib/command.js.map +1 -0
  20. package/dist/create-lib/index.js +8 -120
  21. package/dist/create-lib/index.js.map +1 -0
  22. package/dist/create-lib/init.js +136 -0
  23. package/dist/create-lib/init.js.map +1 -0
  24. package/dist/{create-lib/index.d.ts → create-lib.d.ts} +0 -1
  25. package/dist/graphql.d.ts +18 -0
  26. package/dist/hygen.d.ts +15 -0
  27. package/dist/index.d.ts +10 -2
  28. package/dist/index.js +21 -18
  29. package/dist/index.js.map +1 -0
  30. package/dist/utils/cli.js +80 -75
  31. package/dist/utils/cli.js.map +1 -0
  32. package/dist/utils/index.js +31 -18
  33. package/dist/utils/index.js.map +1 -0
  34. package/dist/utils/mock.js +8 -5
  35. package/dist/utils/mock.js.map +1 -0
  36. package/dist/utils.d.ts +37 -0
  37. package/package.json +11 -5
  38. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -27
  39. package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -23
  40. package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -19
  41. package/dist/codegen/graphql.d.ts +0 -8
  42. package/dist/codegen/hygen.d.ts +0 -12
  43. package/dist/codegen/index.d.ts +0 -5
  44. package/dist/codegen/utils.d.ts +0 -2
  45. package/dist/create-lib/command.d.ts +0 -4
  46. package/dist/utils/cli.d.ts +0 -24
  47. package/dist/utils/index.d.ts +0 -2
  48. package/dist/utils/mock.d.ts +0 -3
package/dist/cli.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  #! /usr/bin/env node
2
- export {};
package/dist/cli.js CHANGED
@@ -1,40 +1,50 @@
1
1
  #! /usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const index_1 = require("./codegen/index");
5
- const utils_1 = require("./utils");
6
- async function parseCommand(argv) {
7
- const args = (0, utils_1.parseArgs)(argv, {
8
- "--editor": String,
9
- "-e": "--editor",
10
- "--document-types": String,
11
- });
12
- const editorName = args["--editor"];
13
- return {
14
- editor: !!editorName,
15
- editorName,
16
- documentTypes: args["--document-types"],
17
- arg: args._,
18
- };
2
+ 'use strict';
3
+
4
+ var index = require('./codegen/index');
5
+ var utils = require('./utils');
6
+
7
+ function parseCommand(argv) {
8
+ const args = utils.parseArgs(argv, {
9
+ "--editor": String,
10
+ "-e": "--editor",
11
+ "--document-types": String
12
+ });
13
+ const editorName = args["--editor"];
14
+ return {
15
+ editor: !!editorName,
16
+ editorName,
17
+ documentTypes: args["--document-types"],
18
+ arg: args._
19
+ };
19
20
  }
20
21
  async function main() {
21
- const argv = process.argv.slice(2);
22
- const baseConfig = (0, utils_1.getConfig)();
23
- const argsConfig = (0, utils_1.parseConfig)(argv);
24
- const config = { ...baseConfig, ...argsConfig };
25
- if (config.interactive) {
26
- const result = await (0, utils_1.promptDirectories)(config);
27
- Object.assign(config, result);
28
- }
29
- const command = await parseCommand(argv);
30
- if (command.editor) {
31
- await (0, index_1.generateEditor)(command.editorName, command.documentTypes?.split(/[|,;]/g) ?? [], config);
32
- }
33
- else if (command.arg.length === 2) {
34
- await (0, index_1.generateFromFile)(command.arg[1], config);
35
- }
36
- else {
37
- await (0, index_1.generate)(config);
22
+ const argv = process.argv.slice(2);
23
+ const baseConfig = utils.getConfig();
24
+ const argsConfig = utils.parseConfig(argv);
25
+ const config = { ...baseConfig, ...argsConfig };
26
+ if (config.interactive) {
27
+ const result = await utils.promptDirectories(config);
28
+ Object.assign(config, result);
29
+ }
30
+ const command = parseCommand(argv);
31
+ if (command.editor) {
32
+ if (!command.editorName) {
33
+ throw new Error("Editor name is required (--editor or -e)");
38
34
  }
35
+ await index.generateEditor(
36
+ command.editorName,
37
+ command.documentTypes?.split(/[|,;]/g) ?? [],
38
+ config
39
+ );
40
+ } else if (command.arg.length === 2) {
41
+ await index.generateFromFile(command.arg[1], config);
42
+ } else {
43
+ await index.generate(config);
44
+ }
39
45
  }
40
- main();
46
+ main().catch((e) => {
47
+ throw e;
48
+ });
49
+ //# sourceMappingURL=cli.js.map
50
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["parseArgs","getConfig","parseConfig","promptDirectories","generateEditor","generateFromFile","generate"],"mappings":";;;;;;AAIA,SAAS,aAAa,IAAgB,EAAA;AACpC,EAAM,MAAA,IAAA,GAAOA,gBAAU,IAAM,EAAA;AAAA,IAC3B,UAAY,EAAA,MAAA;AAAA,IACZ,IAAM,EAAA,UAAA;AAAA,IACN,kBAAoB,EAAA,MAAA;AAAA,GACrB,CAAA,CAAA;AACD,EAAM,MAAA,UAAA,GAAa,KAAK,UAAU,CAAA,CAAA;AAClC,EAAO,OAAA;AAAA,IACL,MAAA,EAAQ,CAAC,CAAC,UAAA;AAAA,IACV,UAAA;AAAA,IACA,aAAA,EAAe,KAAK,kBAAkB,CAAA;AAAA,IACtC,KAAK,IAAK,CAAA,CAAA;AAAA,GACZ,CAAA;AACF,CAAA;AAEA,eAAe,IAAO,GAAA;AACpB,EAAA,MAAM,IAAO,GAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;AACjC,EAAA,MAAM,aAAaC,eAAU,EAAA,CAAA;AAC7B,EAAM,MAAA,UAAA,GAAaC,kBAAY,IAAI,CAAA,CAAA;AACnC,EAAA,MAAM,MAAS,GAAA,EAAE,GAAG,UAAA,EAAY,GAAG,UAAW,EAAA,CAAA;AAC9C,EAAA,IAAI,OAAO,WAAa,EAAA;AACtB,IAAM,MAAA,MAAA,GAAS,MAAMC,uBAAA,CAAkB,MAAM,CAAA,CAAA;AAC7C,IAAO,MAAA,CAAA,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,GAC9B;AAEA,EAAM,MAAA,OAAA,GAAU,aAAa,IAAI,CAAA,CAAA;AACjC,EAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,IAAI,IAAA,CAAC,QAAQ,UAAY,EAAA;AACvB,MAAM,MAAA,IAAI,MAAM,0CAA0C,CAAA,CAAA;AAAA,KAC5D;AACA,IAAM,MAAAC,oBAAA;AAAA,MACJ,OAAQ,CAAA,UAAA;AAAA,MACR,OAAQ,CAAA,aAAA,EAAe,KAAM,CAAA,QAAQ,KAAK,EAAC;AAAA,MAC3C,MAAA;AAAA,KACF,CAAA;AAAA,GACS,MAAA,IAAA,OAAA,CAAQ,GAAI,CAAA,MAAA,KAAW,CAAG,EAAA;AACnC,IAAA,MAAMC,sBAAiB,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,GAAG,MAAM,CAAA,CAAA;AAAA,GACxC,MAAA;AACL,IAAA,MAAMC,eAAS,MAAM,CAAA,CAAA;AAAA,GACvB;AACF,CAAA;AAEA,IAAK,EAAA,CAAE,KAAM,CAAA,CAAC,CAAe,KAAA;AAC3B,EAAM,MAAA,CAAA,CAAA;AACR,CAAC,CAAA","file":"cli.js","sourcesContent":["#! /usr/bin/env node\nimport { generate, generateEditor, generateFromFile } from \"./codegen/index\";\nimport { parseArgs, getConfig, promptDirectories, parseConfig } from \"./utils\";\n\nfunction parseCommand(argv: string[]) {\n const args = parseArgs(argv, {\n \"--editor\": String,\n \"-e\": \"--editor\",\n \"--document-types\": String,\n });\n const editorName = args[\"--editor\"];\n return {\n editor: !!editorName,\n editorName,\n documentTypes: args[\"--document-types\"],\n arg: args._,\n };\n}\n\nasync function main() {\n const argv = process.argv.slice(2);\n const baseConfig = getConfig();\n const argsConfig = parseConfig(argv);\n const config = { ...baseConfig, ...argsConfig };\n if (config.interactive) {\n const result = await promptDirectories(config);\n Object.assign(config, result);\n }\n\n const command = parseCommand(argv);\n if (command.editor) {\n if (!command.editorName) {\n throw new Error(\"Editor name is required (--editor or -e)\");\n }\n await generateEditor(\n command.editorName,\n command.documentTypes?.split(/[|,;]/g) ?? [],\n config,\n );\n } else if (command.arg.length === 2) {\n await generateFromFile(command.arg[1], config);\n } else {\n await generate(config);\n }\n}\n\nmain().catch((e: unknown) => {\n throw e;\n});\n"]}
@@ -1,62 +1,73 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
1
+ 'use strict';
2
+
3
+ var changeCase = require('change-case');
4
+
4
5
  function documentModelToString(documentModel) {
5
- return JSON.stringify({
6
- ...documentModel,
7
- specifications: documentModel.specifications.map((s) => ({
8
- ...s,
9
- state: Object.keys(s.state).reduce((values, scope) => {
10
- const state = s.state[scope];
11
- return {
12
- ...values,
13
- [scope]: {
14
- ...state,
15
- // initial value has to be stringified twice
16
- // as it is expected to be a string
17
- initialValue: JSON.stringify(state.initialValue),
18
- },
19
- };
20
- }, {}),
21
- })),
22
- }, null, 4);
23
- }
24
- exports.default = {
25
- params: ({ args }) => {
26
- const documentModel = JSON.parse(args.documentModel);
27
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
28
- return {
29
- rootDir: args.rootDir,
30
- documentModel: documentModelToString(documentModel),
31
- documentTypeId: documentModel.id,
32
- documentType: documentModel.name,
33
- extension: documentModel.extension,
34
- modules: latestSpec.modules.map((m) => ({
35
- ...m,
36
- name: (0, change_case_1.paramCase)(m.name),
37
- })),
38
- fileExtension: documentModel.extension,
39
- hasLocalSchema: latestSpec.state.local.schema !== "",
40
- ...getInitialStates(latestSpec.state),
41
- };
6
+ return JSON.stringify(
7
+ {
8
+ ...documentModel,
9
+ specifications: documentModel.specifications.map((s) => ({
10
+ ...s,
11
+ state: Object.keys(s.state).reduce((values, scope) => {
12
+ const state = s.state[scope];
13
+ return {
14
+ ...values,
15
+ [scope]: {
16
+ ...state,
17
+ // initial value has to be stringified twice
18
+ // as it is expected to be a string
19
+ initialValue: JSON.stringify(state.initialValue)
20
+ }
21
+ };
22
+ }, {})
23
+ }))
42
24
  },
43
- };
44
- function getInitialStates(scopeState) {
45
- const { global, local } = scopeState;
46
- const scopes = { global, local };
47
- Object.entries(scopes).forEach(([scope, state]) => {
48
- if (!isEmptyStateSchema(state.schema) && state.initialValue === "") {
49
- throw new Error(`${scope.charAt(0).toLocaleUpperCase() + scope.slice(1)} scope has a defined schema but is missing an initial value.`);
50
- }
51
- });
25
+ null,
26
+ 4
27
+ );
28
+ }
29
+ var generate_document_model_default = {
30
+ params: ({ args }) => {
31
+ const documentModel = JSON.parse(args.documentModel);
32
+ const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
52
33
  return {
53
- initialGlobalState: handleEmptyState(global.initialValue),
54
- initialLocalState: handleEmptyState(local.initialValue),
34
+ rootDir: args.rootDir,
35
+ documentModel: documentModelToString(documentModel),
36
+ documentTypeId: documentModel.id,
37
+ documentType: documentModel.name,
38
+ extension: documentModel.extension,
39
+ modules: latestSpec.modules.map((m) => ({
40
+ ...m,
41
+ name: changeCase.paramCase(m.name)
42
+ })),
43
+ fileExtension: documentModel.extension,
44
+ hasLocalSchema: latestSpec.state.local.schema !== "",
45
+ ...getInitialStates(latestSpec.state)
55
46
  };
47
+ }
48
+ };
49
+ function getInitialStates(scopeState) {
50
+ const { global, local } = scopeState;
51
+ const scopes = { global, local };
52
+ Object.entries(scopes).forEach(([scope, state]) => {
53
+ if (!isEmptyStateSchema(state.schema) && state.initialValue === "") {
54
+ throw new Error(
55
+ `${scope.charAt(0).toLocaleUpperCase() + scope.slice(1)} scope has a defined schema but is missing an initial value.`
56
+ );
57
+ }
58
+ });
59
+ return {
60
+ initialGlobalState: handleEmptyState(global.initialValue),
61
+ initialLocalState: handleEmptyState(local.initialValue)
62
+ };
56
63
  }
57
64
  function isEmptyStateSchema(schema) {
58
- return schema === "" || !schema.includes("{");
65
+ return schema === "" || !schema.includes("{");
59
66
  }
60
67
  function handleEmptyState(state) {
61
- return state === "" ? "{}" : state;
68
+ return state === "" ? "{}" : state;
62
69
  }
70
+
71
+ module.exports = generate_document_model_default;
72
+ //# sourceMappingURL=index.js.map
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/codegen/.hygen/templates/powerhouse/generate-document-model/index.ts"],"names":["paramCase"],"mappings":"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","file":"index.js","sourcesContent":["import { paramCase } from \"change-case\";\nimport { DocumentModelState, ScopeState } from \"document-model/document-model\";\n\nfunction documentModelToString(documentModel: DocumentModelState) {\n return JSON.stringify(\n {\n ...documentModel,\n specifications: documentModel.specifications.map((s) => ({\n ...s,\n state: Object.keys(s.state).reduce((values, scope) => {\n const state = s.state[scope as keyof typeof s.state];\n return {\n ...values,\n [scope]: {\n ...state,\n // initial value has to be stringified twice\n // as it is expected to be a string\n initialValue: JSON.stringify(state.initialValue),\n },\n };\n }, {}),\n })),\n },\n null,\n 4,\n );\n}\n\nexport type Args = {\n documentModel: string;\n rootDir: string;\n};\n\nexport default {\n params: ({ args }: { args: Args }) => {\n const documentModel = JSON.parse(args.documentModel) as DocumentModelState;\n const latestSpec =\n documentModel.specifications[documentModel.specifications.length - 1];\n\n return {\n rootDir: args.rootDir,\n documentModel: documentModelToString(documentModel),\n documentTypeId: documentModel.id,\n documentType: documentModel.name,\n extension: documentModel.extension,\n modules: latestSpec.modules.map((m) => ({\n ...m,\n name: paramCase(m.name),\n })),\n fileExtension: documentModel.extension,\n hasLocalSchema: latestSpec.state.local.schema !== \"\",\n ...getInitialStates(latestSpec.state),\n };\n },\n};\n\nfunction getInitialStates(scopeState: ScopeState) {\n const { global, local } = scopeState;\n const scopes = { global, local };\n\n Object.entries(scopes).forEach(([scope, state]) => {\n if (!isEmptyStateSchema(state.schema) && state.initialValue === \"\") {\n throw new Error(\n `${\n scope.charAt(0).toLocaleUpperCase() + scope.slice(1)\n } scope has a defined schema but is missing an initial value.`,\n );\n }\n });\n\n return {\n initialGlobalState: handleEmptyState(global.initialValue),\n initialLocalState: handleEmptyState(local.initialValue),\n };\n}\n\nfunction isEmptyStateSchema(schema: string) {\n return schema === \"\" || !schema.includes(\"{\");\n}\n\nfunction handleEmptyState(state: string) {\n return state === \"\" ? \"{}\" : state;\n}\n"]}
@@ -1,25 +1,32 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
4
- exports.default = {
5
- params: ({ args }) => {
6
- const documentModel = JSON.parse(args.documentModel);
7
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
8
- const filteredModules = latestSpec.modules.filter((m) => m.name === args.module);
9
- const actions = filteredModules.length > 0
10
- ? filteredModules[0].operations.map((a) => ({
11
- name: a.name,
12
- hasInput: a.schema !== null,
13
- hasAttachment: a.schema?.includes(": Attachment"),
14
- scope: a.scope || "global",
15
- state: a.scope === "global" ? "" : a.scope, // the state this action affects
16
- }))
17
- : [];
18
- return {
19
- rootDir: args.rootDir,
20
- documentType: documentModel.name,
21
- module: (0, change_case_1.paramCase)(args.module),
22
- actions,
23
- };
24
- },
1
+ 'use strict';
2
+
3
+ var changeCase = require('change-case');
4
+
5
+ var generate_document_model_module_default = {
6
+ params: ({ args }) => {
7
+ const documentModel = JSON.parse(args.documentModel);
8
+ const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
9
+ const filteredModules = latestSpec.modules.filter(
10
+ (m) => m.name === args.module
11
+ );
12
+ const actions = filteredModules.length > 0 ? filteredModules[0].operations.map((a) => ({
13
+ name: a.name,
14
+ hasInput: a.schema !== null,
15
+ hasAttachment: a.schema?.includes(": Attachment"),
16
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
17
+ scope: a.scope || "global",
18
+ state: a.scope === "global" ? "" : a.scope
19
+ // the state this action affects
20
+ })) : [];
21
+ return {
22
+ rootDir: args.rootDir,
23
+ documentType: documentModel.name,
24
+ module: changeCase.paramCase(args.module),
25
+ actions
26
+ };
27
+ }
25
28
  };
29
+
30
+ module.exports = generate_document_model_module_default;
31
+ //# sourceMappingURL=index.js.map
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.ts"],"names":["paramCase"],"mappings":";;;;AAcA,IAAO,sCAAQ,GAAA;AAAA,EACb,MAAQ,EAAA,CAAC,EAAE,IAAA,EAAiC,KAAA;AAC1C,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,aAAa,CAAA,CAAA;AACnD,IAAA,MAAM,aACJ,aAAc,CAAA,cAAA,CAAe,aAAc,CAAA,cAAA,CAAe,SAAS,CAAC,CAAA,CAAA;AACtE,IAAM,MAAA,eAAA,GAAkB,WAAW,OAAQ,CAAA,MAAA;AAAA,MACzC,CAAC,CAAA,KAAM,CAAE,CAAA,IAAA,KAAS,IAAK,CAAA,MAAA;AAAA,KACzB,CAAA;AAEA,IAAM,MAAA,OAAA,GACJ,eAAgB,CAAA,MAAA,GAAS,CACrB,GAAA,eAAA,CAAgB,CAAC,CAAE,CAAA,UAAA,CAAW,GAAI,CAAA,CAAC,CAAO,MAAA;AAAA,MACxC,MAAM,CAAE,CAAA,IAAA;AAAA,MACR,QAAA,EAAU,EAAE,MAAW,KAAA,IAAA;AAAA,MACvB,aAAe,EAAA,CAAA,CAAE,MAAQ,EAAA,QAAA,CAAS,cAAc,CAAA;AAAA;AAAA,MAEhD,KAAA,EAAO,EAAE,KAAS,IAAA,QAAA;AAAA,MAClB,KAAO,EAAA,CAAA,CAAE,KAAU,KAAA,QAAA,GAAW,KAAK,CAAE,CAAA,KAAA;AAAA;AAAA,KACvC,CAAE,IACF,EAAC,CAAA;AAEP,IAAO,OAAA;AAAA,MACL,SAAS,IAAK,CAAA,OAAA;AAAA,MACd,cAAc,aAAc,CAAA,IAAA;AAAA,MAC5B,MAAA,EAAQA,oBAAU,CAAA,IAAA,CAAK,MAAM,CAAA;AAAA,MAC7B,OAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF","file":"index.js","sourcesContent":["import { DocumentModelState } from \"document-model/document-model\";\nimport { paramCase } from \"change-case\";\nimport { Maybe, OperationScope } from \"document-model/document\";\nimport { Args } from \"../generate-document-model\";\n\ntype ModuleArgs = Args & { module: string };\ntype Actions = {\n name: Maybe<string>;\n hasInput: boolean;\n hasAttachment: boolean | undefined;\n scope: OperationScope;\n state: string;\n};\n\nexport default {\n params: ({ args }: { args: ModuleArgs }) => {\n const documentModel = JSON.parse(args.documentModel) as DocumentModelState;\n const latestSpec =\n documentModel.specifications[documentModel.specifications.length - 1];\n const filteredModules = latestSpec.modules.filter(\n (m) => m.name === args.module,\n );\n\n const actions: Actions[] =\n filteredModules.length > 0\n ? filteredModules[0].operations.map((a) => ({\n name: a.name,\n hasInput: a.schema !== null,\n hasAttachment: a.schema?.includes(\": Attachment\"),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n scope: a.scope || \"global\",\n state: a.scope === \"global\" ? \"\" : a.scope, // the state this action affects\n }))\n : [];\n\n return {\n rootDir: args.rootDir,\n documentType: documentModel.name,\n module: paramCase(args.module),\n actions,\n };\n },\n};\n"]}
@@ -1,15 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- params: ({ args }) => {
5
- return {
6
- rootDir: args.rootDir,
7
- documentModelsDir: args.documentModelsDir,
8
- name: args.name,
9
- documentTypes: args.documentTypes
10
- .split(",")
11
- .filter((type) => type !== ""),
12
- documentTypesMap: JSON.parse(args.documentTypesMap),
13
- };
14
- },
1
+ 'use strict';
2
+
3
+ var generate_editor_default = {
4
+ params: ({ args }) => {
5
+ return {
6
+ rootDir: args.rootDir,
7
+ documentModelsDir: args.documentModelsDir,
8
+ name: args.name,
9
+ documentTypes: args.documentTypes.split(",").filter((type) => type !== ""),
10
+ documentTypesMap: JSON.parse(args.documentTypesMap)
11
+ };
12
+ }
15
13
  };
14
+
15
+ module.exports = generate_editor_default;
16
+ //# sourceMappingURL=index.js.map
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/codegen/.hygen/templates/powerhouse/generate-editor/index.ts"],"names":[],"mappings":";;AAQA,IAAO,uBAAQ,GAAA;AAAA,EACb,MAAQ,EAAA,CAAC,EAAE,IAAA,EAA2B,KAAA;AACpC,IAAO,OAAA;AAAA,MACL,SAAS,IAAK,CAAA,OAAA;AAAA,MACd,mBAAmB,IAAK,CAAA,iBAAA;AAAA,MACxB,MAAM,IAAK,CAAA,IAAA;AAAA,MACX,aAAA,EAAe,IAAK,CAAA,aAAA,CACjB,KAAM,CAAA,GAAG,EACT,MAAO,CAAA,CAAC,IAAS,KAAA,IAAA,KAAS,EAAE,CAAA;AAAA,MAC/B,gBAAkB,EAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,gBAAgB,CAAA;AAAA,KAIpD,CAAA;AAAA,GACF;AACF","file":"index.js","sourcesContent":["export type Args = {\n name: string;\n rootDir: string;\n documentModelsDir: string;\n documentTypes: string;\n documentTypesMap: string;\n};\n\nexport default {\n params: ({ args }: { args: Args }) => {\n return {\n rootDir: args.rootDir,\n documentModelsDir: args.documentModelsDir,\n name: args.name,\n documentTypes: args.documentTypes\n .split(\",\")\n .filter((type) => type !== \"\"),\n documentTypesMap: JSON.parse(args.documentTypesMap) as Record<\n string,\n string\n >,\n };\n },\n};\n"]}
@@ -1,91 +1,99 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSchemas = exports.generateSchema = void 0;
4
- const cli_1 = require("@graphql-codegen/cli");
5
- const fs_1 = require("fs");
6
- const getDirectories = (source) => (0, fs_1.readdirSync)(source, { withFileTypes: true })
7
- .filter((dirent) => dirent.isDirectory())
8
- .map((dirent) => dirent.name);
1
+ 'use strict';
2
+
3
+ var cli = require('@graphql-codegen/cli');
4
+ var node_fs = require('node:fs');
5
+
6
+ const getDirectories = (source) => node_fs.readdirSync(source, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()).map((dirent) => dirent.name);
9
7
  const tsConfig = {
10
- strictScalars: true,
11
- scalars: {
12
- Unknown: "unknown",
13
- DateTime: "string",
14
- Attachment: "string",
15
- Address: "`${string}:0x${string}`",
16
- },
17
- enumsAsTypes: true,
18
- allowEnumStringTypes: true,
19
- avoidOptionals: {
20
- field: true,
21
- },
22
- skipTypename: true,
23
- // maybeValue: "T | null | undefined",
24
- inputMaybeValue: "T | null | undefined",
8
+ strictScalars: true,
9
+ scalars: {
10
+ Unknown: "unknown",
11
+ DateTime: "string",
12
+ Attachment: "string",
13
+ Address: "`${string}:0x${string}`"
14
+ },
15
+ enumsAsTypes: true,
16
+ allowEnumStringTypes: true,
17
+ avoidOptionals: {
18
+ field: true
19
+ },
20
+ skipTypename: true,
21
+ // maybeValue: "T | null | undefined",
22
+ inputMaybeValue: "T | null | undefined"
23
+ };
24
+ const validationConfig = {
25
+ importFrom: `./types`,
26
+ schema: "zod",
27
+ ...tsConfig,
28
+ scalarSchemas: {
29
+ Unknown: "z.unknown()",
30
+ DateTime: "z.string().datetime()",
31
+ Attachment: "z.string()",
32
+ Address: "z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))"
33
+ },
34
+ directives: {
35
+ equals: {
36
+ value: ["regex", "/^$1$/"]
37
+ }
38
+ },
39
+ withObjectType: true
25
40
  };
26
41
  function schemaConfig(name, dir) {
27
- return {
28
- [`${dir}/${name}/gen/schema/types.ts`]: {
29
- schema: [
30
- {
31
- [`${dir}/${name}/schema.graphql`]: {
32
- skipGraphQLImport: false,
33
- },
34
- },
35
- ],
36
- plugins: ["typescript"],
37
- config: tsConfig,
38
- },
39
- [`${dir}/${name}/gen/schema/zod.ts`]: {
40
- schema: `${dir}/${name}/schema.graphql`,
41
- plugins: ["@acaldas/graphql-codegen-typescript-validation-schema"],
42
- config: {
43
- importFrom: `./types`,
44
- schema: "zod",
45
- ...tsConfig,
46
- scalarSchemas: {
47
- Unknown: "z.unknown()",
48
- DateTime: "z.string().datetime()",
49
- Attachment: "z.string()",
50
- Address: "z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))",
51
- },
52
- directives: {
53
- equals: {
54
- value: ["regex", "/^$1$/"],
55
- },
56
- },
57
- withObjectType: true,
58
- },
59
- },
60
- };
42
+ return {
43
+ [`${dir}/${name}/gen/schema/types.ts`]: {
44
+ schema: [
45
+ {
46
+ [`${dir}/${name}/schema.graphql`]: {
47
+ skipGraphQLImport: false
48
+ }
49
+ }
50
+ ],
51
+ plugins: ["typescript"],
52
+ config: tsConfig
53
+ },
54
+ [`${dir}/${name}/gen/schema/zod.ts`]: {
55
+ schema: `${dir}/${name}/schema.graphql`,
56
+ plugins: ["@acaldas/graphql-codegen-typescript-validation-schema"],
57
+ config: validationConfig
58
+ }
59
+ };
61
60
  }
62
61
  const generateSchema = (model, dir, { watch = false, format = false } = {}) => {
63
- const documentModelConfig = schemaConfig(model, dir);
64
- const config = {
65
- overwrite: true,
66
- generates: documentModelConfig,
67
- watch,
68
- hooks: {
69
- afterOneFileWrite: format ? ["prettier --ignore-path --write"] : [],
70
- },
71
- };
72
- return (0, cli_1.generate)(config, true);
62
+ const documentModelConfig = schemaConfig(model, dir);
63
+ const config = {
64
+ overwrite: true,
65
+ generates: documentModelConfig,
66
+ watch,
67
+ hooks: {
68
+ afterOneFileWrite: format ? ["prettier --ignore-path --write"] : []
69
+ }
70
+ };
71
+ return cli.generate(config, true);
73
72
  };
74
- exports.generateSchema = generateSchema;
75
73
  const generateSchemas = (dir, { watch = false, format = false } = {}) => {
76
- const documentModels = getDirectories(dir);
77
- const documentModelConfigs = documentModels.reduce((obj, model) => ({
78
- ...obj,
79
- ...schemaConfig(model, dir),
80
- }), {});
81
- const config = {
82
- overwrite: true,
83
- generates: documentModelConfigs,
84
- watch,
85
- hooks: {
86
- afterOneFileWrite: format ? ["prettier --ignore-path --write"] : [],
87
- },
88
- };
89
- return (0, cli_1.generate)(config, true);
74
+ const documentModels = getDirectories(dir);
75
+ const documentModelConfigs = documentModels.reduce(
76
+ (obj, model) => ({
77
+ ...obj,
78
+ ...schemaConfig(model, dir)
79
+ }),
80
+ {}
81
+ );
82
+ const config = {
83
+ overwrite: true,
84
+ generates: documentModelConfigs,
85
+ watch,
86
+ hooks: {
87
+ afterOneFileWrite: format ? ["prettier --ignore-path --write"] : []
88
+ }
89
+ };
90
+ return cli.generate(config, true);
90
91
  };
92
+
93
+ exports.generateSchema = generateSchema;
91
94
  exports.generateSchemas = generateSchemas;
95
+ exports.schemaConfig = schemaConfig;
96
+ exports.tsConfig = tsConfig;
97
+ exports.validationConfig = validationConfig;
98
+ //# sourceMappingURL=graphql.js.map
99
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/codegen/graphql.ts"],"names":["readdirSync","generate"],"mappings":"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","file":"graphql.js","sourcesContent":["import { type CodegenConfig, generate } from \"@graphql-codegen/cli\";\nimport { TypeScriptPluginConfig } from \"@graphql-codegen/typescript\";\nimport { plugin } from \"@acaldas/graphql-codegen-typescript-validation-schema\";\nimport { readdirSync } from \"node:fs\";\nconst getDirectories = (source: string) =>\n readdirSync(source, { withFileTypes: true })\n .filter((dirent) => dirent.isDirectory())\n .map((dirent) => dirent.name);\n\nexport const tsConfig: TypeScriptPluginConfig = {\n strictScalars: true,\n scalars: {\n Unknown: \"unknown\",\n DateTime: \"string\",\n Attachment: \"string\",\n Address: \"`${string}:0x${string}`\",\n },\n enumsAsTypes: true,\n allowEnumStringTypes: true,\n avoidOptionals: {\n field: true,\n },\n skipTypename: true,\n // maybeValue: \"T | null | undefined\",\n inputMaybeValue: \"T | null | undefined\",\n};\n\nexport type ValidationSchemaConfigType = Parameters<typeof plugin>[2];\n\nexport const validationConfig: ValidationSchemaConfigType = {\n importFrom: `./types`,\n schema: \"zod\",\n ...tsConfig,\n scalarSchemas: {\n Unknown: \"z.unknown()\",\n DateTime: \"z.string().datetime()\",\n Attachment: \"z.string()\",\n Address:\n \"z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))\",\n },\n directives: {\n equals: {\n value: [\"regex\", \"/^$1$/\"],\n },\n },\n withObjectType: true,\n};\n\nexport function schemaConfig(\n name: string,\n dir: string,\n): CodegenConfig[\"generates\"] {\n return {\n [`${dir}/${name}/gen/schema/types.ts`]: {\n schema: [\n {\n [`${dir}/${name}/schema.graphql`]: {\n skipGraphQLImport: false,\n },\n },\n ],\n plugins: [\"typescript\"],\n config: tsConfig,\n },\n [`${dir}/${name}/gen/schema/zod.ts`]: {\n schema: `${dir}/${name}/schema.graphql`,\n plugins: [\"@acaldas/graphql-codegen-typescript-validation-schema\"],\n config: validationConfig,\n },\n };\n}\n\nexport const generateSchema = (\n model: string,\n dir: string,\n { watch = false, format = false } = {},\n) => {\n const documentModelConfig = schemaConfig(model, dir);\n const config: CodegenConfig = {\n overwrite: true,\n generates: documentModelConfig,\n watch,\n hooks: {\n afterOneFileWrite: format ? [\"prettier --ignore-path --write\"] : [],\n },\n };\n return generate(config, true);\n};\n\nexport const generateSchemas = (\n dir: string,\n { watch = false, format = false } = {},\n) => {\n const documentModels = getDirectories(dir);\n const documentModelConfigs = documentModels.reduce(\n (obj, model) => ({\n ...obj,\n ...schemaConfig(model, dir),\n }),\n {},\n );\n\n const config: CodegenConfig = {\n overwrite: true,\n generates: documentModelConfigs,\n watch,\n hooks: {\n afterOneFileWrite: format ? [\"prettier --ignore-path --write\"] : [],\n },\n };\n return generate(config, true);\n};\n"]}