@powerhousedao/codegen 0.49.2-dev.0 → 0.49.2-dev.2

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 (22) hide show
  1. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/resolvers.esm.t +1 -1
  2. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +49 -0
  3. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +214 -0
  4. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +127 -0
  5. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +44 -0
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +96 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +85 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +68 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +35 -0
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +35 -0
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +20 -0
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.esm.t +9 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.inject_export.esm.t +7 -0
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +8 -0
  15. package/dist/src/codegen/hygen.d.ts +3 -0
  16. package/dist/src/codegen/hygen.d.ts.map +1 -1
  17. package/dist/src/codegen/hygen.js +4 -0
  18. package/dist/src/codegen/index.d.ts +1 -0
  19. package/dist/src/codegen/index.d.ts.map +1 -1
  20. package/dist/src/codegen/index.js +6 -1
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/package.json +3 -2
@@ -0,0 +1,35 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/hooks/useSelectedFolderChildren.ts"
3
+ unless_exists: true
4
+ ---
5
+ import { useMemo } from 'react';
6
+ import type { UiFileNode, UiFolderNode } from '@powerhousedao/design-system';
7
+
8
+ interface SelectedFolderChildren {
9
+ folders: UiFolderNode[];
10
+ files: UiFileNode[];
11
+ }
12
+
13
+ export function useSelectedFolderChildren(
14
+ selectedNodeId: string | undefined,
15
+ folders: UiFolderNode[],
16
+ files: UiFileNode[]
17
+ ): SelectedFolderChildren {
18
+ return useMemo(() => {
19
+ if (!selectedNodeId) {
20
+ // Show root-level items when no folder is selected
21
+ return {
22
+ folders: folders.filter(f => !f.parentFolder),
23
+ files: files.filter(f => !f.parentFolder)
24
+ };
25
+ }
26
+
27
+ const selectedFolder = folders.find(f => f.id === selectedNodeId);
28
+ if (!selectedFolder) return { folders: [], files: [] };
29
+
30
+ return {
31
+ folders: folders.filter(f => f.parentFolder === selectedFolder.id),
32
+ files: files.filter(f => f.parentFolder === selectedFolder.id)
33
+ };
34
+ }, [selectedNodeId, folders, files]);
35
+ }
@@ -0,0 +1,35 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/hooks/useTransformedNodes.ts"
3
+ unless_exists: true
4
+ ---
5
+ import { useMemo } from 'react';
6
+ import type { Node, FileNode } from 'document-drive';
7
+ import type { UiFileNode, UiFolderNode } from '@powerhousedao/design-system';
8
+
9
+ export function useTransformedNodes(nodes: Node[], driveId: string) {
10
+ return useMemo(() => {
11
+ return nodes.map(node => {
12
+ const isFolder = 'kind' in node && node.kind === 'folder';
13
+
14
+ if (isFolder) {
15
+ return {
16
+ id: node.id,
17
+ name: node.name,
18
+ kind: 'FOLDER' as const,
19
+ parentFolder: node.parentFolder || '',
20
+ driveId,
21
+ children: nodes.filter(n => n.parentFolder === node.id).map(n => n.id)
22
+ };
23
+ } else {
24
+ return {
25
+ id: node.id,
26
+ name: node.name,
27
+ kind: 'FILE' as const,
28
+ parentFolder: node.parentFolder || '',
29
+ driveId,
30
+ documentType: (node as FileNode).documentType
31
+ };
32
+ }
33
+ }).filter(Boolean) as (UiFileNode | UiFolderNode)[];
34
+ }, [nodes, driveId]);
35
+ }
@@ -0,0 +1,20 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { type EditorModule } from "document-model";
6
+ import Editor from "./editor.js";
7
+ import { type DocumentDriveDocument } from "document-drive";
8
+
9
+ export const module: EditorModule<DocumentDriveDocument> = {
10
+ Component: Editor,
11
+ documentTypes: ["powerhouse/document-drive"],
12
+ config: {
13
+ id: "<%= name %>",
14
+ disableExternalControls: true,
15
+ documentToolbarEnabled: true,
16
+ showSwitchboardLink: true,
17
+ },
18
+ };
19
+
20
+ export default module;
@@ -0,0 +1,9 @@
1
+ ---
2
+ to: "<%= rootDir %>/index.ts"
3
+ unless_exists: true
4
+ ---
5
+ /**
6
+ * This is a scaffold file meant for customization.
7
+ * Delete the file and run the code generator again to have it reset
8
+ */
9
+
@@ -0,0 +1,7 @@
1
+ ---
2
+ inject: true
3
+ append: true
4
+ to: "<%= rootDir %>/index.ts"
5
+ skip_if: "<%= h.changeCase.pascal(name) %>"
6
+ ---
7
+ export { module as <%= h.changeCase.pascal(name) %> } from './<%= h.changeCase.param(name) %>/index.js';
@@ -0,0 +1,8 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/types/css.d.ts"
3
+ unless_exists: true
4
+ ---
5
+ declare module '*.css' {
6
+ const content: { [className: string]: string };
7
+ export default content;
8
+ }
@@ -20,4 +20,7 @@ export declare function generateSubgraph(name: string, documentModel: DocumentMo
20
20
  export declare function generateImportScript(name: string, dir: string, { skipFormat }?: {
21
21
  skipFormat?: boolean | undefined;
22
22
  }): Promise<void>;
23
+ export declare function generateDriveEditor(name: string, dir: string, { skipFormat }?: {
24
+ skipFormat?: boolean | undefined;
25
+ }): Promise<void>;
23
26
  //# 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;AA6CnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoB3C;AAED,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoC3C;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;;CAAK,iBAoB5B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,IAAI,SAAc,EAClB,EAAE,UAAkB,EAAE;;CAAK,iBAuB5B;AAoBD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAwD5B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAgB5B"}
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;AA6CnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoB3C;AAED,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoC3C;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;;CAAK,iBAoB5B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,IAAI,SAAc,EAClB,EAAE,UAAkB,EAAE;;CAAK,iBAuB5B;AAoBD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAwD5B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAgB5B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAO5B"}
@@ -187,3 +187,7 @@ export async function generateImportScript(name, dir, { skipFormat = false } = {
187
187
  dir,
188
188
  ], { skipFormat });
189
189
  }
