@powerhousedao/codegen 4.1.0-dev.8 → 4.1.0-staging.1

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 (64) hide show
  1. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts +14 -0
  2. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts.map +1 -0
  3. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +12 -0
  4. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js.map +1 -0
  5. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +3 -3
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +96 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +3 -0
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +2 -2
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +11 -10
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +2 -2
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +4 -0
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +1 -1
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +13 -1
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +1 -1
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +59 -50
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +3 -3
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +38 -24
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +244 -181
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +53 -74
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +44 -26
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +22 -58
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts +16 -0
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts.map +1 -0
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +2 -3
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +12 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js.map +1 -0
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +2 -0
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +1 -1
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +1 -1
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +1 -0
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +1 -1
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +2 -1
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +7 -5
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +3 -2
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +6 -5
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +0 -32
  40. package/dist/src/codegen/hygen.d.ts +6 -4
  41. package/dist/src/codegen/hygen.d.ts.map +1 -1
  42. package/dist/src/codegen/hygen.js +35 -8
  43. package/dist/src/codegen/hygen.js.map +1 -1
  44. package/dist/src/codegen/index.d.ts +5 -3
  45. package/dist/src/codegen/index.d.ts.map +1 -1
  46. package/dist/src/codegen/index.js +72 -5
  47. package/dist/src/codegen/index.js.map +1 -1
  48. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +8 -6
  49. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
  50. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +1 -0
  51. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
  52. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +9 -7
  53. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
  54. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts +3 -0
  55. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +1 -1
  56. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js +85 -14
  57. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +1 -1
  58. package/dist/tsconfig.hygen.tsbuildinfo +1 -1
  59. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  60. package/package.json +13 -6
  61. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
  62. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
  63. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
  64. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
@@ -2,123 +2,102 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/EditorContainer.tsx"
3
3
  unless_exists: true
4
4
  ---
5
+ import { getRevisionFromDate, useTimelineItems } from "@powerhousedao/common";
5
6
  import {
6
- useDriveContext,
7
- exportDocument,
8
- type User,
9
- type DriveEditorContext,
10
- } from "@powerhousedao/reactor-browser";
11
- import {
12
- type EditorContext,
13
- type DocumentModelModule,
14
- type EditorModule,
15
- type EditorProps,
16
- type PHDocument,
17
- } from "document-model";
18
- import {
7
+ DefaultEditorLoader,
19
8
  DocumentToolbar,
20
9
  RevisionHistory,
21
- DefaultEditorLoader,
22
10
  type TimelineItem,
23
11
  } from "@powerhousedao/design-system";
