@powerhousedao/codegen 0.37.0 → 0.37.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 (73) hide show
  1. package/dist/src/codegen/.hygen/package.json +6 -0
  2. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +16 -0
  3. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +8 -0
  4. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +5 -0
  5. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +7 -0
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +25 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +9 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.esm.t +9 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.inject_export.esm.t +7 -0
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +49 -0
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +35 -0
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +41 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +6 -0
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +19 -0
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +43 -0
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +22 -0
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +34 -0
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customReducers.esm.t +20 -0
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +53 -0
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +40 -0
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +37 -0
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/operations.esm.t +17 -0
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-mutations/resolvers.esm.t +62 -0
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-mutations/schema.esm.t +31 -0
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +23 -0
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +22 -0
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.esm.t +9 -0
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.inject_export.esm.t +7 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/story.esm.t +31 -0
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.esm.t +59 -0
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/utils.esm.t +100 -0
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +66 -0
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +9 -0
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_export.esm.t +7 -0
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/index.esm.t +62 -0
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/lib.esm.t +9 -0
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/lib.inject_export.esm.t +8 -0
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +61 -0
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/lib.esm.t +9 -0
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/lib.inject_export.esm.t +7 -0
  41. package/dist/src/codegen/hygen.d.ts +1 -1
  42. package/dist/src/codegen/hygen.d.ts.map +1 -1
  43. package/dist/src/codegen/hygen.js +2 -2
  44. package/dist/src/codegen/index.d.ts +0 -1
  45. package/dist/src/codegen/index.d.ts.map +1 -1
  46. package/dist/src/codegen/index.js +0 -1
  47. package/dist/tsconfig.hygen.tsbuildinfo +1 -0
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +9 -6
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +0 -60
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -24
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  55. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +0 -25
  56. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-mutations/index.d.ts +0 -22
  57. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-mutations/index.d.ts.map +0 -1
  58. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-mutations/index.js +0 -19
  59. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -21
  60. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  61. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +0 -13
  62. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  63. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  64. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +0 -8
  65. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -21
  66. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  67. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +0 -13
  68. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/index.d.ts +0 -20
  69. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/index.d.ts.map +0 -1
  70. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-operational/index.js +0 -13
  71. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  72. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  73. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +0 -9
