@powerhousedao/codegen 0.49.2-dev.1 → 0.49.2-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +32 -8
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +14 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +49 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +214 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +127 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +44 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +96 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +85 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +68 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +35 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +35 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +20 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/{generate-documents-subgraph → generate-drive-editor}/lib.inject_export.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +8 -0
- package/dist/src/codegen/hygen.d.ts +3 -0
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +4 -27
- package/dist/src/codegen/index.d.ts +1 -0
- package/dist/src/codegen/index.d.ts.map +1 -1
- package/dist/src/codegen/index.js +6 -1
- package/dist/tsconfig.hygen.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts +0 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.esm.t +0 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.js +0 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/resolvers.esm.t +0 -40
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/schema.esm.t +0 -12
- /package/dist/src/codegen/.hygen/templates/powerhouse/{generate-documents-subgraph → generate-drive-editor}/lib.esm.t +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { type EditorProps, hashKey } from "document-model";
|
|
6
|
+
import { type DocumentDriveDocument, addFolder, deleteNode, updateNode, generateNodesCopy, copyNode } from "document-drive";
|
|
7
|
+
import { WagmiContext } from "@powerhousedao/design-system";
|
|
8
|
+
import { DriveExplorer } from "./components/DriveExplorer.js";
|
|
9
|
+
import { useCallback } from "react";
|
|
10
|
+
|
|
11
|
+
export type IProps = EditorProps<DocumentDriveDocument>;
|
|
12
|
+
|
|
13
|
+
export default function Editor(props: IProps) {
|
|
14
|
+
const { dispatch, context } = props;
|
|
15
|
+
|
|
16
|
+
const onAddFolder = useCallback((name: string, parentFolder?: string) => {
|
|
17
|
+
dispatch(addFolder({
|
|
18
|
+
id: hashKey(),
|
|
19
|
+
name,
|
|
20
|
+
parentFolder,
|
|
21
|
+
}));
|
|
22
|
+
}, [dispatch]);
|
|
23
|
+
|
|
24
|
+
const onDeleteNode = useCallback((nodeId: string) => {
|
|
25
|
+
dispatch(deleteNode({ id: nodeId }));
|
|
26
|
+
}, [dispatch]);
|
|
27
|
+
|
|
28
|
+
const renameNode = useCallback((nodeId: string, name: string) => {
|
|
29
|
+
dispatch(updateNode({ id: nodeId, name }));
|
|
30
|
+
}, [dispatch]);
|
|
31
|
+
|
|
32
|
+
const onCopyNode = useCallback((nodeId: string, targetName: string, parentId?: string) => {
|
|
33
|
+
const generateId = () => hashKey();
|
|
34
|
+
|
|
35
|
+
const copyNodesInput = generateNodesCopy({
|
|
36
|
+
srcId: nodeId,
|
|
37
|
+
targetParentFolder: parentId,
|
|
38
|
+
targetName,
|
|
39
|
+
}, generateId, props.document.state.global.nodes);
|
|
40
|
+
|
|
41
|
+
const copyNodesAction = copyNodesInput.map(input => {
|
|
42
|
+
return copyNode(input);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
for (const copyNodeAction of copyNodesAction) {
|
|
46
|
+
dispatch(copyNodeAction);
|
|
47
|
+
}
|
|
48
|
+
}, [dispatch, props.document.state.global.nodes]);
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<div
|
|
52
|
+
className="new-drive-explorer"
|
|
53
|
+
style={{ height: "100%" }}
|
|
54
|
+
>
|
|
55
|
+
<WagmiContext>
|
|
56
|
+
<DriveExplorer
|
|
57
|
+
driveId={props.document.state.global.id}
|
|
58
|
+
nodes={props.document.state.global.nodes}
|
|
59
|
+
onAddFolder={onAddFolder}
|
|
60
|
+
onDeleteNode={onDeleteNode}
|
|
61
|
+
renameNode={renameNode}
|
|
62
|
+
onCopyNode={onCopyNode}
|
|
63
|
+
context={context}
|
|
64
|
+
/>
|
|
65
|
+
</WagmiContext>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
@@ -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;
|
|
@@ -4,4 +4,4 @@ append: true
|
|
|
4
4
|
to: "<%= rootDir %>/index.ts"
|
|
5
5
|
skip_if: "<%= h.changeCase.pascal(name) %>"
|
|
6
6
|
---
|
|
7
|
-
export
|
|
7
|
+
export { module as <%= h.changeCase.pascal(name) %> } from './<%= h.changeCase.param(name) %>/index.js';
|
|
@@ -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;
|
|
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;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAoC5B;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"}
|
|
@@ -117,34 +117,7 @@ export async function generateProcessor(name, documentTypes, documentTypesMap, d
|
|
|
117
117
|
documentModelsDir,
|
|
118
118
|
], { skipFormat });
|
|
119
119
|
}
|
|
120
|
-
async function generateDocumentSubgraph(name, documentModel, dir, { skipFormat = false } = {}) {
|
|
121
|
-
const params = [
|
|
122
|
-
"powerhouse",
|
|
123
|
-
`generate-documents-subgraph`,
|
|
124
|
-
"--name",
|
|
125
|
-
name,
|
|
126
|
-
"--pascalName",
|
|
127
|
-
pascalCase(name),
|
|
128
|
-
"--root-dir",
|
|
129
|
-
dir,
|
|
130
|
-
];
|
|
131
|
-
}
|
|
132
120
|
export async function generateSubgraph(name, documentModel, dir, { skipFormat = false } = {}) {
|
|
133
|
-
if (name === "document") {
|
|
134
|
-
await run([
|
|
135
|
-
"powerhouse",
|
|
136
|
-
"generate-documents-subgraph",
|
|
137
|
-
"--subgraph",
|
|
138
|
-
name,
|
|
139
|
-
"--root-dir",
|
|
140
|
-
dir,
|
|
141
|
-
"--name",
|
|
142
|
-
name,
|
|
143
|
-
"--pascalName",
|
|
144
|
-
pascalCase(name),
|
|
145
|
-
], { skipFormat });
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
121
|
const params = [
|
|
149
122
|
"powerhouse",
|
|
150
123
|
`generate-subgraph`,
|
|
@@ -187,3 +160,7 @@ export async function generateImportScript(name, dir, { skipFormat = false } = {
|
|
|
187
160
|
dir,
|
|
188
161
|
], { skipFormat });
|
|
189
162
|
}
|
|
163
|
+
export async function generateDriveEditor(name, dir, { skipFormat = false } = {}) {
|
|
164
|
+
// Generate the drive editor files
|
|
165
|
+
await run(["powerhouse", "generate-drive-editor", "--name", name, "--root-dir", dir], { skipFormat });
|
|
166
|
+
}
|
|
@@ -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;
|
|
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
|
+
}
|