@powerhousedao/codegen 5.0.0-staging.9 → 5.0.1-staging.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 (157) 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 +8 -10
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +1 -1
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +1 -1
  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 +0 -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 +14 -17
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +3 -2
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +5 -4
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +16 -6
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +37 -51
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +1 -1
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +52 -39
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +21 -20
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +2 -2
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +1 -7
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +20 -23
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +53 -201
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +92 -87
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +10 -0
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +7 -35
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +5 -9
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +11 -11
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +103 -18
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/hooks.esm.t +16 -0
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +3 -7
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +28 -16
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +1 -1
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +3 -2
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +2 -2
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +2 -2
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +3 -4
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +1 -1
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +1 -1
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +3 -3
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
  47. package/dist/src/codegen/generate.d.ts +33 -0
  48. package/dist/src/codegen/generate.d.ts.map +1 -0
  49. package/dist/src/codegen/generate.js +202 -0
  50. package/dist/src/codegen/generate.js.map +1 -0
  51. package/dist/src/codegen/graphql.d.ts +2 -2
  52. package/dist/src/codegen/graphql.d.ts.map +1 -1
  53. package/dist/src/codegen/graphql.js +1 -1
  54. package/dist/src/codegen/graphql.js.map +1 -1
  55. package/dist/src/codegen/hygen.d.ts +15 -10
  56. package/dist/src/codegen/hygen.d.ts.map +1 -1
  57. package/dist/src/codegen/hygen.js +28 -19
  58. package/dist/src/codegen/hygen.js.map +1 -1
  59. package/dist/src/codegen/index.d.ts +6 -34
  60. package/dist/src/codegen/index.d.ts.map +1 -1
  61. package/dist/src/codegen/index.js +6 -249
  62. package/dist/src/codegen/index.js.map +1 -1
  63. package/dist/src/codegen/types.d.ts +9 -0
  64. package/dist/src/codegen/types.d.ts.map +1 -0
  65. package/dist/src/codegen/types.js +2 -0
  66. package/dist/src/codegen/types.js.map +1 -0
  67. package/dist/src/codegen/utils.d.ts +5 -2
  68. package/dist/src/codegen/utils.d.ts.map +1 -1
  69. package/dist/src/codegen/utils.js +42 -4
  70. package/dist/src/codegen/utils.js.map +1 -1
  71. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  72. package/dist/src/create-lib/create-project.js +17 -2
  73. package/dist/src/create-lib/create-project.js.map +1 -1
  74. package/dist/src/index.d.ts +5 -0
  75. package/dist/src/index.d.ts.map +1 -0
  76. package/dist/src/index.js +5 -0
  77. package/dist/src/index.js.map +1 -0
  78. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +2 -3
  79. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -1
  80. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -1
  81. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +17 -9
  82. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
  83. package/dist/src/ts-morph-generator/{file-generators → core}/ReducerGenerator.d.ts +2 -2
  84. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
  85. package/dist/src/ts-morph-generator/{file-generators → core}/ReducerGenerator.js +3 -3
  86. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
  87. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +3 -3
  88. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
  89. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +2 -3
  90. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
  91. package/dist/src/ts-morph-generator/index.d.ts +2 -2
  92. package/dist/src/ts-morph-generator/index.d.ts.map +1 -1
  93. package/dist/src/ts-morph-generator/index.js +2 -2
  94. package/dist/src/ts-morph-generator/index.js.map +1 -1
  95. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +2 -2
  96. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
  97. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +1 -1
  98. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -1
  99. package/dist/src/utils/index.d.ts +0 -1
  100. package/dist/src/utils/index.d.ts.map +1 -1
  101. package/dist/src/utils/index.js +0 -1
  102. package/dist/src/utils/index.js.map +1 -1
  103. package/dist/src/utils/validation.d.ts +6 -6
  104. package/dist/src/utils/validation.d.ts.map +1 -1
  105. package/dist/src/utils/validation.js +2 -2
  106. package/dist/src/utils/validation.js.map +1 -1
  107. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  108. package/package.json +24 -33
  109. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts +0 -14
  110. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.d.ts.map +0 -1
  111. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js.map +0 -1
  112. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  113. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  114. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
  115. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
  116. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -27
  117. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  118. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
  119. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -32
  120. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
  121. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
  122. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
  123. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -103
  124. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts +0 -16
  125. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.d.ts.map +0 -1
  126. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js.map +0 -1
  127. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
  128. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -22
  129. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  130. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
  131. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  132. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  133. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
  134. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
  135. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  136. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
  137. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
  138. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
  139. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
  140. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  141. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  142. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
  143. package/dist/src/ts-morph-generator/core/index.d.ts +0 -4
  144. package/dist/src/ts-morph-generator/core/index.d.ts.map +0 -1
  145. package/dist/src/ts-morph-generator/core/index.js +0 -4
  146. package/dist/src/ts-morph-generator/core/index.js.map +0 -1
  147. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +0 -1
  148. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +0 -1
  149. package/dist/src/ts-morph-generator/file-generators/index.d.ts +0 -2
  150. package/dist/src/ts-morph-generator/file-generators/index.d.ts.map +0 -1
  151. package/dist/src/ts-morph-generator/file-generators/index.js +0 -2
  152. package/dist/src/ts-morph-generator/file-generators/index.js.map +0 -1
  153. package/dist/src/utils/package-manager.d.ts +0 -5
  154. package/dist/src/utils/package-manager.d.ts.map +0 -1
  155. package/dist/src/utils/package-manager.js +0 -17
  156. package/dist/src/utils/package-manager.js.map +0 -1
  157. package/dist/tsconfig.hygen.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -16,7 +16,6 @@ A powerful code generation toolkit for the Powerhouse ecosystem, designed to aut