24
- import { useTimelineItems, getRevisionFromDate } from "@powerhousedao/common";
25
- import { useState, Suspense, type FC, useCallback } from "react";
26
-
27
- export interface EditorContainerProps {
28
- driveId: string;
29
- documentId: string;
30
- documentType: string;
31
- onClose: () => void;
32
- title: string;
33
- context: Omit<DriveEditorContext, "getDocumentRevision"> & Pick<EditorContext, "getDocumentRevision">;
34
- documentModelModule: DocumentModelModule<PHDocument>;
35
- editorModule: EditorModule;
36
- }
37
-
38
- export const EditorContainer: React.FC<EditorContainerProps> = (props) => {
39
- const {
40
- title,
41
- driveId,
42
- context,
43
- onClose,
44
- documentId,
45
- documentType,
46
- editorModule,
47
- documentModelModule,
48
- } = props;
12
+ import {
13
+ exportFile,
14
+ useEditorModuleById,
15
+ useSelectedDocument,
16
+ useSelectedDrive,
17
+ } from "@powerhousedao/reactor-browser";
18
+ import { Suspense, useCallback, useState } from "react";
49
19
 
50
- const [selectedTimelineItem, setSelectedTimelineItem] = useState<TimelineItem | null>(null);
20
+ /**
21
+ * Document editor container that wraps individual document editors.
22
+ * Handles document loading, toolbar, revision history, and dynamic editor loading.
23
+ * Customize toolbar actions and editor context here.
24
+ */
25
+ export const EditorContainer = (props: { handleClose: () => void }) => {
26
+ const { handleClose } = props;
27
+ // UI state for revision history and timeline
28
+ const [selectedTimelineItem, setSelectedTimelineItem] =
29
+ useState<TimelineItem | null>(null);
51
30
  const [showRevisionHistory, setShowRevisionHistory] = useState(false);
52
- const { useDocumentEditorProps } = useDriveContext();
53
-
54
- const user = context.user as User | undefined;
55
-
56
- const { dispatch, error, document } = useDocumentEditorProps({
57
- documentId,
58
- documentType,
59
- driveId,
60
- documentModelModule,
61
- user,
62
- });
63
-
31
+ const [selectedDocument, dispatch] = useSelectedDocument();
32
+ const [selectedDrive] = useSelectedDrive();
33
+ // Timeline data for revision history
64
34
  const timelineItems = useTimelineItems(
65
- documentId,
66
- document?.header.createdAtUtcIso,
67
- driveId,
35
+ selectedDocument?.header.id,
36
+ selectedDocument?.header.createdAtUtcIso,
37
+ selectedDrive?.header.id,
38
+ );
39
+ const editorModule = useEditorModuleById(
40
+ selectedDocument?.header.meta?.preferredEditor,
68
41
  );
69
42
 
43
+ // Document export functionality - customize export behavior here
70
44
  const onExport = useCallback(async () => {
71
- if (document) {
72
- const ext = documentModelModule.documentModel.extension;
73
- await exportDocument(document, title, ext);
45
+ if (selectedDocument) {
46
+ await exportFile(selectedDocument);
74
47
  }
75
- }, [document?.header.revision.global, document?.header.revision.local]);
48
+ }, [selectedDocument]);
76
49
 
50
+ // Loading state component
77
51
  const loadingContent = (
78
- <div className="flex-1 flex justify-center items-center h-full">
52
+ <div className="flex h-full flex-1 items-center justify-center">
79
53
  <DefaultEditorLoader />
80
54
  </div>
81
55
  );
82
56
 
83
- if (!document) return loadingContent;
57
+ if (!selectedDocument) return loadingContent;
84
58
 
85
- const EditorComponent = editorModule.Component as FC<EditorProps<PHDocument>>;
59
+ // Dynamically load the appropriate editor component for this document type
60
+ const EditorComponent = editorModule?.Component;
61
+ if (!EditorComponent) return loadingContent;
86
62
 
87
63
  return showRevisionHistory ? (
64
+ // Revision history view
88
65
  <RevisionHistory
89
- documentId={documentId}
90
- documentTitle={title}
91
- globalOperations={document.operations.global}
92
- key={documentId}
93
- localOperations={document.operations.local}
66
+ documentId={selectedDocument.header.id}
67
+ documentTitle={selectedDocument.header.name}
68
+ globalOperations={selectedDocument.operations.global}
69
+ key={selectedDocument.header.id}
70
+ localOperations={selectedDocument.operations.local}
94
71
  onClose={() => setShowRevisionHistory(false)}
95
72
  />
96
73
  ) : (
74
+ // Main editor view
97
75
  <Suspense fallback={loadingContent}>
76
+ {/* Document toolbar - customize available actions here */}
98
77
  <DocumentToolbar
99
- onClose={onClose}
78
+ onClose={handleClose}
100
79
  onExport={onExport}
101
80
  onShowRevisionHistory={() => setShowRevisionHistory(true)}
102
- onSwitchboardLinkClick={() => {}}
103
- title={title}
81
+ onSwitchboardLinkClick={() => {}} // Customize switchboard integration
82
+ title={selectedDocument.header.name}
104
83
  timelineButtonVisible={editorModule.config.timelineEnabled}
105
84
  timelineItems={timelineItems.data}
106
85
  onTimelineItemClick={setSelectedTimelineItem}
107
86
  />
87
+ {/* Dynamic editor component based on document type */}
108
88
  <EditorComponent
109
89
  context={{
110
- ...context,
111
90
  readMode: !!selectedTimelineItem,
112
91
  selectedTimelineRevision: getRevisionFromDate(
113
92
  selectedTimelineItem?.startDate,
114
93
  selectedTimelineItem?.endDate,
115
- document.operations.global,
94
+ selectedDocument.operations.global,
116
95
  ),
117
96
  }}
118
97
  dispatch={dispatch}
119
98
  document={document}
120
- error={error}
99
+ error={console.error}
121
100
  />
122
101
  </Suspense>
123
102
  );
124
- };
103
+ };
@@ -2,20 +2,32 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/FolderTree.tsx"
3
3
  unless_exists: true