@@ -0,0 +1,23 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
3
+ unless_exists: true
4
+ ---
5
+ <% if(!documentTypes.length){ %>import { Action, EditorProps } from 'document-model/document';<% } else { %>import { EditorProps } from 'document-model/document';<% } %>
6
+ <% documentTypes.forEach(type => { _%>
7
+ import { <%= documentTypesMap[type].name %>State, <%= documentTypesMap[type].name %>Action, <%= documentTypesMap[type].name %>LocalState, actions } from "<%= documentTypesMap[type].importPath %>";
8
+ %><% }); _%>
9
+ import { utils as documentModelUtils } from 'document-model/document';
10
+ import { Button } from '@powerhousedao/design-system';
11
+
12
+ export type IProps = <% if(!documentTypes.length){ %>EditorProps<unknown, Action><% } else { %><% documentTypes.forEach((type, index) => { _%>EditorProps<<%= documentTypesMap[type].name %>State, <%= documentTypesMap[type].name %>Action, <%= documentTypesMap[type].name %>LocalState%>%>><% if(index < documentTypes.length - 1){ %> | <% }%><% }); _%> <% } %>;
13
+
14
+ export default function Editor(props: IProps) {
15
+ // generate a random id
16
+ // const id = documentModelUtils.hashKey();
17
+
18
+ return (
19
+ <div>
20
+ <Button onClick={() => console.log('Hello world!')}>My Button</Button>
21
+ </div>
22
+ );
23
+ };
@@ -0,0 +1,22 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { ExtendedEditor, EditorContextProps } from 'document-model-libs';
6
+ import Editor from './editor';
7
+ <% documentTypes.forEach(type => { _%>
8
+ import { <%= documentTypesMap[type].name %>State, <%= documentTypesMap[type].name %>Action, <%= documentTypesMap[type].name %>LocalState } from "<%= documentTypesMap[type].importPath %>";
9
+ %><% }); _%>
10
+
11
+ export const module: <% if(!documentTypes.length){ %>ExtendedEditor<unknown, Action, unknown, unknown><% } else { %><% documentTypes.forEach((type, index) => { _%>ExtendedEditor<<%= documentTypesMap[type].name %>State, <%= documentTypesMap[type].name %>Action, <%= documentTypesMap[type].name %>LocalState, EditorContextProps%>%>> <% if(index < documentTypes.length - 1){ %>| <% }%><% }); _%> <% } %>= {
12
+ Component: Editor,
13
+ documentTypes: [<% if(!documentTypes.length){ %>'*'<% } else { %><% documentTypes.forEach(type => { _%>"<%= type %>", %><% }); _%> <% } %>],
14
+ config: {
15
+ id: 'editor-id',
16
+ disableExternalControls: true,
17
+ documentToolbarEnabled: true,
18
+ showSwitchboardLink: true,
19
+ },
20
+ };
21
+
22
+ 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) %>';
@@ -0,0 +1,31 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/<%= h.changeCase.param(name) %>.stories.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import Editor from './editor';
6
+ import { createDocumentStory } from 'document-model-libs/utils';
7
+ <% if(!documentTypes.length){ %>import { baseReducer, utils } from 'document-model/document';<% } %>
8
+ <% documentTypes.forEach(type => { _%>
9
+ import * as <%= documentTypesMap[type].name %>Module from "<%= documentTypesMap[type].importPath %>";
10
+ %><% }); _%>
11
+
12
+ <% if(!documentTypes.length){ %>
13
+ const { meta, CreateDocumentStory: <%= h.changeCase.pascal(name) %> } = createDocumentStory(
14
+ Editor,
15
+ (...args) => baseReducer(...args, document => document),
16
+ utils.createExtendedState(),
17
+ );
18
+ export { <%= h.changeCase.pascal(name) %> };
19
+ <% } %>
20
+
21
+ <% documentTypes.forEach((type, index) => { _%>
22
+ const { <% if(index === 0){ %>meta, <% } %>CreateDocumentStory: <%= documentTypesMap[type].name %> } = createDocumentStory(
23
+ Editor,
24
+ <%= documentTypesMap[type].name %>Module.reducer,
25
+ <%= documentTypesMap[type].name %>Module.utils.createDocument(),
26
+ );
27
+ export { <%= documentTypesMap[type].name %> }
28
+
29
+ %><% }); _%>
30
+
31
+ export default { ...meta, title: '<%= h.changeCase.title(name) %>' };
@@ -0,0 +1,59 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { IBaseDocumentDriveServer } from "document-drive";
6
+ import { actions } from "document-model";
7
+ import {
8
+ addDocument,
9
+ addFolder,
10
+ initReactorWithRemoteDrive
11
+ } from "./utils";
12
+
13
+ async function main() {
14
+ const driveServer = (await initReactorWithRemoteDrive(
15
+ "http://localhost:4001/d/powerhouse"
16
+ )) as IBaseDocumentDriveServer;
17
+
18
+ const driveIds = await driveServer.getDrives();
19
+ let drive = await driveServer.getDrive(driveIds[0]);
20
+
21
+ // add folder to root
22
+ await addFolder(driveServer, driveIds[0], "example-folder", "Example Folder");
23
+ drive = await driveServer.getDrive(driveIds[0]);
24
+
25
+ // get root folder
26
+ const rootDirId = drive.state.global.nodes.find(
27
+ (e) => e.name === "Example Folder"
28
+ );
29
+
30
+ // check if root folder exists and throw error if it doesn't
31
+ if (!rootDirId) {
32
+ throw new Error("Root directory not found");
33
+ }
34
+
35
+ // add document to root folder
36
+ await addDocument(
37
+ driveServer,
38
+ driveIds[0],
39
+ "example-document",
40
+ "Example Document",
41
+ "powerhouse/document-model",
42
+ rootDirId.id
43
+ );
44
+
45
+ // set model name to example document
46
+ await driveServer.addAction(
47
+ driveIds[0],
48
+ "example-document",
49
+ actions.setModelName({
50
+ name: "Example Document",
51
+ })
52
+ );
53
+
54
+ // get document
55
+ const document = await driveServer.getDocument(driveIds[0], "example-document");
56
+ console.log(document.state.global);
57
+
58
+ process.exit(0);
59
+ }
@@ -0,0 +1,100 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/utils.ts"
3
+ unless_exists: true
4
+ ---
5
+ import { randomUUID } from "crypto";
6
+ import { DocumentDriveServer, IBaseDocumentDriveServer } from "document-drive";
7
+ import {
8
+ actions,
9
+ generateSynchronizationUnits
10
+ } from "document-model-libs/document-drive";
11
+ import * as DocumentModelsLibs from "document-model-libs/document-models";
12
+ import { DocumentModel } from "document-model/document";
13
+ import { module as DocumentModelLib } from "document-model";
14
+ import * as LocalDocumentModels from "../../document-models";
15
+
16
+ export const addFolder = (
17
+ driveServer: IBaseDocumentDriveServer,
18
+ driveId: string,
19
+ nodeId: string,
20
+ nodeName: string,
21
+ parentFolder: string | undefined = undefined
22
+ ) => {
23
+ return driveServer.addDriveAction(
24
+ driveId,
25
+ actions.addFolder({
26
+ id: nodeId,
27
+ name: nodeName,
28
+ parentFolder: parentFolder,
29
+ })
30
+ );
31
+ };
32
+
33
+ export const addDocument = async (
34
+ driveServer: IBaseDocumentDriveServer,
35
+ driveId: string,
36
+ documentId: string,
37
+ documentName: string,
38
+ documentType: string,
39
+ parentFolder: string
40
+ ) => {
41
+ const drive = await driveServer.getDrive(driveId);
42
+ return driveServer.addDriveAction(
43
+ driveId,
44
+ actions.addFile({
45
+ documentType,
46
+ id: documentId,
47
+ name: documentName,
48
+ parentFolder,
49
+ synchronizationUnits: generateSynchronizationUnits(drive.state.global, [
50
+ "global",
51
+ ]),
52
+ })
53
+ );
54
+ };
55
+
56
+ export const initReactorWithRemoteDrive = async (driveUrl: string) => {
57
+ const documentModels = [
58
+ DocumentModelLib,
59
+ ...Object.values(LocalDocumentModels),
60
+ ...Object.values(DocumentModelsLibs),
61
+ ] as DocumentModel[];
62
+ const driveServer = new DocumentDriveServer(documentModels);
63
+ await driveServer.initialize();
64
+ return new Promise((resolve, reject) => {
65
+ // init drive server with document models
66
+ const listenerId = randomUUID();
67
+ driveServer.addRemoteDrive(driveUrl, {
68
+ availableOffline: true,
69
+ listeners: [
70
+ {
71
+ block: true,
72
+ callInfo: {
73
+ data: driveUrl,
74
+ name: "switchboard-push",
75
+ transmitterType: "SwitchboardPush",
76
+ },
77
+ filter: {
78
+ branch: ["main"],
79
+ documentId: ["*"],
80
+ documentType: ["*"],
81
+ scope: ["global"],
82
+ },
83
+ label: "Switchboard Sync",
84
+ listenerId,
85
+ system: true,
86
+ },
87
+ ],
88
+ sharingType: "public",
89
+ triggers: [],
90
+ pullInterval: 100,
91
+ });
92
+
93
+ driveServer.on("syncStatus", (driveId, status, error, syncUnitStatus) => {
94
+ if (driveId !== driveId.split("/").pop() || status !== "SUCCESS") {
95
+ return;
96
+ }
97
+ return resolve(driveServer);
98
+ });
99
+ });
100
+ };
@@ -0,0 +1,66 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { generateId } from "document-model/utils";
6
+ import {
7
+ AnalyticsProcessor,
8
+ ProcessorOptions,
9
+ ProcessorUpdate,
10
+ AnalyticsPath
11
+ } from "@powerhousedao/reactor-api";
12
+ <% documentTypes.forEach(type => { _%>
13
+ import { <%= documentTypesMap[type].name %>Document } from "<%= documentTypesMap[type].importPath %>";
14
+ %><% }); _%>
15
+ <% if(documentTypes.length === 0) { %>import { Document } from "document-model/document";<% } %>
16
+ type DocumentType = <% if(documentTypes.length) { %><%= documentTypes.map(type => `${documentTypesMap[type].name}Document`).join(" | ") %> <% } else { %>Document<% } %>;
17
+
18
+ export class <%= pascalName %>Processor extends AnalyticsProcessor<% if(documentTypes.length) { %><DocumentType><% } %> {
19
+
20
+ protected processorOptions: ProcessorOptions = {
21
+ listenerId: generateId(),
22
+ filter: {
23
+ branch: ["main"],
24
+ documentId: ["*"],
25
+ documentType: [<% if(documentTypes.length) { %><%- documentTypes.map(type => `"${type}"`).join(", ") %><% } else { %>"*"<% } %>],
26
+ scope: ["global"],
27
+ },
28
+ block: false,
29
+ label: "<%= name %>",
30
+ system: true,
31
+ };
32
+
33
+ async onStrands(strands: ProcessorUpdate<DocumentType>[]): Promise<void> {
34
+ if (strands.length === 0) {
35
+ return;
36
+ }
37
+
38
+ for (const strand of strands) {
39
+ if (strand.operations.length === 0) {
40
+ continue;
41
+ }
42
+
43
+ const firstOp = strand.operations[0];
44
+ const source = AnalyticsPath.fromString(
45
+ `ph/${strand.driveId}/${strand.documentId}/${strand.branch}/${strand.scope}`,
46
+ );
47
+ if (firstOp.index === 0) {
48
+ await this.clearSource(source);
49
+ }
50
+
51
+ for (const operation of strand.operations) {
52
+ console.log(">>> ", operation.type);
53
+ }
54
+ }
55
+ }
56
+
57
+ async onDisconnect() {}
58
+
59
+ private async clearSource(source: AnalyticsPath) {
60
+ try {
61
+ await this.analyticsStore.clearSeriesBySource(source, true);
62
+ } catch (e) {
63
+ console.error(e);
64
+ }
65
+ }
66
+ }
@@ -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 * as <%= h.changeCase.pascal(name) %>Processor from "./<%= h.changeCase.param(name) %>";
@@ -0,0 +1,62 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { generateId } from "document-model/utils";
6
+ import {
7
+ OperationalProcessor,
8
+ ProcessorOptions,
9
+ ProcessorSetupArgs,
10
+ ProcessorUpdate,
11
+ } from "@powerhousedao/reactor-api";
12
+ <% documentTypes.forEach(type => { _%>
13
+ import { <%= documentTypesMap[type].name %>Document } from "<%= documentTypesMap[type].importPath %>";
14
+ %><% }); _%>
15
+ <% if(documentTypes.length === 0) { %>import { Document } from "document-model/document";<% } %>
16
+ type DocumentType = <% if(documentTypes.length) { %><%= documentTypes.map(type => `${documentTypesMap[type].name}Document`).join(" | ") %> <% } else { %>Document<% } %>;
17
+
18
+ export class <%= pascalName %>Processor extends OperationalProcessor<% if(documentTypes.length) { %><DocumentType><% } %> {
19
+
20
+ protected processorOptions: ProcessorOptions = {
21
+ listenerId: generateId(),
22
+ filter: {
23
+ branch: ["main"],
24
+ documentId: ["*"],
25
+ documentType: [<% if(documentTypes.length) { %><%- documentTypes.map(type => `"${type}"`).join(", ") %><% } else { %>"*"<% } %>],
26
+ scope: ["global"],
27
+ },
28
+ block: false,
29
+ label: "<%= name %>",
30
+ system: true,
31
+ };
32
+
33
+ async onStrands(strands: ProcessorUpdate<DocumentType>[]): Promise<void> {
34
+ if (strands.length === 0) {
35
+ return;
36
+ }
37
+
38
+ for (const strand of strands) {
39
+ if (strand.operations.length === 0) {
40
+ continue;
41
+ }
42
+
43
+ for (const operation of strand.operations) {
44
+ console.log(">>> ", operation.type);
45
+ await this.operationalStore("index_search_op").insert({
46
+ documentId: strand.documentId,
47
+ });
48
+ }
49
+ }
50
+ }
51
+
52
+ async onSetup(args: ProcessorSetupArgs) {
53
+ await super.onSetup(args);
54
+ await this.operationalStore.schema.createTable("index_search_op", (table) => {
55
+ table.increments("id").primary();
56
+ table.string("documentId").notNullable();
57
+ });
58
+ }
59
+
60
+ async onDisconnect() {}
61
+
62
+ }
@@ -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,8 @@
1
+ ---
2
+ inject: true
3
+ append: true
4
+ to: "<%= rootDir %>/index.ts"
5
+ skip_if: "<%= h.changeCase.pascal(name) %>"
6
+ force: true
7
+ ---
8
+ export * as <%= h.changeCase.pascal(name) %>Processor from "./<%= h.changeCase.param(name) %>";
@@ -0,0 +1,61 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { Subgraph } from "@powerhousedao/reactor-api";
6
+ import { gql } from "graphql-tag";
7
+ <% if (loadFromFile) { %>
8
+ import { readFileSync } from "fs";
9
+ import path from "path";
10
+ import { getResolvers } from "./resolvers";
11
+
12
+ // TODO: find a better way to import the graphql schema
13
+ const gqlFile = path.join(path.resolve(path.dirname('')), './subgraphs/<%= h.changeCase.param(name) %>/schema.graphql');
14
+ const gqlCode = readFileSync(gqlFile).toString();
15
+ <% } %>
16
+
17
+ export class <%= pascalName %>Subgraph extends Subgraph {
18
+ name = "<%= h.changeCase.param(name) %>";
19
+ <% if (loadFromFile) { %>
20
+ typeDefs = gql`${gqlCode}`;
21
+
22
+ resolvers = getResolvers(this, "powerhouse");
23
+ additionalContextFields = {};
24
+ async onSetup() {}
25
+ async onDisconnect() {}
26
+ <% } else { %>
27
+
28
+ resolvers = {
29
+ Query: {
30
+ example: {
31
+ resolve: async (parent, args, context, info) => {
32
+ return "example";
33
+ }
34
+ }
35
+ }
36
+ }
37
+
38
+ typeDefs = gql`
39
+ type Query {
40
+ example(id: ID!): String
41
+ }
42
+ `;
43
+
44
+ additionalContextFields = {
45
+ example: "test"
46
+ }
47
+
48
+ async onSetup() {
49
+ await this.createOperationalTables();
50
+ }
51
+
52
+ async createOperationalTables() {
53
+ await this.operationalStore.schema.createTableIfNotExists("example", (table) => {
54
+ table.string("id").primary();
55
+ table.string("name");
56
+ });
57
+ }
58
+
59
+ async onDisconnect() {}
60
+ <% } %>
61
+ }
@@ -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 * as <%= h.changeCase.pascal(name) %>Subgraph from "./<%= h.changeCase.param(name) %>";
@@ -1,5 +1,5 @@
1
- import { DocumentTypesMap } from "./index.js";
2
1
  import { DocumentModelState } from "document-model";
