@powerhousedao/codegen 0.5.0 → 0.6.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.
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +39 -34
- package/dist/cli.js.map +1 -0
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +64 -53
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +1 -0
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +30 -24
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +1 -0
- package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.js +16 -14
- package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +1 -0
- package/dist/codegen/graphql.js +84 -80
- package/dist/codegen/graphql.js.map +1 -0
- package/dist/codegen/hygen.js +100 -86
- package/dist/codegen/hygen.js.map +1 -0
- package/dist/codegen/index.js +90 -77
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/utils.js +30 -33
- package/dist/codegen/utils.js.map +1 -0
- package/dist/create-lib/command.js +17 -25
- package/dist/create-lib/command.js.map +1 -0
- package/dist/create-lib/index.js +113 -99
- package/dist/create-lib/index.js.map +1 -0
- package/dist/index.d.ts +35 -2
- package/dist/index.js +21 -18
- package/dist/index.js.map +1 -0
- package/dist/utils/cli.js +80 -75
- package/dist/utils/cli.js.map +1 -0
- package/dist/utils/index.js +21 -18
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/mock.js +8 -5
- package/dist/utils/mock.js.map +1 -0
- package/package.json +4 -5
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -27
- package/dist/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -23
- package/dist/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -19
- package/dist/codegen/graphql.d.ts +0 -8
- package/dist/codegen/hygen.d.ts +0 -12
- package/dist/codegen/index.d.ts +0 -5
- package/dist/codegen/utils.d.ts +0 -2
- package/dist/create-lib/command.d.ts +0 -4
- package/dist/create-lib/index.d.ts +0 -2
- package/dist/utils/cli.d.ts +0 -24
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/mock.d.ts +0 -3
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,40 +1,45 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var index = require('./codegen/index');
|
|
5
|
+
var utils = require('./utils');
|
|
6
|
+
|
|
6
7
|
async function parseCommand(argv) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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 = await parseCommand(argv);
|
|
31
|
+
if (command.editor) {
|
|
32
|
+
await index.generateEditor(
|
|
33
|
+
command.editorName,
|
|
34
|
+
command.documentTypes?.split(/[|,;]/g) ?? [],
|
|
35
|
+
config
|
|
36
|
+
);
|
|
37
|
+
} else if (command.arg.length === 2) {
|
|
38
|
+
await index.generateFromFile(command.arg[1], config);
|
|
39
|
+
} else {
|
|
40
|
+
await index.generate(config);
|
|
41
|
+
}
|
|
39
42
|
}
|
|
40
43
|
main();
|
|
44
|
+
//# sourceMappingURL=cli.js.map
|
|
45
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"names":["parseArgs","getConfig","parseConfig","promptDirectories","generateEditor","generateFromFile","generate"],"mappings":";;;;;;AAIA,eAAe,aAAa,IAAgB,EAAA;AAC1C,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,MAAM,YAAA,CAAa,IAAI,CAAA,CAAA;AACvC,EAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,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","file":"cli.js","sourcesContent":["#! /usr/bin/env node\nimport { generate, generateEditor, generateFromFile } from \"./codegen/index\";\nimport { parseArgs, getConfig, promptDirectories, parseConfig } from \"./utils\";\n\nasync function 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 = await parseCommand(argv);\n if (command.editor) {\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();\n"]}
|
|
@@ -1,62 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var changeCase = require('change-case');
|
|
4
|
+
|
|
4
5
|
function documentModelToString(documentModel) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
})
|
|
22
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
54
|
-
|
|
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
|
-
|
|
65
|
+
return schema === "" || !schema.includes("{");
|
|
59
66
|
}
|
|
60
67
|
function handleEmptyState(state) {
|
|
61
|
-
|
|
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,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
+
scope: a.scope || "global",
|
|
17
|
+
state: a.scope === "global" ? "" : a.scope
|
|
18
|
+
// the state this action affects
|
|
19
|
+
})) : [];
|
|
20
|
+
return {
|
|
21
|
+
rootDir: args.rootDir,
|
|
22
|
+
documentType: documentModel.name,
|
|
23
|
+
module: changeCase.paramCase(args.module),
|
|
24
|
+
actions
|
|
25
|
+
};
|
|
26
|
+
}
|
|
25
27
|
};
|
|
28
|
+
|
|
29
|
+
module.exports = generate_document_model_module_default;
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
31
|
+
//# 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,MAChD,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 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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"]}
|
package/dist/codegen/graphql.js
CHANGED
|
@@ -1,91 +1,95 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const getDirectories = (source) =>
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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"
|
|
25
23
|
};
|
|
26
24
|
function schemaConfig(name, dir) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
return {
|
|
26
|
+
[`${dir}/${name}/gen/schema/types.ts`]: {
|
|
27
|
+
schema: [
|
|
28
|
+
{
|
|
29
|
+
[`${dir}/${name}/schema.graphql`]: {
|
|
30
|
+
skipGraphQLImport: false
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
plugins: ["typescript"],
|
|
35
|
+
config: tsConfig
|
|
36
|
+
},
|
|
37
|
+
[`${dir}/${name}/gen/schema/zod.ts`]: {
|
|
38
|
+
schema: `${dir}/${name}/schema.graphql`,
|
|
39
|
+
plugins: ["@acaldas/graphql-codegen-typescript-validation-schema"],
|
|
40
|
+
config: {
|
|
41
|
+
importFrom: `./types`,
|
|
42
|
+
schema: "zod",
|
|
43
|
+
...tsConfig,
|
|
44
|
+
scalarSchemas: {
|
|
45
|
+
Unknown: "z.unknown()",
|
|
46
|
+
DateTime: "z.string().datetime()",
|
|
47
|
+
Attachment: "z.string()",
|
|
48
|
+
Address: "z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))"
|
|
38
49
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
},
|
|
50
|
+
directives: {
|
|
51
|
+
equals: {
|
|
52
|
+
value: ["regex", "/^$1$/"]
|
|
53
|
+
}
|
|
59
54
|
},
|
|
60
|
-
|
|
55
|
+
withObjectType: true
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
61
59
|
}
|
|
62
60
|
const generateSchema = (model, dir, { watch = false, format = false } = {}) => {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
const documentModelConfig = schemaConfig(model, dir);
|
|
62
|
+
const config = {
|
|
63
|
+
overwrite: true,
|
|
64
|
+
generates: documentModelConfig,
|
|
65
|
+
watch,
|
|
66
|
+
hooks: {
|
|
67
|
+
afterOneFileWrite: format ? ["prettier --ignore-path --write"] : []
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return cli.generate(config, true);
|
|
73
71
|
};
|
|
74
|
-
exports.generateSchema = generateSchema;
|
|
75
72
|
const generateSchemas = (dir, { watch = false, format = false } = {}) => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
73
|
+
const documentModels = getDirectories(dir);
|
|
74
|
+
const documentModelConfigs = documentModels.reduce(
|
|
75
|
+
(obj, model) => ({
|
|
76
|
+
...obj,
|
|
77
|
+
...schemaConfig(model, dir)
|
|
78
|
+
}),
|
|
79
|
+
{}
|
|
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 cli.generate(config, true);
|
|
90
90
|
};
|
|
91
|
+
|
|
92
|
+
exports.generateSchema = generateSchema;
|
|
91
93
|
exports.generateSchemas = generateSchemas;
|
|
94
|
+
//# sourceMappingURL=graphql.js.map
|
|
95
|
+
//# 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 { readdirSync } from \"node:fs\";\n\nconst getDirectories = (source: string) =>\n readdirSync(source, { withFileTypes: true })\n .filter((dirent) => dirent.isDirectory())\n .map((dirent) => dirent.name);\n\nconst 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\nfunction schemaConfig(name: string, dir: string): 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: {\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 },\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"]}
|