@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.
Files changed (180) hide show
  1. package/README.md +0 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +2 -2
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +8 -2
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +69 -54
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +10 -5
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -7
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +20 -8
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +19 -26
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +3 -3
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +1 -1
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +2 -2
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +52 -27
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +21 -20
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +64 -51
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +4 -10
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +39 -28
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +138 -223
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +95 -72
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +10 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +7 -71
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +5 -10
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +12 -0
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +103 -18
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/hooks.esm.t +16 -0
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +5 -12
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +28 -15
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
  47. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
  48. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
  49. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
  55. package/dist/src/codegen/generate.d.ts +33 -0
  56. package/dist/src/codegen/generate.d.ts.map +1 -0
  57. package/dist/src/codegen/generate.js +202 -0
  58. package/dist/src/codegen/generate.js.map +1 -0
  59. package/dist/src/codegen/graphql.d.ts +7 -3
  60. package/dist/src/codegen/graphql.d.ts.map +1 -1
  61. package/dist/src/codegen/graphql.js +29 -6
  62. package/dist/src/codegen/graphql.js.map +1 -1
  63. package/dist/src/codegen/hygen.d.ts +19 -11
  64. package/dist/src/codegen/hygen.d.ts.map +1 -1
  65. package/dist/src/codegen/hygen.js +71 -19
  66. package/dist/src/codegen/hygen.js.map +1 -1
  67. package/dist/src/codegen/index.d.ts +6 -33
  68. package/dist/src/codegen/index.d.ts.map +1 -1
  69. package/dist/src/codegen/index.js +6 -172
  70. package/dist/src/codegen/index.js.map +1 -1
  71. package/dist/src/codegen/types.d.ts +9 -0
  72. package/dist/src/codegen/types.d.ts.map +1 -0
  73. package/dist/src/codegen/types.js +2 -0
  74. package/dist/src/codegen/types.js.map +1 -0
  75. package/dist/src/codegen/utils.d.ts +5 -2
  76. package/dist/src/codegen/utils.d.ts.map +1 -1
  77. package/dist/src/codegen/utils.js +42 -4
  78. package/dist/src/codegen/utils.js.map +1 -1
  79. package/dist/src/create-lib/checkout-project.d.ts +13 -0
  80. package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
  81. package/dist/src/create-lib/checkout-project.js +47 -0
  82. package/dist/src/create-lib/checkout-project.js.map +1 -0
  83. package/dist/src/create-lib/create-project.d.ts +9 -5
  84. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  85. package/dist/src/create-lib/create-project.js +37 -30
  86. package/dist/src/create-lib/create-project.js.map +1 -1
  87. package/dist/src/create-lib/feature-flags.d.ts +4 -0
  88. package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
  89. package/dist/src/create-lib/feature-flags.js +4 -0
  90. package/dist/src/create-lib/feature-flags.js.map +1 -0
  91. package/dist/src/create-lib/index.d.ts +1 -0
  92. package/dist/src/create-lib/index.d.ts.map +1 -1
  93. package/dist/src/create-lib/index.js +1 -0
  94. package/dist/src/create-lib/index.js.map +1 -1
  95. package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
  96. package/dist/src/create-lib/utils.d.ts.map +1 -0
  97. package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
  98. package/dist/src/create-lib/utils.js.map +1 -0
  99. package/dist/src/index.d.ts +5 -0
  100. package/dist/src/index.d.ts.map +1 -0
  101. package/dist/src/index.js +5 -0
  102. package/dist/src/index.js.map +1 -0
  103. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +9 -0
  104. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -0
  105. package/dist/src/ts-morph-generator/core/FileGenerator.js +9 -0
  106. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -0
  107. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +38 -0
  108. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -0
  109. package/dist/src/ts-morph-generator/core/GenerationContext.js +2 -0
  110. package/dist/src/ts-morph-generator/core/GenerationContext.js.map +1 -0
  111. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
  112. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
  113. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +140 -0
  114. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
  115. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +19 -0
  116. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -0
  117. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +113 -0
  118. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -0
  119. package/dist/src/ts-morph-generator/index.d.ts +4 -0
  120. package/dist/src/ts-morph-generator/index.d.ts.map +1 -0
  121. package/dist/src/ts-morph-generator/index.js +4 -0
  122. package/dist/src/ts-morph-generator/index.js.map +1 -0
  123. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +13 -0
  124. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -0
  125. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +45 -0
  126. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +1 -0
  127. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +14 -0
  128. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -0
  129. package/dist/src/ts-morph-generator/utilities/ImportManager.js +40 -0
  130. package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -0
  131. package/dist/src/ts-morph-generator/utilities/index.d.ts +3 -0
  132. package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -0
  133. package/dist/src/ts-morph-generator/utilities/index.js +3 -0
  134. package/dist/src/ts-morph-generator/utilities/index.js.map +1 -0
  135. package/dist/src/utils/index.d.ts +0 -1
  136. package/dist/src/utils/index.d.ts.map +1 -1
  137. package/dist/src/utils/index.js +0 -1
  138. package/dist/src/utils/index.js.map +1 -1
  139. package/dist/src/utils/validation.d.ts +6 -6
  140. package/dist/src/utils/validation.d.ts.map +1 -1
  141. package/dist/src/utils/validation.js +2 -2
  142. package/dist/src/utils/validation.js.map +1 -1
  143. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  144. package/package.json +26 -27
  145. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  146. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  147. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
  148. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
  149. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customReducers.esm.t +0 -20
  150. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -24
  151. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  152. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
  153. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
  154. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
  155. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
  156. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
  157. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
  158. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
  159. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
  160. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
  161. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
  162. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
  163. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
  164. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  165. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
  166. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  167. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  168. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
  169. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
  170. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  171. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
  172. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
  173. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
  174. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
  175. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  176. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  177. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
  178. package/dist/src/utils/package-manager.d.ts.map +0 -1
  179. package/dist/src/utils/package-manager.js.map +0 -1
  180. package/dist/tsconfig.hygen.tsbuildinfo +0 -1
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- params: ({ args }) => {
5
- return {
6
- rootDir: args.rootDir,
7
- name: args.name,
8
- loadFromFile: args.loadFromFile,
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 { type CodegenConfig } from "@graphql-codegen/cli";
2
- import { type TypeScriptPluginConfig } from "@graphql-codegen/typescript";
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<any>;
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,KAAK,aAAa,EAAY,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,KAAK,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,iBAc3E,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb;;;;CAA0D,iBAoB3D,CAAC"}
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
- return generate(config, !verbose);
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":"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"}
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,45 @@
1
- import { type DocumentModelState } from "document-model";
2
- import { type DocumentTypesMap } from "./index.js";
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 generateDocumentModel(documentModelState: DocumentModelState, dir: string, { watch, skipFormat, verbose }?: {
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 generateEditor(name: string, documentTypes: string[], documentTypesMap: DocumentTypesMap, dir: string, documentModelsDir: string, { skipFormat, verbose }?: {
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 generateProcessor(name: string, documentTypes: string[], documentTypesMap: DocumentTypesMap, outDir: string, documentModelsDir: string, type: "analytics" | "relationalDb", { skipFormat, verbose }?: {
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 generateSubgraph(name: string, documentModel: DocumentModelState | null, dir: string, { skipFormat, verbose }?: {
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 generateImportScript(name: string, dir: string, { skipFormat, verbose }?: {
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 generateDriveEditor(name: string, dir: string, { skipFormat }?: {
35
- skipFormat?: boolean | undefined;
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":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASnD,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,KAAa,EAAE,UAAkB,EAAE,OAAc,EAAE;;;;CAAK,uDAuC3D;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE,OAAc,EAAE;;;;CAAK,iBA0B3D;AAED,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE,OAAc,EAAE;;;;CAAK,iBAoC3D;AAED,wBAAsB,cAAc,CAClC,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,iBAoB5C;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,WAAW,GAAG,cAAc,EAClC,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAuB5C;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAoC5C;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE,OAAc,EAAE;;;CAAK,iBAgB5C;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAO5B"}
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
- await generateDocumentModel(documentModel, dir, {
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 generateDocumentModel(documentModelState, dir, { watch = false, skipFormat = false, verbose = true } = {}) {
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 generateEditor(name, documentTypes, documentTypesMap, dir, documentModelsDir, { skipFormat = false, verbose = true } = {}) {
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
- await run([
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
- ], { skipFormat, verbose });
122
+ ];
123
+ if (editorId) {
124
+ args.push("--editor-id", editorId);
125
+ }
126
+ await run(args, { skipFormat, verbose });
108
127
  }
109
- export async function generateProcessor(name, documentTypes, documentTypesMap, outDir, documentModelsDir, type, { skipFormat = false, verbose = true } = {}) {
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 generateSubgraph(name, documentModel, dir, { skipFormat = false, verbose = true } = {}) {
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 generateImportScript(name, dir, { skipFormat = false, verbose = true } = {}) {
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
- export async function generateDriveEditor(name, dir, { skipFormat = false } = {}) {
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
- await run(["powerhouse", "generate-drive-editor", "--name", name, "--root-dir", dir], { skipFormat });
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