2
+ import { DocumentTypesMap } from "./index.js";
3
3
  export declare function generateAll(dir: string, { watch, skipFormat }?: {
4
4
  watch?: boolean | undefined;
5
5
  skipFormat?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA4CpD,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"}
1
+ {"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6C9C,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"}
@@ -1,10 +1,10 @@
1
+ import { pascalCase } from "change-case";
2
+ import { Logger, runner } from "hygen";
1
3
  import fs from "node:fs";
2
4
  import { createRequire } from "node:module";
3
5
  import path from "node:path";
4
6
  import { fileURLToPath } from "node:url";
5
- import { Logger, runner } from "hygen";
6
7
  import { loadDocumentModel } from "./utils.js";
7
- import { pascalCase } from "change-case";
8
8
  const require = createRequire(import.meta.url);
9
9
  const __dirname = import.meta.dirname || path.dirname(fileURLToPath(import.meta.url));
10
10
  const logger = new Logger(console.log.bind(console));
@@ -1,4 +1,3 @@
1
- #! /usr/bin/env node
2
1
  import { PowerhouseConfig } from "@powerhousedao/config/powerhouse";
3
2
  export type DocumentTypesMap = Record<string, {
4
3
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA4CpE,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,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA4CpE,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,4 +1,3 @@
1
- #! /usr/bin/env node
2
1
  import { typeDefs } from "@powerhousedao/scalars";
3
2
  import { paramCase, pascalCase } from "change-case";
4
3
  import fs from "node:fs";