@powerhousedao/codegen 4.1.0-dev.1 → 4.1.0-dev.100
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/README.md +0 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +8 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +69 -54
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +10 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +20 -8
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +19 -26
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +52 -27
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +21 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +64 -51
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +4 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +39 -28
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +138 -223
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +95 -72
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +10 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +7 -71
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +5 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +103 -18
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/hooks.esm.t +16 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +5 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +28 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
- package/dist/src/codegen/generate.d.ts +33 -0
- package/dist/src/codegen/generate.d.ts.map +1 -0
- package/dist/src/codegen/generate.js +202 -0
- package/dist/src/codegen/generate.js.map +1 -0
- package/dist/src/codegen/graphql.d.ts +7 -3
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js +29 -6
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/hygen.d.ts +19 -11
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +71 -19
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/codegen/index.d.ts +6 -33
- package/dist/src/codegen/index.d.ts.map +1 -1
- package/dist/src/codegen/index.js +6 -172
- package/dist/src/codegen/index.js.map +1 -1
- package/dist/src/codegen/types.d.ts +9 -0
- package/dist/src/codegen/types.d.ts.map +1 -0
- package/dist/src/codegen/types.js +2 -0
- package/dist/src/codegen/types.js.map +1 -0
- package/dist/src/codegen/utils.d.ts +5 -2
- package/dist/src/codegen/utils.d.ts.map +1 -1
- package/dist/src/codegen/utils.js +42 -4
- package/dist/src/codegen/utils.js.map +1 -1
- package/dist/src/create-lib/checkout-project.d.ts +13 -0
- package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
- package/dist/src/create-lib/checkout-project.js +47 -0
- package/dist/src/create-lib/checkout-project.js.map +1 -0
- package/dist/src/create-lib/create-project.d.ts +9 -5
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +37 -30
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/create-lib/feature-flags.d.ts +4 -0
- package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
- package/dist/src/create-lib/feature-flags.js +4 -0
- package/dist/src/create-lib/feature-flags.js.map +1 -0
- package/dist/src/create-lib/index.d.ts +1 -0
- package/dist/src/create-lib/index.d.ts.map +1 -1
- package/dist/src/create-lib/index.js +1 -0
- package/dist/src/create-lib/index.js.map +1 -1
- package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
- package/dist/src/create-lib/utils.d.ts.map +1 -0
- package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
- package/dist/src/create-lib/utils.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +9 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.js +9 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -0
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +38 -0
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/core/GenerationContext.js +2 -0
- package/dist/src/ts-morph-generator/core/GenerationContext.js.map +1 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js +140 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +19 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +113 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -0
- package/dist/src/ts-morph-generator/index.d.ts +4 -0
- package/dist/src/ts-morph-generator/index.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/index.js +4 -0
- package/dist/src/ts-morph-generator/index.js.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +13 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +45 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +1 -0
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +14 -0
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/utilities/ImportManager.js +40 -0
- package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -0
- package/dist/src/ts-morph-generator/utilities/index.d.ts +3 -0
- package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/utilities/index.js +3 -0
- package/dist/src/ts-morph-generator/utilities/index.js.map +1 -0
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/validation.d.ts +6 -6
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/validation.js +2 -2
- package/dist/src/utils/validation.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +26 -27
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customReducers.esm.t +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -24
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
- package/dist/src/utils/package-manager.d.ts.map +0 -1
- package/dist/src/utils/package-manager.js.map +0 -1
- package/dist/tsconfig.hygen.tsbuildinfo +0 -1
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
1
|
+
// @ts-check
|
|
2
|
+
module.exports = {
|
|
3
|
+
params: ({ args }) => {
|
|
4
|
+
return {
|
|
5
|
+
rootDir: args.rootDir,
|
|
6
|
+
name: args.name,
|
|
7
|
+
loadFromFile: args.loadFromFile,
|
|
8
|
+
};
|
|
9
|
+
},
|
|
11
10
|
};
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CodegenOptions } from "@powerhousedao/codegen";
|
|
2
|
+
import type { PartialPowerhouseManifest, PowerhouseConfig } from "@powerhousedao/config";
|
|
3
|
+
import type { DocumentModelGlobalState } from "document-model";
|
|
4
|
+
export declare function generate(config: PowerhouseConfig): Promise<void>;
|
|
5
|
+
export declare function generateFromFile(path: string, config: PowerhouseConfig, options?: CodegenOptions): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Generates code from a DocumentModelGlobalState object directly.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* This function performs the same code generation as generateFromFile but takes
|
|
11
|
+
* a DocumentModelGlobalState object directly instead of loading from a file. This allows for
|
|
12
|
+
* programmatic code generation without file I/O.
|
|
13
|
+
*
|
|
14
|
+
* @param documentModelDocument - The DocumentModelGlobalState object containing the document model
|
|
15
|
+
* @param config - The PowerhouseConfig configuration object
|
|
16
|
+
* @param options - Optional configuration for generation behavior (verbose logging, etc.)
|
|
17
|
+
* @returns A promise that resolves when code generation is complete
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateFromDocument(documentModelState: DocumentModelGlobalState, config: PowerhouseConfig, options?: CodegenOptions): Promise<void>;
|
|
20
|
+
export declare function generateEditor(name: string, documentTypes: string[], config: PowerhouseConfig, editorId?: string): Promise<void>;
|
|
21
|
+
export declare function generateSubgraphFromDocumentModel(name: string, documentModel: DocumentModelGlobalState, config: PowerhouseConfig, options?: CodegenOptions): Promise<void>;
|
|
22
|
+
export declare function generateSubgraph(name: string, file: string | null, config: PowerhouseConfig, options?: CodegenOptions): Promise<void>;
|
|
23
|
+
export declare function generateProcessor(name: string, type: "analytics" | "relationalDb", documentTypes: string[], config: PowerhouseConfig): Promise<void>;
|
|
24
|
+
export declare function generateDriveEditor(options: {
|
|
25
|
+
name: string;
|
|
26
|
+
config: PowerhouseConfig;
|
|
27
|
+
appId?: string;
|
|
28
|
+
allowedDocumentTypes?: string;
|
|
29
|
+
isDragAndDropEnabled?: boolean;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
export declare function generateImportScript(name: string, config: PowerhouseConfig): Promise<void>;
|
|
32
|
+
export declare function generateManifest(manifestData: PartialPowerhouseManifest, projectRoot?: string): string;
|
|
33
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/codegen/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAc7D,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAI/D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,iBAItD;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,cAAmB,iBAO7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,kBAAkB,EAAE,wBAAwB,EAC5C,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,cAAmB,iBAI7B;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,MAAM,iBAwBlB;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,wBAAwB,EACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,cAAmB,iBAM7B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,cAAmB,iBAQ7B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,cAAc,EAClC,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAWzB;AACD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,iBAcA;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAKzB;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,yBAAyB,EACvC,WAAW,CAAC,EAAE,MAAM,UAoFrB"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { generateAll, generateSchema, generateSchemas, getDocumentTypesMap, hygenGenerateDocumentModel, hygenGenerateDriveEditor, hygenGenerateEditor, hygenGenerateImportScript, hygenGenerateProcessor, hygenGenerateSubgraph, loadDocumentModel, } from "@powerhousedao/codegen";
|
|
2
|
+
import { typeDefs } from "@powerhousedao/document-engineering/graphql";
|
|
3
|
+
import { paramCase } from "change-case";
|
|
4
|
+
import fs from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
export async function generate(config) {
|
|
7
|
+
const { skipFormat, watch } = config;
|
|
8
|
+
await generateSchemas(config.documentModelsDir, { skipFormat, watch });
|
|
9
|
+
await generateAll(config.documentModelsDir, { skipFormat, watch });
|
|
10
|
+
}
|
|
11
|
+
export async function generateFromFile(path, config, options = {}) {
|
|
12
|
+
// load document model spec from file
|
|
13
|
+
const documentModel = await loadDocumentModel(path);
|
|
14
|
+
// delegate to shared generation function
|
|
15
|
+
await generateFromDocumentModel(documentModel, config, path, options);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generates code from a DocumentModelGlobalState object directly.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* This function performs the same code generation as generateFromFile but takes
|
|
22
|
+
* a DocumentModelGlobalState object directly instead of loading from a file. This allows for
|
|
23
|
+
* programmatic code generation without file I/O.
|
|
24
|
+
*
|
|
25
|
+
* @param documentModelDocument - The DocumentModelGlobalState object containing the document model
|
|
26
|
+
* @param config - The PowerhouseConfig configuration object
|
|
27
|
+
* @param options - Optional configuration for generation behavior (verbose logging, etc.)
|
|
28
|
+
* @returns A promise that resolves when code generation is complete
|
|
29
|
+
*/
|
|
30
|
+
export async function generateFromDocument(documentModelState, config, options = {}) {
|
|
31
|
+
// delegate to shared generation function
|
|
32
|
+
await generateFromDocumentModel(documentModelState, config, null, options);
|
|
33
|
+
}
|
|
34
|
+
export async function generateEditor(name, documentTypes, config, editorId) {
|
|
35
|
+
const pathOrigin = "../../";
|
|
36
|
+
const { documentModelsDir, skipFormat } = config;
|
|
37
|
+
const documentTypesMap = getDocumentTypesMap(documentModelsDir, pathOrigin);
|
|
38
|
+
const invalidType = documentTypes.find((type) => !Object.keys(documentTypesMap).includes(type));
|
|
39
|
+
if (invalidType) {
|
|
40
|
+
throw new Error(`Document model for ${invalidType} not found. Make sure the document model is available in the document-models directory (${documentModelsDir}) and has been properly generated.`);
|
|
41
|
+
}
|
|
42
|
+
return hygenGenerateEditor(name, documentTypes, documentTypesMap, config.editorsDir, config.documentModelsDir, { skipFormat }, editorId);
|
|
43
|
+
}
|
|
44
|
+
export async function generateSubgraphFromDocumentModel(name, documentModel, config, options = {}) {
|
|
45
|
+
return hygenGenerateSubgraph(name, documentModel, config.subgraphsDir, {
|
|
46
|
+
skipFormat: config.skipFormat,
|
|
47
|
+
verbose: options.verbose,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export async function generateSubgraph(name, file, config, options = {}) {
|
|
51
|
+
return hygenGenerateSubgraph(name, file !== null ? await loadDocumentModel(file) : null, config.subgraphsDir, { skipFormat: config.skipFormat, verbose: options.verbose });
|
|
52
|
+
}
|
|
53
|
+
export async function generateProcessor(name, type, documentTypes, config) {
|
|
54
|
+
const { skipFormat } = config;
|
|
55
|
+
return hygenGenerateProcessor(name, documentTypes, config.processorsDir, type, { skipFormat });
|
|
56
|
+
}
|
|
57
|
+
export async function generateDriveEditor(options) {
|
|
58
|
+
const { name, config, appId, allowedDocumentTypes, isDragAndDropEnabled } = options;
|
|
59
|
+
const dir = config.editorsDir;
|
|
60
|
+
const skipFormat = config.skipFormat;
|
|
61
|
+
return hygenGenerateDriveEditor({
|
|
62
|
+
name,
|
|
63
|
+
dir,
|
|
64
|
+
appId: appId ?? "drive-editor-id",
|
|
65
|
+
allowedDocumentTypes: allowedDocumentTypes,
|
|
66
|
+
isDragAndDropEnabled: isDragAndDropEnabled ?? true,
|
|
67
|
+
skipFormat,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export async function generateImportScript(name, config) {
|
|
71
|
+
return hygenGenerateImportScript(name, config.importScriptsDir, {
|
|
72
|
+
skipFormat: config.skipFormat,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export function generateManifest(manifestData, projectRoot) {
|
|
76
|
+
const rootDir = projectRoot || process.cwd();
|
|
77
|
+
const manifestPath = join(rootDir, "powerhouse.manifest.json");
|
|
78
|
+
// Create default manifest structure
|
|
79
|
+
const defaultManifest = {
|
|
80
|
+
name: "",
|
|
81
|
+
description: "",
|
|
82
|
+
category: "",
|
|
83
|
+
publisher: {
|
|
84
|
+
name: "",
|
|
85
|
+
url: "",
|
|
86
|
+
},
|
|
87
|
+
documentModels: [],
|
|
88
|
+
editors: [],
|
|
89
|
+
apps: [],
|
|
90
|
+
subgraphs: [],
|
|
91
|
+
importScripts: [],
|
|
92
|
+
};
|
|
93
|
+
// Read existing manifest if it exists
|
|
94
|
+
let existingManifest = defaultManifest;
|
|
95
|
+
if (fs.existsSync(manifestPath)) {
|
|
96
|
+
try {
|
|
97
|
+
const existingData = fs.readFileSync(manifestPath, "utf-8");
|
|
98
|
+
existingManifest = JSON.parse(existingData);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.warn(`Failed to parse existing manifest: ${String(error)}`);
|
|
102
|
+
existingManifest = defaultManifest;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Helper function to merge arrays by ID
|
|
106
|
+
const mergeArrayById = (existingArray, newArray) => {
|
|
107
|
+
if (!newArray)
|
|
108
|
+
return existingArray;
|
|
109
|
+
const result = [...existingArray];
|
|
110
|
+
newArray.forEach((newItem) => {
|
|
111
|
+
const existingIndex = result.findIndex((item) => item.id === newItem.id);
|
|
112
|
+
if (existingIndex !== -1) {
|
|
113
|
+
// Replace existing item
|
|
114
|
+
result[existingIndex] = newItem;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Add new item
|
|
118
|
+
result.push(newItem);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
return result;
|
|
122
|
+
};
|
|
123
|
+
// Merge partial data with existing manifest
|
|
124
|
+
const updatedManifest = {
|
|
125
|
+
...existingManifest,
|
|
126
|
+
...manifestData,
|
|
127
|
+
publisher: {
|
|
128
|
+
...existingManifest.publisher,
|
|
129
|
+
...(manifestData.publisher || {}),
|
|
130
|
+
},
|
|
131
|
+
documentModels: mergeArrayById(existingManifest.documentModels, manifestData.documentModels),
|
|
132
|
+
editors: mergeArrayById(existingManifest.editors, manifestData.editors),
|
|
133
|
+
apps: mergeArrayById(existingManifest.apps, manifestData.apps),
|
|
134
|
+
subgraphs: mergeArrayById(existingManifest.subgraphs, manifestData.subgraphs),
|
|
135
|
+
importScripts: mergeArrayById(existingManifest.importScripts, manifestData.importScripts),
|
|
136
|
+
};
|
|
137
|
+
// Write updated manifest to file
|
|
138
|
+
fs.writeFileSync(manifestPath, JSON.stringify(updatedManifest, null, 4));
|
|
139
|
+
return manifestPath;
|
|
140
|
+
}
|
|
141
|
+
function generateGraphqlSchema(documentModel) {
|
|
142
|
+
const spec = documentModel.specifications[documentModel.specifications.length - 1];
|
|
143
|
+
if (!spec) {
|
|
144
|
+
throw new Error(`No spec found for ${documentModel.id}`);
|
|
145
|
+
}
|
|
146
|
+
const { modules, state: { global, local }, } = spec;
|
|
147
|
+
const schemas = [
|
|
148
|
+
global.schema,
|
|
149
|
+
local.schema,
|
|
150
|
+
...modules
|
|
151
|
+
.map((module) => [
|
|
152
|
+
`# ${module.name}`,
|
|
153
|
+
...module.operations.map((op) => op.schema),
|
|
154
|
+
])
|
|
155
|
+
.flat()
|
|
156
|
+
.filter((schema) => schema && schema.length > 0),
|
|
157
|
+
];
|
|
158
|
+
return schemas.join("\n\n");
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Generates code from a DocumentModelGlobalState.
|
|
162
|
+
*
|
|
163
|
+
* @remarks
|
|
164
|
+
* This is the core generation function that both generateFromFile and generateFromDocument
|
|
165
|
+
* use internally. It handles the actual code generation from a DocumentModelGlobalState object.
|
|
166
|
+
*
|
|
167
|
+
* @param documentModel - The DocumentModelGlobalState containing the document model specification
|
|
168
|
+
* @param config - The PowerhouseConfig configuration object
|
|
169
|
+
* @param filePath - Optional file path for generateSubgraph (null if not from file)
|
|
170
|
+
* @param options - Optional configuration for generation behavior
|
|
171
|
+
* @returns A promise that resolves when code generation is complete
|
|
172
|
+
*/
|
|
173
|
+
async function generateFromDocumentModel(documentModel, config, filePath, options = {}) {
|
|
174
|
+
// Derive verbose from config.logLevel if not explicitly provided
|
|
175
|
+
// Show hygen logs for verbose, debug, and info levels (default behavior before ts-morph)
|
|
176
|
+
const { verbose = config.logLevel === "verbose" ||
|
|
177
|
+
config.logLevel === "debug" ||
|
|
178
|
+
config.logLevel === "info", force = false, } = options;
|
|
179
|
+
const name = paramCase(documentModel.name);
|
|
180
|
+
// create document model folder and spec as json
|
|
181
|
+
fs.mkdirSync(join(config.documentModelsDir, name), { recursive: true });
|
|
182
|
+
fs.writeFileSync(join(config.documentModelsDir, name, `${name}.json`), JSON.stringify(documentModel, null, 4));
|
|
183
|
+
// bundle graphql schemas together
|
|
184
|
+
const schemaStr = [
|
|
185
|
+
typeDefs.join("\n"), // inject ph scalars
|
|
186
|
+
generateGraphqlSchema(documentModel),
|
|
187
|
+
].join("\n");
|
|
188
|
+
if (schemaStr) {
|
|
189
|
+
fs.writeFileSync(join(config.documentModelsDir, name, `schema.graphql`), schemaStr);
|
|
190
|
+
}
|
|
191
|
+
await generateSchema(name, config.documentModelsDir, {
|
|
192
|
+
skipFormat: config.skipFormat,
|
|
193
|
+
verbose,
|
|
194
|
+
});
|
|
195
|
+
await hygenGenerateDocumentModel(documentModel, config.documentModelsDir, {
|
|
196
|
+
skipFormat: config.skipFormat,
|
|
197
|
+
verbose,
|
|
198
|
+
force,
|
|
199
|
+
});
|
|
200
|
+
await generateSubgraph(name, filePath || null, config, { verbose });
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { CodegenConfig } from "@graphql-codegen/cli";
|
|
2
|
+
import type { TypeScriptPluginConfig } from "@graphql-codegen/typescript";
|
|
3
3
|
export declare const scalars: {
|
|
4
4
|
Unknown: string;
|
|
5
5
|
DateTime: string;
|
|
@@ -20,7 +20,11 @@ export declare const generateSchema: (model: string, inDir: string, { watch, ski
|
|
|
20
20
|
skipFormat?: boolean | undefined;
|
|
21
21
|
outDir?: string | undefined;
|
|
22
22
|
verbose?: boolean | undefined;
|
|
23
|
-
}) => Promise<
|
|
23
|
+
}) => Promise<{
|
|
24
|
+
filename: string;
|
|
25
|
+
content: string;
|
|
26
|
+
hooks: Record<string, unknown>;
|
|
27
|
+
}[]>;
|
|
24
28
|
export declare const generateSchemas: (inDir: string, { watch, skipFormat, outDir }?: {
|
|
25
29
|
watch?: boolean | undefined;
|
|
26
30
|
skipFormat?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAa1E,eAAO,MAAM,OAAO;;;;;CAMnB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,sBAWtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAYpC,CAAC;AAEX,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,aAAa,CAAC,WAAW,CAAC,CAmB5B;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,OAAO,MAAM,EACb;;;;;CAA0E;cAgB9D,MAAM;aACP,MAAM;WACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA8BjC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb;;;;CAA0D,iBAqB3D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { generate } from "@graphql-codegen/cli";
|
|
2
|
+
import { formatWithPrettierBeforeWrite } from "@powerhousedao/codegen";
|
|
2
3
|
import { generatorTypeDefs, validationSchema, } from "@powerhousedao/document-engineering/graphql";
|
|
3
4
|
import { readdirSync } from "node:fs";
|
|
4
|
-
import { formatWithPrettierBeforeWrite } from "./utils.js";
|
|
5
5
|
const getDirectories = (source) => readdirSync(source, { withFileTypes: true })
|
|
6
6
|
.filter((dirent) => dirent.isDirectory())
|
|
7
7
|
.map((dirent) => dirent.name);
|
|
@@ -64,18 +64,41 @@ export function schemaConfig(name, inDir, outDir) {
|
|
|
64
64
|
},
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
export const generateSchema = (model, inDir, { watch = false, skipFormat = false, outDir = inDir, verbose = true } = {}) => {
|
|
67
|
+
export const generateSchema = async (model, inDir, { watch = false, skipFormat = false, outDir = inDir, verbose = true } = {}) => {
|
|
68
68
|
const documentModelConfig = schemaConfig(model, inDir, outDir);
|
|
69
69
|
const config = {
|
|
70
70
|
overwrite: true,
|
|
71
71
|
generates: documentModelConfig,
|
|
72
72
|
watch,
|
|
73
73
|
silent: !verbose,
|
|
74
|
-
hooks: {
|
|
75
|
-
beforeOneFileWrite: skipFormat ? [] : [formatWithPrettierBeforeWrite],
|
|
76
|
-
},
|
|
77
74
|
};
|
|
78
|
-
|
|
75
|
+
// GraphQL Codegen hooks are not working reliably - write files manually
|
|
76
|
+
const fs = await import("node:fs");
|
|
77
|
+
const path = await import("node:path");
|
|
78
|
+
const result = (await generate(config, !verbose));
|
|
79
|
+
for (const fileResult of result) {
|
|
80
|
+
const { filename, content } = fileResult;
|
|
81
|
+
const fullPath = path.resolve(filename);
|
|
82
|
+
const dir = path.dirname(fullPath);
|
|
83
|
+
// Ensure directory exists
|
|
84
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
85
|
+
// Write content (content is already typed as string)
|
|
86
|
+
let finalContent = content;
|
|
87
|
+
// Format if not skipped
|
|
88
|
+
if (!skipFormat) {
|
|
89
|
+
try {
|
|
90
|
+
const { format } = await import("prettier");
|
|
91
|
+
finalContent = await format(content, { parser: "typescript" });
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (verbose) {
|
|
95
|
+
console.warn(`Failed to format ${filename}:`, error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
fs.writeFileSync(fullPath, finalContent);
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
79
102
|
};
|
|
80
103
|
export const generateSchemas = (inDir, { watch = false, skipFormat = false, outDir = inDir } = {}) => {
|
|
81
104
|
const documentModels = getDirectories(inDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CACxC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACzC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KACxC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,yBAAyB;IAClC,GAAI,iBAA4C;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,uBAAuB;IACjC,UAAU,EAAE,YAAY;IACxB,OAAO,EACL,oGAAoG;IACtG,GAAI,gBAA2C;CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,aAAa,EAAE,IAAI;IACnB,OAAO;IACP,YAAY,EAAE,IAAI;IAClB,oBAAoB,EAAE,IAAI;IAC1B,cAAc,EAAE;QACd,KAAK,EAAE,IAAI;KACZ;IACD,YAAY,EAAE,IAAI;IAClB,sCAAsC;IACtC,eAAe,EAAE,sBAAsB;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA4B;IAChD,GAAG,QAAQ;IACX,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE;QACV,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC3B;KACF;IACD,cAAc,EAAE,IAAI;CACZ,CAAC;AAEX,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,KAAa,EACb,MAAc;IAEd,OAAO;QACL,CAAC,GAAG,MAAM,IAAI,IAAI,sBAAsB,CAAC,EAAE;YACzC,MAAM,EAAE;gBACN;oBACE,CAAC,GAAG,KAAK,IAAI,IAAI,iBAAiB,CAAC,EAAE;wBACnC,iBAAiB,EAAE,KAAK;qBACzB;iBACF;aACF;YACD,OAAO,EAAE,CAAC,YAAY,CAAC;YACvB,MAAM,EAAE,QAAQ;SACjB;QACD,CAAC,GAAG,MAAM,IAAI,IAAI,oBAAoB,CAAC,EAAE;YACvC,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,iBAAiB;YACzC,OAAO,EAAE,CAAC,uDAAuD,CAAC;YAClE,MAAM,EAAE,SAAS;SAClB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,KAAa,EACb,KAAa,EACb,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,EAC1E,EAAE;IACF,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAkB;QAC5B,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,mBAAmB;QAC9B,KAAK;QACL,MAAM,EAAE,CAAC,OAAO;KACjB,CAAC;IAEF,wEAAwE;IACxE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAI9C,CAAC;IAEH,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,0BAA0B;QAC1B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,qDAAqD;QACrD,IAAI,YAAY,GAAW,OAAO,CAAC;QAEnC,wBAAwB;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAa,EACb,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE,EAC1D,EAAE;IACF,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,GAAG;QACN,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;KACtC,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,MAAM,GAAkB;QAC5B,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,oBAAoB;QAC/B,KAAK;QACL,KAAK,EAAE;YACL,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC;SACtE;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -1,37 +1,45 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { DocumentTypesMap } from "@powerhousedao/codegen";
|
|
2
|
+
import type { DocumentModelGlobalState } from "document-model";
|
|
3
3
|
export declare function run(args: string[], { watch, skipFormat, verbose }?: {
|
|
4
4
|
watch?: boolean | undefined;
|
|
5
5
|
skipFormat?: boolean | undefined;
|
|
6
6
|
verbose?: boolean | undefined;
|
|
7
7
|
}): Promise<import("hygen/dist/types.js").RunnerResult>;
|
|
8
|
-
export declare function generateAll(dir: string, { watch, skipFormat, verbose }?: {
|
|
8
|
+
export declare function generateAll(dir: string, { watch, skipFormat, verbose, force }?: {
|
|
9
9
|
watch?: boolean | undefined;
|
|
10
10
|
skipFormat?: boolean | undefined;
|
|
11
11
|
verbose?: boolean | undefined;
|
|
12
|
+
force?: boolean | undefined;
|
|
12
13
|
}): Promise<void>;
|
|
13
|
-
export declare function
|
|
14
|
+
export declare function hygenGenerateDocumentModel(documentModelState: DocumentModelGlobalState, dir: string, { watch, skipFormat, verbose, generateReducers, force, }?: {
|
|
14
15
|
watch?: boolean | undefined;
|
|
15
16
|
skipFormat?: boolean | undefined;
|
|
16
17
|
verbose?: boolean | undefined;
|
|
18
|
+
generateReducers?: boolean | undefined;
|
|
19
|
+
force?: boolean | undefined;
|
|
17
20
|
}): Promise<void>;
|
|
18
|
-
export declare function
|
|
21
|
+
export declare function hygenGenerateEditor(name: string, documentTypes: string[], documentTypesMap: DocumentTypesMap, dir: string, documentModelsDir: string, { skipFormat, verbose }?: {
|
|
19
22
|
skipFormat?: boolean | undefined;
|
|
20
23
|
verbose?: boolean | undefined;
|
|
21
|
-
}): Promise<void>;
|
|
22
|
-
export declare function
|
|
24
|
+
}, editorId?: string): Promise<void>;
|
|
25
|
+
export declare function hygenGenerateProcessor(name: string, documentTypes: string[], outDir: string, type: "analytics" | "relationalDb", { skipFormat, verbose }?: {
|
|
23
26
|
skipFormat?: boolean | undefined;
|
|
24
27
|
verbose?: boolean | undefined;
|
|
25
28
|
}): Promise<void>;
|
|
26
|
-
export declare function
|
|
29
|
+
export declare function hygenGenerateSubgraph(name: string, documentModel: DocumentModelGlobalState | null, dir: string, { skipFormat, verbose }?: {
|
|
27
30
|
skipFormat?: boolean | undefined;
|
|
28
31
|
verbose?: boolean | undefined;
|
|
29
32
|
}): Promise<void>;
|
|
30
|
-
export declare function
|
|
33
|
+
export declare function hygenGenerateImportScript(name: string, dir: string, { skipFormat, verbose }?: {
|
|
31
34
|
skipFormat?: boolean | undefined;
|
|
32
35
|
verbose?: boolean | undefined;
|
|
33
36
|
}): Promise<void>;
|
|
34
|
-
export declare function
|
|
35
|
-
|
|
37
|
+
export declare function hygenGenerateDriveEditor(options: {
|
|
38
|
+
name: string;
|
|
39
|
+
dir: string;
|
|
40
|
+
appId: string;
|
|
41
|
+
allowedDocumentTypes: string | undefined | null;
|
|
42
|
+
isDragAndDropEnabled: boolean;
|
|
43
|
+
skipFormat?: boolean;
|
|
36
44
|
}): Promise<void>;
|
|
37
45
|
//# sourceMappingURL=hygen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAa/D,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,KAAa,EAAE,UAAkB,EAAE,OAAc,EAAE;;;;CAAK,uDAqC3D;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE,OAAc,EAAE,KAAY,EAAE;;;;;CAAK,iBAyCzE;AAED,wBAAsB,0BAA0B,CAC9C,kBAAkB,EAAE,wBAAwB,EAC5C,GAAG,EAAE,MAAM,EACX,EACE,KAAa,EACb,UAAkB,EAClB,OAAc,EACd,gBAAuB,EACvB,KAAY,GACb;;;;;;CAAK,iBAiDP;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,EAC3C,QAAQ,CAAC,EAAE,MAAM,iBAuBlB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,WAAW,GAAG,cAAc,EAClC,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAmB5C;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,wBAAwB,GAAG,IAAI,EAC9C,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAgD5C;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAgB5C;AAUD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,iBAiCA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { loadDocumentModel, TSMorphCodeGenerator, } from "@powerhousedao/codegen";
|
|
1
2
|
import { pascalCase } from "change-case";
|
|
2
3
|
import { Logger, runner } from "hygen";
|
|
3
4
|
import fs from "node:fs";
|
|
4
5
|
import { createRequire } from "node:module";
|
|
5
6
|
import path from "node:path";
|
|
6
7
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
import { loadDocumentModel } from "./utils.js";
|
|
8
8
|
const require = createRequire(import.meta.url);
|
|
9
9
|
const __dirname = import.meta.dirname || path.dirname(fileURLToPath(import.meta.url));
|
|
10
10
|
const defaultTemplates = path.join(__dirname, ".hygen", "templates");
|
|
@@ -17,12 +17,10 @@ export async function run(args, { watch = false, skipFormat = false, verbose = t
|
|
|
17
17
|
cwd: process.cwd(),
|
|
18
18
|
logger,
|
|
19
19
|
createPrompter: () => {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
21
20
|
return require("enquirer");
|
|
22
21
|
},
|
|
23
22
|
exec: (action, body) => {
|
|
24
23
|
const opts = body && body.length > 0 ? { input: body } : {};
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
|
|
26
24
|
return require("execa").shell(action, opts);
|
|
27
25
|
},
|
|
28
26
|
debug: !!process.env.DEBUG,
|
|
@@ -33,7 +31,7 @@ export async function run(args, { watch = false, skipFormat = false, verbose = t
|
|
|
33
31
|
actions
|
|
34
32
|
.filter((action) => ["added", "inject"].includes(action.status))
|
|
35
33
|
.forEach((action) => {
|
|
36
|
-
execa.$ `prettier --ignore-path --write ${action.subject.replace(".", process.cwd())}`.catch((err) => {
|
|
34
|
+
execa.$ `npx prettier --ignore-path --write ${action.subject.replace(".", process.cwd())}`.catch((err) => {
|
|
37
35
|
if (verbose) {
|
|
38
36
|
console.log(err);
|
|
39
37
|
}
|
|
@@ -42,8 +40,9 @@ export async function run(args, { watch = false, skipFormat = false, verbose = t
|
|
|
42
40
|
}
|
|
43
41
|
return result;
|
|
44
42
|
}
|
|
45
|
-
export async function generateAll(dir, { watch = false, skipFormat = false, verbose = true } = {}) {
|
|
43
|
+
export async function generateAll(dir, { watch = false, skipFormat = false, verbose = true, force = true } = {}) {
|
|
46
44
|
const files = fs.readdirSync(dir, { withFileTypes: true });
|
|
45
|
+
const documentModelStates = [];
|
|
47
46
|
for (const directory of files.filter((f) => f.isDirectory())) {
|
|
48
47
|
const documentModelPath = path.join(dir, directory.name, `${directory.name}.json`);
|
|
49
48
|
if (!fs.existsSync(documentModelPath)) {
|
|
@@ -51,10 +50,13 @@ export async function generateAll(dir, { watch = false, skipFormat = false, verb
|
|
|
51
50
|
}
|
|
52
51
|
try {
|
|
53
52
|
const documentModel = await loadDocumentModel(documentModelPath);
|
|
54
|
-
|
|
53
|
+
documentModelStates.push(documentModel);
|
|
54
|
+
await hygenGenerateDocumentModel(documentModel, dir, {
|
|
55
55
|
watch,
|
|
56
56
|
skipFormat,
|
|
57
57
|
verbose,
|
|
58
|
+
generateReducers: false,
|
|
59
|
+
force,
|
|
58
60
|
});
|
|
59
61
|
}
|
|
60
62
|
catch (error) {
|
|
@@ -63,8 +65,17 @@ export async function generateAll(dir, { watch = false, skipFormat = false, verb
|
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
}
|
|
68
|
+
const projectDir = path.dirname(dir);
|
|
69
|
+
const documentModelDir = path.basename(dir);
|
|
70
|
+
const generator = new TSMorphCodeGenerator(projectDir, documentModelStates, {
|
|
71
|
+
directories: { documentModelDir },
|
|
72
|
+
forceUpdate: force,
|
|
73
|
+
});
|
|
74
|
+
await generator.generateReducers();
|
|
66
75
|
}
|
|
67
|
-
export async function
|
|
76
|
+
export async function hygenGenerateDocumentModel(documentModelState, dir, { watch = false, skipFormat = false, verbose = true, generateReducers = true, force = true, } = {}) {
|
|
77
|
+
const projectDir = path.dirname(dir);
|
|
78
|
+
const documentModelDir = path.basename(dir);
|
|
68
79
|
// Generate the singular files for the document model logic
|
|
69
80
|
await run([
|
|
70
81
|
"powerhouse",
|
|
@@ -88,10 +99,14 @@ export async function generateDocumentModel(documentModelState, dir, { watch = f
|
|
|
88
99
|
module.name,
|
|
89
100
|
], { watch, skipFormat, verbose });
|
|
90
101
|
}
|
|
102
|
+
if (generateReducers) {
|
|
103
|
+
const generator = new TSMorphCodeGenerator(projectDir, [documentModelState], { directories: { documentModelDir }, forceUpdate: force });
|
|
104
|
+
await generator.generateReducers();
|
|
105
|
+
}
|
|
91
106
|
}
|
|
92
|
-
export async function
|
|
107
|
+
export async function hygenGenerateEditor(name, documentTypes, documentTypesMap, dir, documentModelsDir, { skipFormat = false, verbose = true } = {}, editorId) {
|
|
93
108
|
// Generate the singular files for the document model logic
|
|
94
|
-
|
|
109
|
+
const args = [
|
|
95
110
|
"powerhouse",
|
|
96
111
|
"generate-editor",
|
|
97
112
|
"--name",
|
|
@@ -104,9 +119,13 @@ export async function generateEditor(name, documentTypes, documentTypesMap, dir,
|
|
|
104
119
|
JSON.stringify(documentTypesMap),
|
|
105
120
|
"--document-models-dir",
|
|
106
121
|
documentModelsDir,
|
|
107
|
-
]
|
|
122
|
+
];
|
|
123
|
+
if (editorId) {
|
|
124
|
+
args.push("--editor-id", editorId);
|
|
125
|
+
}
|
|
126
|
+
await run(args, { skipFormat, verbose });
|
|
108
127
|
}
|
|
109
|
-
export async function
|
|
128
|
+
export async function hygenGenerateProcessor(name, documentTypes, outDir, type, { skipFormat = false, verbose = true } = {}) {
|
|
110
129
|
// Generate the singular files for the document model logic
|
|
111
130
|
const processorType = type === "relationalDb" ? "relationalDb" : "analytics";
|
|
112
131
|
await run([
|
|
@@ -120,13 +139,9 @@ export async function generateProcessor(name, documentTypes, documentTypesMap, o
|
|
|
120
139
|
outDir,
|
|
121
140
|
"--document-types",
|
|
122
141
|
documentTypes.join(","),
|
|
123
|
-
"--document-types-map",
|
|
124
|
-
JSON.stringify(documentTypesMap),
|
|
125
|
-
"--document-models-dir",
|
|
126
|
-
documentModelsDir,
|
|
127
142
|
], { skipFormat, verbose });
|
|
128
143
|
}
|
|
129
|
-
export async function
|
|
144
|
+
export async function hygenGenerateSubgraph(name, documentModel, dir, { skipFormat = false, verbose = true } = {}) {
|
|
130
145
|
const params = [
|
|
131
146
|
"powerhouse",
|
|
132
147
|
`generate-subgraph`,
|
|
@@ -155,8 +170,18 @@ export async function generateSubgraph(name, documentModel, dir, { skipFormat =
|
|
|
155
170
|
dir,
|
|
156
171
|
], { skipFormat, verbose });
|
|
157
172
|
}
|
|
173
|
+
else {
|
|
174
|
+
await run([
|
|
175
|
+
"powerhouse",
|
|
176
|
+
"generate-custom-subgraph",
|
|
177
|
+
"--subgraph",
|
|
178
|
+
name,
|
|
179
|
+
"--root-dir",
|
|
180
|
+
dir,
|
|
181
|
+
], { skipFormat, verbose });
|
|
182
|
+
}
|
|
158
183
|
}
|
|
159
|
-
export async function
|
|
184
|
+
export async function hygenGenerateImportScript(name, dir, { skipFormat = false, verbose = true } = {}) {
|
|
160
185
|
// Generate the singular files for the document model logic
|
|
161
186
|
await run([
|
|
162
187
|
"powerhouse",
|
|
@@ -169,8 +194,35 @@ export async function generateImportScript(name, dir, { skipFormat = false, verb
|
|
|
169
194
|
dir,
|
|
170
195
|
], { skipFormat, verbose });
|
|
171
196
|
}
|
|
172
|
-
|
|
197
|
+
/*
|
|
198
|
+
name: string,
|
|
199
|
+
dir: string,
|
|
200
|
+
{ skipFormat = false } = {},
|
|
201
|
+
appId?: string,
|
|
202
|
+
editorOptions?: {
|
|
203
|
+
documentTypes: string[];
|
|
204
|
+
},
|
|
205
|
+
*/
|
|
206
|
+
export async function hygenGenerateDriveEditor(options) {
|
|
207
|
+
const { name, dir, appId, skipFormat, allowedDocumentTypes, isDragAndDropEnabled, } = options;
|
|
208
|
+
const allowedDocumentTypesString = JSON.stringify(allowedDocumentTypes && allowedDocumentTypes.length > 0
|
|
209
|
+
? allowedDocumentTypes.split(",")
|
|
210
|
+
: []);
|
|
173
211
|
// Generate the drive editor files
|
|
174
|
-
|
|
212
|
+
const args = [
|
|
213
|
+
"powerhouse",
|
|
214
|
+
"generate-drive-editor",
|
|
215
|
+
"--name",
|
|
216
|
+
name,
|
|
217
|
+
"--root-dir",
|
|
218
|
+
dir,
|
|
219
|
+
"--app-id",
|
|
220
|
+
appId,
|
|
221
|
+
"--allowed-document-types",
|
|
222
|
+
allowedDocumentTypesString,
|
|
223
|
+
"--is-drag-and-drop-enabled",
|
|
224
|
+
isDragAndDropEnabled ? "true" : "false",
|
|
225
|
+
];
|
|
226
|
+
await run(args, { skipFormat });
|
|
175
227
|
}
|
|
176
228
|
//# sourceMappingURL=hygen.js.map
|