4
4
  ---
5
- import { useState } from 'react';
6
- import type { UiFolderNode } from "@powerhousedao/design-system";
5
+ import type { FolderNode } from "document-drive";
6
+ import { useState } from "react";
7
7
 
8
8
  interface FolderTreeProps {
9
- folders: UiFolderNode[];
9
+ folders: FolderNode[];
10
10
  selectedNodeId?: string;
11
- onSelectNode: (node: UiFolderNode) => void;
11
+ onSelectNode: (nodeId: string | undefined) => void;
12
12
  }
13
13
 
14
- export function FolderTree({ folders, selectedNodeId, onSelectNode }: FolderTreeProps) {
15
- const [expandedFolders, setExpandedFolders] = useState<Set<string>>(new Set());
14
+ /**
15
+ * Hierarchical folder tree navigation component.
16
+ * Displays folders in a tree structure with expand/collapse functionality.
17
+ */
18
+ export function FolderTree({
19
+ folders,
20
+ selectedNodeId,
21
+ onSelectNode,
22
+ }: FolderTreeProps) {
23
+ // Track which folders are expanded
24
+ const [expandedFolders, setExpandedFolders] = useState<Set<string>>(
25
+ new Set(),
26
+ );
16
27
 
28
+ // Toggle folder expansion state
17
29
  const toggleFolder = (folderId: string) => {
18
- setExpandedFolders(prev => {
30
+ setExpandedFolders((prev) => {
19
31
  const next = new Set(prev);
20
32
  if (next.has(folderId)) {
21
33
  next.delete(folderId);
@@ -26,38 +38,43 @@ export function FolderTree({ folders, selectedNodeId, onSelectNode }: FolderTree
26
38
  });
27
39
  };
28
40
 
29
- const renderFolder = (folder: UiFolderNode, level: number = 0) => {
30
- const hasChildren = folders.some(f => f.parentFolder === folder.id);
41
+ // Recursive function to render folder tree structure
42
+ const renderFolder = (folder: FolderNode, level = 0) => {
43
+ const hasChildren = folders.some((f) => f.parentFolder === folder.id);
31
44
  const isExpanded = expandedFolders.has(folder.id);
32
45
  const isSelected = selectedNodeId === folder.id;
33
46
 
34
47
  return (
35
48
  <div key={folder.id}>
36
49
  <div
37
- className={`flex items-center py-1 px-2 cursor-pointer hover:bg-gray-100 rounded ${
38
- isSelected ? 'bg-gray-100' : ''
50
+ className={`flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${
51
+ isSelected ? "bg-blue-100 text-blue-800" : ""
39
52
  }`}
40
- style={{ paddingLeft: `${level * 16 + 8}px` }}
41
- onClick={() => onSelectNode(folder)}
53
+ style={{ paddingLeft: `${level * 16 + 8}px` }} // Customize indentation here
54
+ onClick={() => onSelectNode(folder.id)}
42
55
  >
56
+ {/* Expand/collapse button for folders with children */}
43
57
  {hasChildren && (
44
58
  <button
45
- className="w-4 h-4 mr-1 flex items-center justify-center"
59
+ className="mr-1 flex h-4 w-4 items-center justify-center"
46
60
  onClick={(e) => {
47
61
  e.stopPropagation();
48
62
  toggleFolder(folder.id);
49
63
  }}
50
64
  >
51
- {isExpanded ? '' : ''}
65
+ {isExpanded ? "" : ""} {/* Customize expand icons here */}
52
66
  </button>
53
67
  )}
54
- <span className="text-sm">{folder.name}</span>
68
+ {!hasChildren && <div className="mr-1 w-5" />}
69
+ {/* Customize folder icon and styling here */}
70
+ <span>📁 {folder.name}</span>
55
71
  </div>
72
+ {/* Recursively render child folders when expanded */}
56
73
  {isExpanded && hasChildren && (
57
74
  <div>
58
75
  {folders
59
- .filter(f => f.parentFolder === folder.id)
60
- .map(child => renderFolder(child, level + 1))}
76
+ .filter((f) => f.parentFolder === folder.id)
77
+ .map((child) => renderFolder(child, level + 1))}
61
78
  </div>
62
79
  )}
63
80
  </div>
@@ -67,19 +84,20 @@ export function FolderTree({ folders, selectedNodeId, onSelectNode }: FolderTree
67
84
  return (
68
85
  <div className="space-y-1">
69
86
  {/* Root Directory Option */}
87
+ {/* Customize root folder appearance here */}
70
88
  <div
71
- className={`flex items-center py-1 px-2 cursor-pointer hover:bg-gray-100 rounded ${
72
- !selectedNodeId ? 'bg-gray-100' : ''
89
+ className={`flex cursor-pointer items-center rounded px-2 py-1 text-sm hover:bg-gray-100 ${
90
+ !selectedNodeId ? "bg-blue-100 text-blue-800" : ""
73
91
  }`}
74
- onClick={() => onSelectNode({ id: '', name: 'Root', kind: 'FOLDER' } as UiFolderNode)}
92
+ onClick={() => onSelectNode(undefined)}
75
93
  >
76
- <span className="text-sm font-medium">Root</span>
94
+ <span>🏠 Root</span>
77
95
  </div>
78
96
 
79
- {/* Folder Tree */}
97
+ {/* Render top-level folders (no parent) */}
80
98
  {folders
81
- .filter(folder => !folder.parentFolder)
82
- .map(folder => renderFolder(folder))}
99
+ .filter((folder) => !folder.parentFolder)
100
+ .map((folder) => renderFolder(folder))}
83
101
  </div>
84
102
  );
85
- }
103
+ }
@@ -2,75 +2,39 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
3
3
  unless_exists: true
4
4
  ---
5
- import { type DriveEditorProps } from "@powerhousedao/reactor-browser";
6
- import { AnalyticsProvider } from '@powerhousedao/reactor-browser/analytics/context';
7
- import { DriveContextProvider } from "@powerhousedao/reactor-browser/hooks/useDriveContext";
8
- import { type DocumentDriveDocument, addFolder, deleteNode, updateNode, generateNodesCopy, copyNode } from "document-drive";
9
5
  import { WagmiContext } from "@powerhousedao/design-system";
6
+ import {
7
+ AnalyticsProvider,
8
+ DriveContextProvider,
9
+ useAppConfig,
10
+ type DriveEditorProps,
11
+ } from "@powerhousedao/reactor-browser";
10
12
  import { DriveExplorer } from "./components/DriveExplorer.js";
11
- import { useCallback } from "react";
12
- import { generateId } from "document-model";
13
-
14
- export type IProps = DriveEditorProps<DocumentDriveDocument>;
15
-
16
- export function BaseEditor(props: IProps) {
17
- const { dispatch, context } = props;
18
-
19
- const onAddFolder = useCallback((name: string, parentFolder?: string) => {
20
- dispatch(addFolder({
21
- id: generateId(),
22
- name,
23
- parentFolder,
24
- }));
25
- }, [dispatch]);
26
-
27
- const onDeleteNode = useCallback((nodeId: string) => {
28
- dispatch(deleteNode({ id: nodeId }));
29
- }, [dispatch]);
30
-
31
- const renameNode = useCallback((nodeId: string, name: string) => {
32
- dispatch(updateNode({ id: nodeId, name }));
33
- }, [dispatch]);
34
-
35
- const onCopyNode = useCallback((nodeId: string, targetName: string, parentId?: string) => {
36
- const copyNodesInput = generateNodesCopy({
37
- srcId: nodeId,
38
- targetParentFolder: parentId,
39
- targetName,
40
- }, () => generateId(), props.document.state.global.nodes);
41
-
42
- const copyNodesAction = copyNodesInput.map(input => {
43
- return copyNode(input);
44
- });
45
-
46
- for (const copyNodeAction of copyNodesAction) {
47
- dispatch(copyNodeAction);
48
- }
49
- }, [dispatch, props.document.state.global.nodes]);
50
13
 
14
+ /**
15
+ * Base editor component that renders the drive explorer interface.
16
+ * Customize document opening behavior and drive-level actions here.
17
+ */
18
+ export function BaseEditor(props: DriveEditorProps) {
19
+ const { context, document } = props;
51
20
  return (
52
- <div
53
- className="new-drive-explorer"
54
- style={{ height: "100%" }}
55
- >
56
- <DriveExplorer
57
- driveId={props.document.header.id}
58
- nodes={props.document.state.global.nodes}
59
- onAddFolder={onAddFolder}
60
- onDeleteNode={onDeleteNode}
61
- renameNode={renameNode}
62
- onCopyNode={onCopyNode}
63
- context={context}
64
- />
21
+ <div className="new-drive-explorer" style={{ height: "100%" }}>
22
+ <DriveExplorer document={document} context={context} />
65
23
  </div>
66
24
  );
67
25
  }
68
26
 
69
- export default function Editor(props: IProps) {
27
+ /**
28
+ * Main editor entry point with required providers.
29
+ */
30
+ export default function Editor(props: DriveEditorProps) {
31
+ const appConfig = useAppConfig();
32
+ const analyticsDatabaseName = appConfig?.analyticsDatabaseName;
70
33
  return (
34
+ // Required context providers for drive functionality
71
35
  <DriveContextProvider value={props.context}>
72
36
  <WagmiContext>
73
- <AnalyticsProvider databaseName={props.context.analyticsDatabaseName}>
37
+ <AnalyticsProvider databaseName={analyticsDatabaseName}>
74
38
  <BaseEditor {...props} />
75
39
  </AnalyticsProvider>
76
40
  </WagmiContext>
@@ -0,0 +1,16 @@
1
+ export type Args = {
2
+ name: string;
3
+ rootDir: string;
4
+ appId?: string;
5
+ };
6
+ declare const _default: {
7
+ params: ({ args }: {
8
+ args: Args;
9
+ }) => {
10
+ rootDir: string;
11
+ name: string;
12
+ appId: string | undefined;
13
+ };
14
+ };
15
+ export default _default;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;;uBAGmB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;;;;;;AADnC,wBAQE"}
@@ -3,14 +3,13 @@ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
3
  force: true
4
4
  ---
5
5
  import { type DriveEditorModule } from "@powerhousedao/reactor-browser";
6
- import { type DocumentDriveDocument } from "document-drive";
7
6
  import Editor from "./editor.js";
8
7
 
9
- export const module: DriveEditorModule<DocumentDriveDocument> = {
8
+ export const module: DriveEditorModule = {
10
9
  Component: Editor,
11
10
  documentTypes: ["powerhouse/document-drive"],
12
11
  config: {
13
- id: "<%= name %>",
12
+ id: "<%= appId || 'drive-editor-id' %>",
14
13
  disableExternalControls: true,
15
14
  documentToolbarEnabled: true,
16
15
  showSwitchboardLink: true,
@@ -0,0 +1,12 @@
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
+ appId: args.appId,
9
+ };
10
+ },
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.ts"],"names":[],"mappings":";;AAMA,kBAAe;IACb,MAAM,EAAE,CAAC,EAAE,IAAI,EAAkB,EAAE,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -4,6 +4,7 @@ export type Args = {
4
4
  documentModelsDir: string;
5
5
  documentTypes: string;
6
6
  documentTypesMap: string;
7
+ editorId?: string;
7
8
  };
8
9
  declare const _default: {
9
10
  params: ({ args }: {
@@ -14,6 +15,7 @@ declare const _default: {
14
15
  name: string;
15
16
  documentTypes: string[];
16
17
  documentTypesMap: JSON;
18
+ editorId: string | undefined;
17
19
  };
18
20
  };
19
21
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-editor/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;;uBAGmB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;;;;;0BAQ0B,IAAI;;;AATjE,wBAYE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-editor/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;;uBAGmB;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;;;;;0BAQ0B,IAAI;;;;AATjE,wBAaE"}
@@ -12,7 +12,7 @@ export const module: <% if(!documentTypes.length){ %>EditorModule<% } else { %><
12
12
  Component: Editor,
13
13
  documentTypes: [<% if(!documentTypes.length){ %>'*'<% } else { %><% documentTypes.forEach(type => { _%>"<%= type %>", %><% }); _%> <% } %>],
14
14
  config: {
15
- id: 'editor-id',
15
+ id: '<%= editorId || 'editor-id' %>',
16
16
  disableExternalControls: true,
17
17
  documentToolbarEnabled: true,
18
18
  showSwitchboardLink: true,
@@ -10,6 +10,7 @@ exports.default = {
10
10
  .split(",")
11
11
  .filter((type) => type !== ""),
12
12
  documentTypesMap: JSON.parse(args.documentTypesMap),
13
+ editorId: args.editorId,
13
14
  };
14
15
  },
15
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-editor/index.ts"],"names":[],"mappings":";;AAQA,kBAAe;IACb,MAAM,EAAE,CAAC,EAAE,IAAI,EAAkB,EAAE,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;iBAC9B,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAS;SAC5D,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/codegen/.hygen/templates/powerhouse/generate-editor/index.ts"],"names":[],"mappings":";;AASA,kBAAe;IACb,MAAM,EAAE,CAAC,EAAE,IAAI,EAAkB,EAAE,EAAE;QACnC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;iBAC9B,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAS;YAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -4,9 +4,10 @@ force: true
4
4
  ---
5
5
  import { type ProcessorRecord } from "document-drive/processors/types";
6
6
  import { type IProcessorHostModule } from "document-drive/processors/types";
7
+ import { type PHDocumentHeader } from "document-model";
7
8
  import { <%= pascalName %>Processor } from "./index.js";
8
9
 
9
- export const <%= h.changeCase.pascal(name) %>ProcessorFactory = (module: IProcessorHostModule) => (driveId: string): ProcessorRecord[] => {
10
+ export const <%= h.changeCase.pascal(name) %>ProcessorFactory = (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader): ProcessorRecord[] => {
10
11
  return [
11
12
  {
12
13
  processor: new <%= pascalName %>Processor(module.analyticsStore),
@@ -7,24 +7,26 @@ unless_exists: true
7
7
  * Auto-generated by codegen - DO NOT EDIT MANUALLY
8
8
  */
9
9
 
10
- import { type ProcessorRecord } from "document-drive/processors/types";
10
+ import { type ProcessorRecord, type ProcessorFactory } from "document-drive/processors/types";
11
11
  import { type IProcessorHostModule } from "document-drive/processors/types";
12
+ import { type PHDocumentHeader } from "document-model";
12
13
 
13
14
  // Import processor factories here as they are generated
14
15
 
15
16
  export const processorFactory = (module: IProcessorHostModule) => {
16
17
  // Initialize all processor factories once with the module
17
- const factories: Array<(driveId: string) => ProcessorRecord[]> = [];
18
+ const factories: Array<ProcessorFactory> = [];
18
19
 
19
20
  // Add processors here as they are generated
20
21
 
21
22
  // Return the inner function that will be called for each drive
22
- return (driveId: string): ProcessorRecord[] => {
23
+ return async (driveHeader: PHDocumentHeader): Promise<ProcessorRecord[]> => {
23
24
  const processors: ProcessorRecord[] = [];
24
25
 
25
- // Call each cached factory with the driveId
26
+ // Call each cached factory with the driveHeader
26
27
  for (const factory of factories) {
27
- processors.push(...factory(driveId));
28
+ const factoryProcessors = await factory(driveHeader);
29
+ processors.push(...factoryProcessors);
28
30
  }
29
31
 
30
32
  return processors;
@@ -9,11 +9,12 @@ import {
9
9
  import {
10
10
  type RelationalDbProcessorFilter,
11
11
  } from "document-drive/processors/relational";
12
+ import { type PHDocumentHeader } from "document-model";
12
13
  import { <%= pascalName %>Processor } from "./index.js";
13
14
 
14
- export const <%= h.changeCase.camel(name) %>ProcessorFactory = (module: IProcessorHostModule) => async (driveId: string): Promise<ProcessorRecord[]> => {
15
+ export const <%= h.changeCase.camel(name) %>ProcessorFactory = (module: IProcessorHostModule) => async (driveHeader: PHDocumentHeader): Promise<ProcessorRecord[]> => {
15
16
  // Create a namespace for the processor and the provided drive id
16
- const namespace = <%= pascalName %>Processor.getNamespace(driveId);
17
+ const namespace = <%= pascalName %>Processor.getNamespace(driveHeader.id);
17
18
 
18
19
  // Create a namespaced db for the processor
19
20
  const store = await module.relationalDb.createNamespace<<%= pascalName %>Processor>(
@@ -7,25 +7,26 @@ unless_exists: true
7
7
  * Auto-generated by codegen - DO NOT EDIT MANUALLY
8
8
  */
9
9
 
10
- import { type ProcessorRecord, type IProcessorHostModule } from "document-drive/processors/types";
10
+ import { type ProcessorRecord, type IProcessorHostModule, type ProcessorFactory } from "document-drive/processors/types";
11
+ import { type PHDocumentHeader } from "document-model";
11
12
 
12
13
  // Import other processor factories here as they are generated
13
14
 
14
15
  export const processorFactory = (module: IProcessorHostModule) => {
15
16
  // Initialize all processor factories once with the module
16
- const factories: Array<(driveId: string) => Promise<ProcessorRecord[]>> = [];
17
+ const factories: Array<ProcessorFactory> = [];
17
18
 
18
19
  // Add all processor factories
19
20
 
20
21
  // Add other processors here as they are generated
21
22
 
22
23
  // Return the inner function that will be called for each drive
23
- return async (driveId: string): Promise<ProcessorRecord[]> => {
24
+ return async (driveHeader: PHDocumentHeader): Promise<ProcessorRecord[]> => {
24
25
  const processors: ProcessorRecord[] = [];
25
26
 
26
- // Call each cached factory with the driveId
27
+ // Call each cached factory with the driveHeader
27
28
  for (const factory of factories) {
28
- const factoryProcessors = await factory(driveId);
29
+ const factoryProcessors = await factory(driveHeader);
29
30
  processors.push(...factoryProcessors);
30
31
  }
31
32
 
@@ -3,46 +3,14 @@ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
3
  force: true
4
4
  ---
5
5
  import { Subgraph } from "@powerhousedao/reactor-api";
6
- <% if (loadFromFile) { %>
7
6
  import { schema } from "./schema.js";
8
7
  import { getResolvers } from "./resolvers.js";
9
- <% } else { %>
10
- import { gql } from "graphql-tag";
11
- <% } %>
12
8
 
13
9
  export class <%= pascalName %>Subgraph extends Subgraph {
14
10
  name = "<%= h.changeCase.param(name) %>";
15
- <% if (loadFromFile) { %>
16
11
  typeDefs = schema;
17
12
  resolvers = getResolvers(this);
18
13
  additionalContextFields = {};
19
14
  async onSetup() {}
20
15
  async onDisconnect() {}
21
-
22
- <% } else { %>
23
-
24
- resolvers = {
25
- Query: {
26
- example: {
27
- resolve: async (parent, args, context, info) => {
28
- return "example";
29
- }
30
- }
31
- }
32
- }
33
-
34
- typeDefs = gql`
35
- type Query {
36
- example(id: ID!): String
37
- }
38
- `;
39
-
40
- additionalContextFields = {
41
- example: "test"
42
- }
43
-
44
- async onSetup() {}
45
-
46
- async onDisconnect() {}
47
- <% } %>
48
16
  }