16
16
  pnpm add @powerhousedao/codegen
17
17
  ```
18
18
 
19
-
20
19
  ## Templates
21
20
 
22
21
  The package supports custom templates for different output formats:
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./src/codegen/index.js";
2
2
  export * from "./src/create-lib/index.js";
3
+ export * from "./src/ts-morph-generator/index.js";
3
4
  export * from "./src/utils/index.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./src/codegen/index.js";
2
2
  export * from "./src/create-lib/index.js";
3
+ export * from "./src/ts-morph-generator/index.js";
3
4
  export * from "./src/utils/index.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC"}
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ // @ts-check
3
2
  const generateCustomSubgraph = {
4
- params: ({ args, }) => {
5
- return {
6
- rootDir: args.rootDir,
7
- subgraph: args.subgraph,
8
- };
9
- },
3
+ params: ({ args }) => {
4
+ return {
5
+ rootDir: args.rootDir,
6
+ subgraph: args.subgraph,
7
+ };
8
+ },
10
9
  };
11
- exports.default = generateCustomSubgraph;
12
- //# sourceMappingURL=index.js.map
10
+ module.exports = generateCustomSubgraph;
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(subgraph) %>/resolvers.ts"
3
- force: true
3
+ unless_exists: true
4
4
  ---
5
5
  import { type Subgraph } from "@powerhousedao/reactor-api";
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(subgraph) %>/schema.ts"
3
- force: true
3
+ unless_exists: true
4
4
  ---
5
5
  import { gql } from "graphql-tag";
6
6
  import type { DocumentNode } from "graphql";
@@ -2,6 +2,6 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/document-model.ts"
3
3
  force: true
4
4
  ---
5
- import type { DocumentModelState } from "document-model";
5
+ import type { DocumentModelGlobalState } from "document-model";
6
6
 
7
- export const documentModel: DocumentModelState = <%- documentModel %>;
7
+ export const documentModel: DocumentModelGlobalState = <%- documentModel %>;
@@ -4,10 +4,8 @@ force: true
4
4
  ---
5
5
  export * from './actions.js';
6
6
  export * from './document-model.js';
7
- export * from './object.js';
8
7
  export * from './types.js';
9
8
  export * as actions from './creators.js';
10
- export type { <%= h.changeCase.pascal(documentType) %>PHState } from './ph-factories.js';
11
9
  export {
12
10
  create<%= h.changeCase.pascal(documentType) %>Document,
13
11
  createState,
@@ -1,63 +1,78 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
1
+ // @ts-check
2
+ const { paramCase } = require("change-case");
3
+
4
4
  function documentModelToString(documentModel) {
5
- return JSON.stringify({
6
- ...documentModel,
7
- specifications: documentModel.specifications.map((s) => ({
8
- ...s,
9
- state: Object.keys(s.state).reduce((values, scope) => {
10
- const state = s.state[scope];
11
- return {
12
- ...values,
13
- [scope]: {
14
- ...state,
15
- // initial value has to be stringified twice
16
- // as it is expected to be a string
17
- initialValue: JSON.stringify(state.initialValue),
18
- },
19
- };
20
- }, {}),
21
- })),
22
- }, null, 2);
23
- }
24
- exports.default = {
25
- params: ({ args, }) => {
26
- const documentModel = JSON.parse(args.documentModel);
27
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
28
- return {
29
- rootDir: args.rootDir,
30
- documentModel: documentModelToString(documentModel),
31
- documentTypeId: documentModel.id,
32
- documentType: documentModel.name,
33
- extension: documentModel.extension,
34
- modules: latestSpec.modules.map((m) => ({
35
- ...m,
36
- name: (0, change_case_1.paramCase)(m.name),
37
- })),
38
- fileExtension: documentModel.extension,
39
- hasLocalSchema: latestSpec.state.local.schema !== "",
40
- ...getInitialStates(latestSpec.state),
41
- };
5
+ return JSON.stringify(
6
+ {
7
+ ...documentModel,
8
+ specifications: documentModel.specifications.map((s) => ({
9
+ ...s,
10
+ state: Object.keys(s.state).reduce((values, scope) => {
11
+ const state = s.state[scope];
12
+ return {
13
+ ...values,
14
+ [scope]: {
15
+ ...state,
16
+ // initial value has to be stringified twice
17
+ // as it is expected to be a string
18
+ initialValue: JSON.stringify(state.initialValue),
19
+ },
20
+ };
21
+ }, {}),
22
+ })),
42
23
  },
43
- };
44
- function getInitialStates(scopeState) {
45
- const { global, local } = scopeState;
46
- const scopes = { global, local };
47
- Object.entries(scopes).forEach(([scope, state]) => {
48
- if (!isEmptyStateSchema(state.schema) && state.initialValue === "") {
49
- throw new Error(`${scope.charAt(0).toLocaleUpperCase() + scope.slice(1)} scope has a defined schema but is missing an initial value.`);
50
- }
51
- });
24
+ null,
25
+ 2,
26
+ );
27
+ }
28
+
29
+ module.exports = {
30
+ params: ({ args }) => {
31
+ const documentModel = JSON.parse(args.documentModel);
32
+ const latestSpec =
33
+ documentModel.specifications[documentModel.specifications.length - 1];
34
+
52
35
  return {
53
- initialGlobalState: handleEmptyState(global.initialValue),
54
- initialLocalState: handleEmptyState(local.initialValue),
36
+ rootDir: args.rootDir,
37
+ documentModel: documentModelToString(documentModel),
38
+ documentTypeId: documentModel.id,
39
+ documentType: documentModel.name,
40
+ extension: documentModel.extension,
41
+ modules: latestSpec.modules.map((m) => ({
42
+ ...m,
43
+ name: paramCase(m.name),
44
+ })),
45
+ fileExtension: documentModel.extension,
46
+ hasLocalSchema: latestSpec.state.local.schema !== "",
47
+ ...getInitialStates(latestSpec.state),
55
48
  };
49
+ },
50
+ };
51
+
52
+ function getInitialStates(scopeState) {
53
+ const { global, local } = scopeState;
54
+ const scopes = { global, local };
55
+
56
+ Object.entries(scopes).forEach(([scope, state]) => {
57
+ if (!isEmptyStateSchema(state.schema) && state.initialValue === "") {
58
+ throw new Error(
59
+ `${
60
+ scope.charAt(0).toLocaleUpperCase() + scope.slice(1)
61
+ } scope has a defined schema but is missing an initial value.`,
62
+ );
63
+ }
64
+ });
65
+
66
+ return {
67
+ initialGlobalState: handleEmptyState(global.initialValue),
68
+ initialLocalState: handleEmptyState(local.initialValue),
69
+ };
56
70
  }
71
+
57
72
  function isEmptyStateSchema(schema) {
58
- return schema === "" || !schema.includes("{");
73
+ return schema === "" || !schema.includes("{");
59
74
  }
75
+
60
76
  function handleEmptyState(state) {
61
- return state === "" ? "{}" : state;
77
+ return state === "" ? "{}" : state;
62
78
  }
63
- //# sourceMappingURL=index.js.map
@@ -5,27 +5,24 @@ force: true
5
5
  /**
6
6
  * Factory methods for creating <%= h.changeCase.pascal(documentType) %>Document instances
7
7
  */
8
-
8
+ import type {
9
+ PHAuthState,
10
+ PHDocumentState,
11
+ PHBaseState,
12
+ } from "document-model";
9
13
  import {
10
14
  createBaseState,
11
15
  defaultBaseState,
12
- type PHAuthState,
13
- type PHDocumentState,
14
- type PHBaseState,
15
- } from "document-model";
16
+ } from "document-model/core";
16
17
  import type {
17
18
  <%= h.changeCase.pascal(documentType) %>Document,
18
19
  <%= h.changeCase.pascal(documentType) %>LocalState,
19
- <%= h.changeCase.pascal(documentType) %>State,
20
+ <%= h.changeCase.pascal(documentType) %>GlobalState,
21
+ <%= h.changeCase.pascal(documentType) %>PHState,
20
22
  } from "./types.js";
21
23
  import { createDocument } from "./utils.js";
22
24
 
23
- export type <%= h.changeCase.pascal(documentType) %>PHState = PHBaseState & {
24
- global: <%= h.changeCase.pascal(documentType) %>State;
25
- local: <%= h.changeCase.pascal(documentType) %>LocalState;
26
- };
27
-
28
- export function defaultGlobalState(): <%= h.changeCase.pascal(documentType) %>State {
25
+ export function defaultGlobalState(): <%= h.changeCase.pascal(documentType) %>GlobalState {
29
26
  return <%- initialGlobalState %>;
30
27
  }
31
28
 
@@ -42,12 +39,12 @@ export function defaultPHState(): <%= h.changeCase.pascal(documentType) %>PHStat
42
39
  }
43
40
 
44
41
  export function createGlobalState(
45
- state?: Partial<<%= h.changeCase.pascal(documentType) %>State>,
46
- ): <%= h.changeCase.pascal(documentType) %>State {
42
+ state?: Partial<<%= h.changeCase.pascal(documentType) %>GlobalState>,
43
+ ): <%= h.changeCase.pascal(documentType) %>GlobalState {
47
44
  return {
48
45
  ...defaultGlobalState(),
49
46
  ...(state || {}),
50
- } as <%= h.changeCase.pascal(documentType) %>State;
47
+ } as <%= h.changeCase.pascal(documentType) %>GlobalState;
51
48
  }
52
49
 
53
50
  export function createLocalState(
@@ -61,7 +58,7 @@ export function createLocalState(
61
58
 
62
59
  export function createState(
63
60
  baseState?: Partial<PHBaseState>,
64
- globalState?: Partial<<%= h.changeCase.pascal(documentType) %>State>,
61
+ globalState?: Partial<<%= h.changeCase.pascal(documentType) %>GlobalState>,
65
62
  localState?: Partial<<%= h.changeCase.pascal(documentType) %>LocalState>,
66
63
  ): <%= h.changeCase.pascal(documentType) %>PHState {
67
64
  return {
@@ -80,7 +77,7 @@ export function create<%= h.changeCase.pascal(documentType) %>Document(
80
77
  state?: Partial<{
81
78
  auth?: Partial<PHAuthState>;
82
79
  document?: Partial<PHDocumentState>;
83
- global?: Partial<<%= h.changeCase.pascal(documentType) %>State>;
80
+ global?: Partial<<%= h.changeCase.pascal(documentType) %>GlobalState>;
84
81
  local?: Partial<<%= h.changeCase.pascal(documentType) %>LocalState>;
85
82
  }>,
86
83
  ): <%= h.changeCase.pascal(documentType) %>Document {
@@ -5,8 +5,9 @@ force: true
5
5
  // TODO: remove eslint-disable rules once refactor is done
6
6
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
7
7
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
8
- import { type StateReducer, isDocumentAction, createReducer } from "document-model";
9
- import { <%= h.changeCase.pascal(documentType) %>PHState } from './ph-factories.js';
8
+ import type { StateReducer } from "document-model";
9
+ import { isDocumentAction, createReducer } from "document-model/core";
10
+ import type { <%= h.changeCase.pascal(documentType) %>PHState } from './types.js';
10
11
  import { z } from './types.js';
11
12
 
12
13
  <% modules.forEach(m => { _%>
@@ -7,16 +7,17 @@ force: true
7
7
  * Delete the file and run the code generator again to have it reset
8
8
  */
9
9
 
10
- import { actions as BaseActions, type DocumentModelModule } from 'document-model';
10
+ import { createState, type DocumentModelModule, baseActions } from 'document-model';
11
+ import { defaultBaseState } from 'document-model/core';
11
12
  import { actions as <%= h.changeCase.pascal(documentType) %>Actions } from './gen/index.js';
12
13
  import { reducer } from './gen/reducer.js';
13
14
  import { documentModel } from './gen/document-model.js';
14
15
  import genUtils from './gen/utils.js';
15
16
  import * as customUtils from './src/utils.js';
16
- import type { <%= h.changeCase.pascal(documentType) %>PHState } from './gen/ph-factories.js';
17
+ import type { <%= h.changeCase.pascal(documentType) %>PHState } from './gen/types.js';
17
18
 
18
19
  const utils = { ...genUtils, ...customUtils };
19
- const actions = { ...BaseActions, ...<%= h.changeCase.pascal(documentType) %>Actions };
20
+ const actions = { ...baseActions, ...<%= h.changeCase.pascal(documentType) %>Actions };
20
21
 
21
22
  export const module: DocumentModelModule<
22
23
  <%= h.changeCase.pascal(documentType) %>PHState
@@ -24,7 +25,7 @@ export const module: DocumentModelModule<
24
25
  reducer,
25
26
  actions,
26
27
  utils,
27
- documentModel,
28
+ documentModel: createState(defaultBaseState(), documentModel),
28
29
  };
29
30
 
30
31
  export { reducer, actions, utils, documentModel };
@@ -2,20 +2,30 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/types.ts"
3
3
  force: true
4
4
  ---
5
- import type { PHDocument } from 'document-model';
5
+ import type { PHDocument, PHBaseState } from 'document-model';
6
6
  import type { <%= h.changeCase.pascal(documentType) %>Action } from './actions.js';
7
- import type { <%= h.changeCase.pascal(documentType) %>PHState } from './ph-factories.js';
8
7
  import type {
9
- <%= h.changeCase.pascal(documentType) %>State,
8
+ <%= h.changeCase.pascal(documentType) %>State as <%= h.changeCase.pascal(documentType) %>GlobalState,
10
9
  <% if(hasLocalSchema) { -%>
11
10
  <%= h.changeCase.pascal(documentType) %>LocalState,
12
11
  <%} -%>
13
12
  } from './schema/types.js';
14
13
 
15
14
  export { z } from './schema/index.js';
16
- export type * from './schema/types.js';
15
+ export * from './schema/types.js';
17
16
  <% if(!hasLocalSchema) { -%>
18
17
  <%= 'type ' + h.changeCase.pascal(documentType) %>LocalState = Record<PropertyKey, never>;
19
18
  <%} -%>
20
- export type <%= h.changeCase.pascal(documentType) %>Document = PHDocument<<%= h.changeCase.pascal(documentType) %>PHState>;
21
- export type { <%= h.changeCase.pascal(documentType) %>State, <%= h.changeCase.pascal(documentType) %>LocalState, <%= h.changeCase.pascal(documentType) %>Action };
19
+ type <%= h.changeCase.pascal(documentType) %>PHState = PHBaseState & {
20
+ global: <%= h.changeCase.pascal(documentType) %>GlobalState;
21
+ local: <%= h.changeCase.pascal(documentType) %>LocalState;
22
+ };
23
+ type <%= h.changeCase.pascal(documentType) %>Document = PHDocument<<%= h.changeCase.pascal(documentType) %>PHState>;
24
+
25
+ export type {
26
+ <%= h.changeCase.pascal(documentType) %>GlobalState,
27
+ <%= h.changeCase.pascal(documentType) %>LocalState,
28
+ <%= h.changeCase.pascal(documentType) %>PHState,
29
+ <%= h.changeCase.pascal(documentType) %>Action,
30
+ <%= h.changeCase.pascal(documentType) %>Document,
31
+ };
@@ -2,69 +2,55 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/utils.ts"
3
3
  force: true
4
4
  ---
5
+ import type {
6
+ DocumentModelUtils,
7
+ } from "document-model";
5
8
  import {
6
- type CreateDocument,
7
- type CreateState,
8
- type LoadFromFile,
9
- type LoadFromInput,
10
9
  baseCreateDocument,
11
- baseSaveToFile,
12
10
  baseSaveToFileHandle,
13
- baseLoadFromFile,
14
11
  baseLoadFromInput,
15
12
  defaultBaseState,
16
13
  generateId,
17
- } from 'document-model';
18
- import {
19
- <%= 'type ' + h.changeCase.pascal(documentType) %>State,
20
- <%= 'type ' + h.changeCase.pascal(documentType) %>LocalState
14
+ } from 'document-model/core';
15
+ import type {
16
+ <%= h.changeCase.pascal(documentType) %>GlobalState,
17
+ <%= h.changeCase.pascal(documentType) %>LocalState
21
18
  } from './types.js';
22
- import { <%= h.changeCase.pascal(documentType) %>PHState } from './ph-factories.js';
19
+ import type { <%= h.changeCase.pascal(documentType) %>PHState } from './types.js';
23
20
  import { reducer } from './reducer.js';
24
21
 
25
- export const initialGlobalState: <%= h.changeCase.pascal(documentType) %>State = <%- initialGlobalState %>;
22
+ export const initialGlobalState: <%= h.changeCase.pascal(documentType) %>GlobalState = <%- initialGlobalState %>;
26
23
  export const initialLocalState: <%= h.changeCase.pascal(documentType) %>LocalState = <%- initialLocalState %>;
27
24
 
28
- export const createState: CreateState<<%= h.changeCase.pascal(documentType) %>PHState> = (state) => {
29
- return {
30
- ...defaultBaseState(),
31
- global: { ...initialGlobalState, ...(state?.global ?? {}) },
32
- local: { ...initialLocalState, ...(state?.local ?? {}) }
33
- };
34
- };
35
-
36
- export const createDocument: CreateDocument<<%= h.changeCase.pascal(documentType) %>PHState> = (state) => {
37
- const document = baseCreateDocument(createState, state);
38
- document.header.documentType = '<%- documentTypeId %>';
39
- // for backwards compatibility, but this is NOT a valid signed document id
40
- document.header.id = generateId();
41
- return document;
42
- };
43
-
44
- export const saveToFile = (document: any, path: string, name?: string) => {
45
- return baseSaveToFile(document, path, '<%- fileExtension %>', name);
46
- };
47
-
48
- export const saveToFileHandle = (document: any, input: any) => {
49
- return baseSaveToFileHandle(document, input);
50
- };
51
-
52
- export const loadFromFile: LoadFromFile<<%= h.changeCase.pascal(documentType) %>PHState> = (path) => {
53
- return baseLoadFromFile(path, reducer);
54
- };
55
-
56
- export const loadFromInput: LoadFromInput<<%= h.changeCase.pascal(documentType) %>PHState> = (input) => {
57
- return baseLoadFromInput(input, reducer);
58
- };
59
-
60
- const utils = {
25
+ const utils: DocumentModelUtils<<%= h.changeCase.pascal(documentType) %>PHState> = {
61
26
  fileExtension: '<%- fileExtension %>',
62
- createState,
63
- createDocument,
64
- saveToFile,
65
- saveToFileHandle,
66
- loadFromFile,
67
- loadFromInput,
27
+ createState(state) {
28
+ return { ...defaultBaseState(), global: { ...initialGlobalState, ...state?.global }, local: { ...initialLocalState, ...state?.local } };
29
+ },
30
+ createDocument(state) {
31
+ const document = baseCreateDocument(
32
+ utils.createState,
33
+ state
34
+ );
35
+
36
+ document.header.documentType = '<%- documentTypeId %>';
37
+
38
+ // for backwards compatibility, but this is NOT a valid signed document id
39
+ document.header.id = generateId();
40
+
41
+ return document;
42
+ },
43
+ saveToFileHandle(document, input) {
44
+ return baseSaveToFileHandle(document, input);
45
+ },
46
+ loadFromInput(input) {
47
+ return baseLoadFromInput(input, reducer);
48
+ },
68
49
  };
69
50
 
51
+ export const createDocument = utils.createDocument;
52
+ export const createState = utils.createState;
53
+ export const saveToFileHandle = utils.saveToFileHandle;
54
+ export const loadFromInput = utils.loadFromInput;
55
+
70
56
  export default utils;
@@ -2,7 +2,7 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(documentType) %>/gen/<%= module %>/creators.ts"
3
3
  force: true
4
4
  ---
5
- import { createAction<% if (actions.find(a => a.hasAttachment)) {%>, AttachmentInput<%}%> } from 'document-model';
5
+ import { createAction<% if (actions.find(a => a.hasAttachment)) {%>, AttachmentInput<%}%> } from 'document-model/core';
6
6
  import { z,
7
7
  <% actions.filter(a => a.hasInput).forEach(action => { _%>
8
8
  <%= 'type ' + h.changeCase.pascal(action.name) %>Input,
@@ -1,40 +1,53 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
4
- exports.default = {
5
- params: ({ args }) => {
6
- const documentModel = JSON.parse(args.documentModel);
7
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
8
- const filteredModules = latestSpec.modules.filter((m) => m.name === args.module);
9
- const actions = filteredModules.length > 0
10
- ? filteredModules[0].operations.map((a) => ({
11
- name: a.name,
12
- hasInput: a.schema !== null,
13
- hasAttachment: a.schema?.includes(": Attachment"),
14
- scope: a.scope || "global",
15
- state: a.scope === "global" ? "" : a.scope, // the state this action affects
16
- errors: a.errors,
17
- }))
18
- : [];
19
- const errors = actions.reduce((acc, action) => {
20
- action.errors.forEach((error) => {
21
- const existingError = acc.find((e) => e.code === error.code);
22
- if (!existingError) {
23
- acc.push(error);
24
- }
25
- else if (JSON.stringify(existingError) !== JSON.stringify(error)) {
26
- console.warn(`Warning: Duplicate error code "${error.code}" with different fields found`);
27
- }
28
- });
29
- return acc;
30
- }, []);
31
- return {
32
- rootDir: args.rootDir,
33
- documentType: documentModel.name,
34
- module: (0, change_case_1.paramCase)(args.module),
35
- actions,
36
- errors,
37
- };
38
- },
1
+ // @ts-check
2
+ const { paramCase, pascalCase } = require("change-case");
3
+
4
+ module.exports = {
5
+ params: ({ args }) => {
6
+ const documentModel = JSON.parse(args.documentModel);
7
+ const latestSpec =
8
+ documentModel.specifications[documentModel.specifications.length - 1];
9
+ const filteredModules = latestSpec.modules.filter(
10
+ (m) => m.name === args.module,
11
+ );
12
+
13
+ const actions =
14
+ filteredModules.length > 0
15
+ ? filteredModules[0].operations.map((a) => ({
16
+ name: a.name,
17
+ hasInput: a.schema !== null,
18
+ hasAttachment: a.schema?.includes(": Attachment"),
19
+ scope: a.scope || "global",
20
+ state: a.scope === "global" ? "" : a.scope, // the state this action affects
21
+ errors: a.errors,
22
+ }))
23
+ : [];
24
+
25
+ const errors = actions.reduce((acc, action) => {
26
+ action.errors.forEach((error) => {
27
+ // Fallback: If error code is empty, generate it from the error name in PascalCase
28
+ const errorCode = error.code || pascalCase(error.name || "");
29
+ const normalizedError = { ...error, code: errorCode };
30
+
31
+ const existingError = acc.find((e) => e.code === errorCode);
32
+ if (!existingError) {
33
+ acc.push(normalizedError);
34
+ } else if (
35
+ JSON.stringify(existingError) !== JSON.stringify(normalizedError)
36
+ ) {
37
+ console.warn(
38
+ `Warning: Duplicate error code "${errorCode}" with different fields found`,
39
+ );
40
+ }
41
+ });
42
+ return acc;
43
+ }, []);
44
+
45
+ return {
46
+ rootDir: args.rootDir,
47
+ documentType: documentModel.name,
48
+ module: paramCase(args.module),
49
+ actions,
50
+ errors,
51
+ };
52
+ },
39
53
  };
40
- //# sourceMappingURL=index.js.map
@@ -1,22 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
1
+ // @ts-check
2
+ const { paramCase } = require("change-case");
3
+
4
4
  const generateDocumentModelMutations = {
5
- params: ({ args, }) => {
6
- const documentModel = JSON.parse(args.documentModel);
7
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
8
- return {
9
- rootDir: args.rootDir,
10
- subgraph: args.subgraph,
11
- documentTypeId: documentModel.id,
12
- documentType: documentModel.name,
13
- schema: latestSpec.state.global.schema,
14
- modules: latestSpec.modules.map((m) => ({
15
- ...m,
16
- name: (0, change_case_1.paramCase)(m.name),
17
- })),
18
- };
19
- },
5
+ params: ({ args }) => {
6
+ const documentModel = JSON.parse(args.documentModel);
7
+ const latestSpec =
8
+ documentModel.specifications[documentModel.specifications.length - 1];
9
+
10
+ return {
11
+ rootDir: args.rootDir,
12
+ subgraph: args.subgraph,
13
+ documentTypeId: documentModel.id,
14
+ documentType: documentModel.name,
15
+ schema: latestSpec.state.global.schema,
16
+ modules: latestSpec.modules.map((m) => ({
17
+ ...m,
18
+ name: paramCase(m.name),
19
+ })),
20
+ };
21
+ },
20
22
  };
21
- exports.default = generateDocumentModelMutations;
22
- //# sourceMappingURL=index.js.map
23
+ module.exports = generateDocumentModelMutations;