190
+ export async function generateDriveEditor(name, dir, { skipFormat = false } = {}) {
191
+ // Generate the drive editor files
192
+ await run(["powerhouse", "generate-drive-editor", "--name", name, "--root-dir", dir], { skipFormat });
193
+ }
@@ -9,4 +9,5 @@ export declare function generateEditor(name: string, documentTypes: string[], co
9
9
  export declare function generateSubgraph(name: string, file: string | null, config: PowerhouseConfig): Promise<void>;
10
10
  export declare function generateProcessor(name: string, type: "analytics" | "operational", documentTypes: string[], config: PowerhouseConfig): Promise<void>;
11
11
  export declare function generateImportScript(name: string, config: PowerhouseConfig): Promise<void>;
12
+ export declare function generateDriveEditor(name: string, config: PowerhouseConfig): Promise<void>;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA+CzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CACrC,CAAC;AAyDF,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,iBAItD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,iBA4B5E;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAwBzB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,gBAAgB,iBAQzB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,aAAa,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAqBzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAGzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAgDzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CACrC,CAAC;AAyDF,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,iBAItD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,iBA4B5E;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAwBzB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,gBAAgB,iBAQzB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,aAAa,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAqBzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAGzB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAKzB"}
@@ -3,7 +3,7 @@ import { paramCase, pascalCase } from "change-case";
3
3
  import fs from "node:fs";
4
4
  import { join, resolve } from "path";
5
5
  import { generateSchema, generateSchemas } from "./graphql.js";
6
- import { generateEditor as _generateEditor, generateImportScript as _generateImportScript, generateProcessor as _generateProcessor, generateSubgraph as _generateSubgraph, generateAll, generateDocumentModel, } from "./hygen.js";
6
+ import { generateDriveEditor as _generateDriveEditor, generateEditor as _generateEditor, generateImportScript as _generateImportScript, generateProcessor as _generateProcessor, generateSubgraph as _generateSubgraph, generateAll, generateDocumentModel, } from "./hygen.js";
7
7
  import { loadDocumentModel } from "./utils.js";
8
8
  function generateGraphqlSchema(documentModel) {
9
9
  const spec = documentModel.specifications[documentModel.specifications.length - 1];
@@ -120,3 +120,8 @@ export async function generateProcessor(name, type, documentTypes, config) {
120
120
  export async function generateImportScript(name, config) {
121
121
  return _generateImportScript(name, config.importScriptsDir, config);
122
122
  }
123
+ export async function generateDriveEditor(name, config) {
124
+ return _generateDriveEditor(name, config.editorsDir, {
125
+ skipFormat: config.skipFormat,
126
+ });
127
+ }