@powerhousedao/codegen 5.1.0-dev.17 → 5.1.0-dev.18

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 (114) hide show
  1. package/dist/src/codegen/__tests__/generate-doc-model.test.js +10 -24
  2. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
  3. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
  4. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +2 -0
  5. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +1 -0
  6. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +142 -0
  7. package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +1 -0
  8. package/dist/src/codegen/generate.d.ts +20 -4
  9. package/dist/src/codegen/generate.d.ts.map +1 -1
  10. package/dist/src/codegen/generate.js +57 -53
  11. package/dist/src/codegen/generate.js.map +1 -1
  12. package/dist/src/codegen/hygen.d.ts.map +1 -1
  13. package/dist/src/codegen/hygen.js +0 -1
  14. package/dist/src/codegen/hygen.js.map +1 -1
  15. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.d.ts.map +1 -1
  16. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js +53 -44
  17. package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js.map +1 -1
  18. package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js +20 -23
  19. package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js.map +1 -1
  20. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.d.ts.map +1 -1
  21. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js +193 -21
  22. package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js.map +1 -1
  23. package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts +21 -1
  24. package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts.map +1 -1
  25. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts +31 -0
  26. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts.map +1 -0
  27. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js +136 -0
  28. package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js.map +1 -0
  29. package/dist/src/ts-morph-utils/file-builders/document-model.d.ts +2 -2
  30. package/dist/src/ts-morph-utils/file-builders/document-model.d.ts.map +1 -1
  31. package/dist/src/ts-morph-utils/file-builders/document-model.js +209 -34
  32. package/dist/src/ts-morph-utils/file-builders/document-model.js.map +1 -1
  33. package/dist/src/ts-morph-utils/file-builders/index-files.d.ts +2 -1
  34. package/dist/src/ts-morph-utils/file-builders/index-files.d.ts.map +1 -1
  35. package/dist/src/ts-morph-utils/file-builders/index-files.js +6 -2
  36. package/dist/src/ts-morph-utils/file-builders/index-files.js.map +1 -1
  37. package/dist/src/ts-morph-utils/file-builders/module-files.d.ts.map +1 -1
  38. package/dist/src/ts-morph-utils/file-builders/module-files.js +20 -8
  39. package/dist/src/ts-morph-utils/file-builders/module-files.js.map +1 -1
  40. package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts +5 -23
  41. package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts.map +1 -1
  42. package/dist/src/ts-morph-utils/name-builders/get-variable-names.js +26 -34
  43. package/dist/src/ts-morph-utils/name-builders/get-variable-names.js.map +1 -1
  44. package/dist/src/ts-morph-utils/name-builders/types.d.ts +6 -2
  45. package/dist/src/ts-morph-utils/name-builders/types.d.ts.map +1 -1
  46. package/dist/src/ts-morph-utils/syntax-getters.d.ts +1 -0
  47. package/dist/src/ts-morph-utils/syntax-getters.d.ts.map +1 -1
  48. package/dist/src/ts-morph-utils/syntax-getters.js +6 -0
  49. package/dist/src/ts-morph-utils/syntax-getters.js.map +1 -1
  50. package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts +2 -2
  51. package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts.map +1 -1
  52. package/dist/src/ts-morph-utils/templates/document-model/actions.js.map +1 -1
  53. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts +2 -2
  54. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts.map +1 -1
  55. package/dist/src/ts-morph-utils/templates/document-model/gen/actions.js.map +1 -1
  56. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts +2 -2
  57. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts.map +1 -1
  58. package/dist/src/ts-morph-utils/templates/document-model/gen/creators.js.map +1 -1
  59. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts +2 -2
  60. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts.map +1 -1
  61. package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.js.map +1 -1
  62. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts +2 -2
  63. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts.map +1 -1
  64. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js +2 -2
  65. package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js.map +1 -1
  66. package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts +2 -2
  67. package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts.map +1 -1
  68. package/dist/src/ts-morph-utils/templates/document-model/gen/index.js.map +1 -1
  69. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts +2 -2
  70. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts.map +1 -1
  71. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.js.map +1 -1
  72. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts +2 -2
  73. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts.map +1 -1
  74. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.js.map +1 -1
  75. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts +2 -2
  76. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts.map +1 -1
  77. package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.js.map +1 -1
  78. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts +2 -2
  79. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts.map +1 -1
  80. package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.js.map +1 -1
  81. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts +2 -2
  82. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts.map +1 -1
  83. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js +1 -1
  84. package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js.map +1 -1
  85. package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts +2 -2
  86. package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts.map +1 -1
  87. package/dist/src/ts-morph-utils/templates/document-model/gen/types.js +14 -14
  88. package/dist/src/ts-morph-utils/templates/document-model/gen/types.js.map +1 -1
  89. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts +2 -2
  90. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts.map +1 -1
  91. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js +18 -18
  92. package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js.map +1 -1
  93. package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts +2 -2
  94. package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts.map +1 -1
  95. package/dist/src/ts-morph-utils/templates/document-model/hooks.js +1 -1
  96. package/dist/src/ts-morph-utils/templates/document-model/hooks.js.map +1 -1
  97. package/dist/src/ts-morph-utils/templates/document-model/module.d.ts +2 -2
  98. package/dist/src/ts-morph-utils/templates/document-model/module.d.ts.map +1 -1
  99. package/dist/src/ts-morph-utils/templates/document-model/module.js +3 -3
  100. package/dist/src/ts-morph-utils/templates/document-model/module.js.map +1 -1
  101. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts +2 -2
  102. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts.map +1 -1
  103. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js +1 -1
  104. package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js.map +1 -1
  105. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts +5 -2
  106. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts.map +1 -1
  107. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js +24 -4
  108. package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js.map +1 -1
  109. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts +7 -0
  110. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts.map +1 -0
  111. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js +22 -0
  112. package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js.map +1 -0
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +7 -7
@@ -1,24 +1,20 @@
1
+ import { paramCase } from "change-case";
2
+ import { writeFileSync } from "fs";
3
+ import path from "path";
4
+ import {} from "ts-morph";
1
5
  import { generateDocumentModelZodSchemas } from "../../codegen/graphql.js";
2
- import { TSMorphCodeGenerator } from "../../ts-morph-generator/index.js";
3
6
  import { documentModelModulesOutputFileName, documentModelModulesVariableName, documentModelModulesVariableType, documentModelModuleTypeName, } from "../constants.js";
7
+ import { formatSourceFileWithPrettier, getOrCreateSourceFile, } from "../file-utils.js";
4
8
  import { getDocumentModelFilePaths } from "../name-builders/get-file-paths.js";
5
- import { getDocumentModelVariableNames } from "../name-builders/get-variable-names.js";
9
+ import { getDocumentModelDirName, getDocumentModelVariableNames, } from "../name-builders/get-variable-names.js";
10
+ import { getInitialStates } from "../templates/unsafe-utils.js";
6
11
  import { buildTsMorphProject } from "../ts-morph-project.js";
7
12
  import { makeGenDirFiles } from "./document-model/gen-dir.js";
8
13
  import { makeRootDirFiles } from "./document-model/root-dir.js";
9
14
  import { makeSrcDirFiles } from "./document-model/src-dir.js";
15
+ import { createOrUpdateUpgradeManifestFile, createOrUpdateVersionConstantsFile, makeUpgradeFile, makeUpgradesIndexFile, } from "./document-model/upgrades-dir.js";
10
16
  import { makeModulesFile } from "./module-files.js";
11
- function ensureDirectoriesExist(project, variables) {
12
- const { documentModelsDirPath, documentModelDirPath, srcDirPath, genDirPath, testsDirPath, schemaDirPath, moduleDirPaths, } = variables;
13
- const pathsToEnsure = [
14
- documentModelsDirPath,
15
- documentModelDirPath,
16
- srcDirPath,
17
- genDirPath,
18
- testsDirPath,
19
- schemaDirPath,
20
- ...moduleDirPaths,
21
- ];
17
+ function ensureDirectoriesExist(project, ...pathsToEnsure) {
22
18
  for (const dirPath of pathsToEnsure) {
23
19
  const dir = project.getDirectory(dirPath);
24
20
  if (!dir) {
@@ -27,38 +23,180 @@ function ensureDirectoriesExist(project, variables) {
27
23
  }
28
24
  }
29
25
  }
30
- export async function tsMorphGenerateDocumentModel({ projectDir, packageName, documentModelState, }) {
31
- const project = buildTsMorphProject(projectDir);
32
- const documentModelVariableNames = getDocumentModelVariableNames({
33
- packageName,
34
- projectDir,
35
- documentModelState,
36
- });
37
- const { documentModelDirPath } = documentModelVariableNames;
38
- const specification = documentModelState.specifications[documentModelState.specifications.length - 1];
39
- await generateDocumentModelZodSchemas({
40
- documentModelDirPath,
41
- specification,
42
- });
43
- ensureDirectoriesExist(project, documentModelVariableNames);
44
- const { documentModelsSourceFilesPath } = getDocumentModelFilePaths(projectDir);
45
- project.addSourceFilesAtPaths(documentModelsSourceFilesPath);
26
+ function makeDocumentModelIndexFile(args) {
27
+ const { project, documentModelDirPath, latestVersion } = args;
28
+ const filePath = path.join(documentModelDirPath, "index.ts");
29
+ const { sourceFile } = getOrCreateSourceFile(project, filePath);
30
+ sourceFile.replaceWithText("");
31
+ sourceFile.addExportDeclarations([
32
+ { moduleSpecifier: `./v${latestVersion}/index.js` },
33
+ { moduleSpecifier: `./upgrades/index.js` },
34
+ ]);
35
+ formatSourceFileWithPrettier(sourceFile);
36
+ }
37
+ function writeDocumentModelStateJsonFile({ documentModelState, documentModelDirName, documentModelDirPath, }) {
38
+ const filePath = path.join(documentModelDirPath, `${documentModelDirName}.json`);
39
+ const documentModelStateJson = JSON.stringify(documentModelState, null, 2);
40
+ writeFileSync(filePath, documentModelStateJson);
41
+ }
42
+ async function generateDocumentModelForSpec({ project, projectDir, packageName, documentModelState, documentModelPackageImportPath, documentModelsDirPath, documentModelDirName, documentModelDirPath, useVersioning, version, ...documentModelVariableNames }) {
43
+ const specification = documentModelState.specifications.find((spec) => spec.version === version);
44
+ if (!specification) {
45
+ throw new Error(`Document model specifications array is misconfigured, no specification found for version: ${version}`);
46
+ }
47
+ const versionDirName = useVersioning ? `v${version}` : "";
48
+ const documentModelVersionDirName = path.join(documentModelDirName, versionDirName);
49
+ const documentModelVersionDirPath = path.join(documentModelDirPath, versionDirName);
50
+ const versionedDocumentModelPackageImportPath = path.join(documentModelPackageImportPath, versionDirName);
51
+ const fileExtension = documentModelState.extension;
52
+ const documentTypeId = documentModelState.id;
53
+ const srcDirPath = path.join(documentModelVersionDirPath, "src");
54
+ const reducersDirPath = path.join(srcDirPath, "reducers");
55
+ const testsDirPath = path.join(srcDirPath, "tests");
56
+ const genDirPath = path.join(documentModelVersionDirPath, "gen");
57
+ const schemaDirPath = path.join(genDirPath, "schema");
58
+ const { initialGlobalState, initialLocalState } = getInitialStates(specification.state);
59
+ const hasLocalSchema = specification.state.local.schema !== "";
60
+ const modules = specification.modules;
61
+ const moduleDirPaths = modules.map((module) => path.join(genDirPath, paramCase(module.name)));
62
+ ensureDirectoriesExist(project, documentModelVersionDirPath, reducersDirPath, testsDirPath, schemaDirPath, ...moduleDirPaths);
46
63
  const fileMakerArgs = {
47
64
  project,
48
65
  projectDir,
49
66
  packageName,
67
+ version,
68
+ useVersioning,
69
+ documentTypeId,
70
+ documentModelState,
71
+ initialGlobalState,
72
+ initialLocalState,
73
+ modules,
74
+ hasLocalSchema,
75
+ documentModelsDirPath,
76
+ documentModelDirPath,
77
+ documentModelDirName,
78
+ documentModelVersionDirName,
79
+ documentModelVersionDirPath,
80
+ documentModelPackageImportPath,
81
+ versionedDocumentModelPackageImportPath,
82
+ srcDirPath,
83
+ genDirPath,
84
+ testsDirPath,
85
+ schemaDirPath,
86
+ reducersDirPath,
87
+ fileExtension,
50
88
  ...documentModelVariableNames,
51
89
  };
90
+ await generateDocumentModelZodSchemas({
91
+ documentModelDirPath: documentModelVersionDirPath,
92
+ specification,
93
+ });
52
94
  makeRootDirFiles(fileMakerArgs);
53
95
  makeGenDirFiles(fileMakerArgs);
54
96
  makeSrcDirFiles(fileMakerArgs);
55
97
  makeDocumentModelModulesFile(fileMakerArgs);
56
- project.saveSync();
57
- const generator = new TSMorphCodeGenerator(projectDir, [documentModelState], packageName, {
58
- directories: { documentModelDir: "document-models" },
59
- forceUpdate: true,
98
+ if (!useVersioning)
99
+ return;
100
+ const previousVersionDirPath = getPreviousVersionDirPath(documentModelDirPath, version);
101
+ if (!previousVersionDirPath)
102
+ return;
103
+ persistCustomFilesFromPreviousVersion({
104
+ project,
105
+ currentVersionDirPath: documentModelVersionDirPath,
106
+ previousVersionDirPath,
60
107
  });
61
- await generator.generateReducers();
108
+ }
109
+ export async function tsMorphGenerateDocumentModel({ projectDir, packageName, documentModelState, useVersioning, }) {
110
+ const project = buildTsMorphProject(projectDir);
111
+ const { documentModelsSourceFilesPath } = getDocumentModelFilePaths(projectDir);
112
+ project.addSourceFilesAtPaths(documentModelsSourceFilesPath);
113
+ const documentModelsDirPath = path.join(projectDir, "document-models");
114
+ const documentModelDirName = getDocumentModelDirName(documentModelState);
115
+ const documentModelDirPath = path.join(documentModelsDirPath, documentModelDirName);
116
+ const documentModelVariableNames = getDocumentModelVariableNames(documentModelState.name);
117
+ ensureDirectoriesExist(project, documentModelsDirPath, documentModelDirPath);
118
+ const upgradesDirPath = path.join(documentModelDirPath, "upgrades");
119
+ if (useVersioning) {
120
+ ensureDirectoriesExist(project, upgradesDirPath);
121
+ }
122
+ const documentModelPackageImportPath = path.join(packageName, "document-models", documentModelDirName);
123
+ const specVersions = [
124
+ ...new Set([
125
+ ...documentModelState.specifications.map((spec) => spec.version),
126
+ ]),
127
+ ].toSorted();
128
+ if (specVersions.length !== documentModelState.specifications.length) {
129
+ throw new Error("Document model specifications array is misconfigured. Length is not match with spec versions.");
130
+ }
131
+ const latestVersion = specVersions[specVersions.length - 1];
132
+ if (documentModelState.specifications[documentModelState.specifications.length - 1].version !== latestVersion) {
133
+ throw new Error("Document model has incorrect version at the latest version index");
134
+ }
135
+ writeDocumentModelStateJsonFile({
136
+ documentModelState,
137
+ documentModelDirName,
138
+ documentModelDirPath,
139
+ });
140
+ if (useVersioning) {
141
+ await Promise.all(specVersions.map(async (version) => await generateDocumentModelForSpec({
142
+ project,
143
+ version,
144
+ useVersioning: true,
145
+ packageName,
146
+ documentModelState,
147
+ projectDir,
148
+ documentModelsDirPath,
149
+ documentModelDirName,
150
+ documentModelDirPath,
151
+ documentModelPackageImportPath,
152
+ ...documentModelVariableNames,
153
+ })));
154
+ for (const version of specVersions) {
155
+ makeUpgradeFile({
156
+ version,
157
+ upgradesDirPath,
158
+ project,
159
+ documentModelPackageImportPath,
160
+ ...documentModelVariableNames,
161
+ });
162
+ }
163
+ makeDocumentModelIndexFile({
164
+ project,
165
+ documentModelDirPath,
166
+ latestVersion,
167
+ });
168
+ createOrUpdateVersionConstantsFile({
169
+ project,
170
+ specVersions,
171
+ latestVersion,
172
+ upgradesDirPath,
173
+ });
174
+ createOrUpdateUpgradeManifestFile({
175
+ project,
176
+ specVersions,
177
+ latestVersion,
178
+ upgradesDirPath,
179
+ documentModelId: documentModelState.id,
180
+ ...documentModelVariableNames,
181
+ });
182
+ makeUpgradesIndexFile({ project, upgradesDirPath, specVersions });
183
+ }
184
+ else {
185
+ await generateDocumentModelForSpec({
186
+ project,
187
+ useVersioning: false,
188
+ version: latestVersion,
189
+ packageName,
190
+ documentModelState,
191
+ projectDir,
192
+ documentModelsDirPath,
193
+ documentModelDirName,
194
+ documentModelDirPath,
195
+ documentModelPackageImportPath,
196
+ ...documentModelVariableNames,
197
+ });
198
+ }
199
+ project.saveSync();
62
200
  }
63
201
  export function makeDocumentModelModulesFile({ project, projectDir, }) {
64
202
  const { documentModelsDirPath, documentModelsSourceFilesPath } = getDocumentModelFilePaths(projectDir);
@@ -72,4 +210,41 @@ export function makeDocumentModelModulesFile({ project, projectDir, }) {
72
210
  variableType: documentModelModulesVariableType,
73
211
  });
74
212
  }
213
+ function getPreviousVersionDirPath(documentModelDirPath, version) {
214
+ const previousVersion = version - 1;
215
+ if (previousVersion < 1)
216
+ return;
217
+ const previousVersionDirName = `v${previousVersion}`;
218
+ return path.join(documentModelDirPath, previousVersionDirName);
219
+ }
220
+ function persistCustomFilesFromPreviousVersion(args) {
221
+ const { project, currentVersionDirPath, previousVersionDirPath } = args;
222
+ const currentVersionDir = project.getDirectoryOrThrow(currentVersionDirPath);
223
+ const previousVersionDir = project.getDirectory(previousVersionDirPath);
224
+ if (!previousVersionDir)
225
+ return;
226
+ const currentVersionSourceFiles = currentVersionDir.getDescendantSourceFiles();
227
+ const previousVersionSourceFiles = previousVersionDir.getDescendantSourceFiles();
228
+ const currentVersionDirs = currentVersionDir.getDescendantDirectories();
229
+ const previousVersionDirs = previousVersionDir.getDescendantDirectories();
230
+ const previousVersionRelativeDirPaths = previousVersionDirs.map((d) => previousVersionDir.getRelativePathTo(d));
231
+ const currentVersionRelativeDirPaths = currentVersionDirs.map((d) => currentVersionDir.getRelativePathTo(d));
232
+ const missingDirPaths = previousVersionRelativeDirPaths.filter((p) => !currentVersionRelativeDirPaths.includes(p));
233
+ const missingDirs = previousVersionDirs.filter((f) => missingDirPaths.includes(previousVersionDir.getRelativePathTo(f)));
234
+ for (const dir of missingDirs) {
235
+ const relativePath = previousVersionDir.getRelativePathTo(dir);
236
+ const newDir = currentVersionDir.createDirectory(relativePath);
237
+ newDir.saveSync();
238
+ }
239
+ const previousVersionRelativeFilePaths = previousVersionSourceFiles.map((f) => previousVersionDir.getRelativePathTo(f));
240
+ const currentVersionRelativeFilePaths = currentVersionSourceFiles.map((f) => currentVersionDir.getRelativePathTo(f));
241
+ const missingFilePaths = previousVersionRelativeFilePaths.filter((p) => !currentVersionRelativeFilePaths.includes(p));
242
+ const missingFiles = previousVersionSourceFiles.filter((f) => missingFilePaths.includes(previousVersionDir.getRelativePathTo(f)));
243
+ for (const file of missingFiles) {
244
+ const relativePath = previousVersionDir.getRelativePathTo(file);
245
+ const fileText = file.getText();
246
+ const newFile = currentVersionDir.createSourceFile(relativePath, fileText);
247
+ newFile.saveSync();
248
+ }
249
+ }
75
250
  //# sourceMappingURL=document-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document-model.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAEvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,SAAqC;IAErC,MAAM,EACJ,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,cAAc,GACf,GAAG,SAAS,CAAC;IAEd,MAAM,aAAa,GAAG;QACpB,qBAAqB;QACrB,oBAAoB;QACpB,UAAU;QACV,UAAU;QACV,YAAY;QACZ,aAAa;QACb,GAAG,cAAc;KAClB,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,UAAU,EACV,WAAW,EACX,kBAAkB,GACQ;IAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhD,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;QAC/D,WAAW;QACX,UAAU;QACV,kBAAkB;KACnB,CAAC,CAAC;IAEH,MAAM,EAAE,oBAAoB,EAAE,GAAG,0BAA0B,CAAC;IAC5D,MAAM,aAAa,GACjB,kBAAkB,CAAC,cAAc,CAC/B,kBAAkB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAC7C,CAAC;IAEJ,MAAM,+BAA+B,CAAC;QACpC,oBAAoB;QACpB,aAAa;KACd,CAAC,CAAC;IAEH,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;IAC5D,MAAM,EAAE,6BAA6B,EAAE,GACrC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;IAE7D,MAAM,aAAa,GAAG;QACpB,OAAO;QACP,UAAU;QACV,WAAW;QACX,GAAG,0BAA0B;KAC9B,CAAC;IAEF,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC/B,eAAe,CAAC,aAAa,CAAC,CAAC;IAC/B,4BAA4B,CAAC,aAAa,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEnB,MAAM,SAAS,GAAG,IAAI,oBAAoB,CACxC,UAAU,EACV,CAAC,kBAAkB,CAAC,EACpB,WAAW,EACX;QACE,WAAW,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE;QACpD,WAAW,EAAE,IAAI;KAClB,CACF,CAAC;IAEF,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,OAAO,EACP,UAAU,GAIX;IACC,MAAM,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,GAC5D,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxC,eAAe,CAAC;QACd,OAAO;QACP,cAAc,EAAE,qBAAqB;QACrC,sBAAsB,EAAE,6BAA6B;QACrD,cAAc,EAAE,kCAAkC;QAClD,QAAQ,EAAE,2BAA2B;QACrC,YAAY,EAAE,gCAAgC;QAC9C,YAAY,EAAE,gCAAgC;KAC/C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"document-model.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-model.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ type MakeLegacyIndexFileArgs = {
5
5
  /** The directory containing the module.ts files to generate from */
6
6
  modulesDirPath: string;
7
7
  modules: {
8
- name: string;
8
+ unversionedName: string;
9
+ versionedName: string | undefined;
9
10
  moduleSpecifier: string;
10
11
  }[];
11
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index-files.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/index-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,KAAK,uBAAuB,GAAG;IAC7B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,OAAO,GACR,EAAE,uBAAuB,QAqBzB"}
1
+ {"version":3,"file":"index-files.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/index-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,KAAK,uBAAuB,GAAG;IAC7B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,eAAe,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,OAAO,GACR,EAAE,uBAAuB,QAyBzB"}
@@ -13,8 +13,12 @@ export function makeLegacyIndexFile({ project, modulesDirPath, modules, }) {
13
13
  else {
14
14
  indexSourceFile.replaceWithText("");
15
15
  }
16
- indexSourceFile.addExportDeclarations(modules.map(({ name, moduleSpecifier }) => ({
17
- namedExports: [name],
16
+ indexSourceFile.addExportDeclarations(modules.map(({ versionedName, unversionedName, moduleSpecifier }) => ({
17
+ namedExports: [
18
+ versionedName
19
+ ? `${unversionedName} as ${versionedName}`
20
+ : unversionedName,
21
+ ],
18
22
  moduleSpecifier,
19
23
  })));
20
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index-files.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/index-files.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAa9E;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,OAAO,GACiB;IACxB,MAAM,mBAAmB,GAAG,0BAA0B,CACpD,cAAc,EACd,UAAU,CACX,CAAC;IAEF,yDAAyD;IACzD,IAAI,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjE,gDAAgD;IAChD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,qBAAqB,CACnC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,YAAY,EAAE,CAAC,IAAI,CAAC;QACpB,eAAe;KAChB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index-files.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/index-files.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAc9E;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,OAAO,GACiB;IACxB,MAAM,mBAAmB,GAAG,0BAA0B,CACpD,cAAc,EACd,UAAU,CACX,CAAC;IAEF,yDAAyD;IACzD,IAAI,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjE,gDAAgD;IAChD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,qBAAqB,CACnC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,YAAY,EAAE;YACZ,aAAa;gBACX,CAAC,CAAC,GAAG,eAAe,OAAO,aAAa,EAAE;gBAC1C,CAAC,CAAC,eAAe;SACpB;QACD,eAAe;KAChB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module-files.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/module-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMxC,KAAK,kBAAkB,GAAG;IACxB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uGAAuG;IACvG,cAAc,EAAE,MAAM,CAAC;IACvB,iHAAiH;IACjH,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAC;IACrB,+GAA+G;IAC/G,YAAY,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,yBAAgC,GACjC,EAAE,kBAAkB,QAyGpB"}
1
+ {"version":3,"file":"module-files.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/module-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMxC,KAAK,kBAAkB,GAAG;IACxB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uGAAuG;IACvG,cAAc,EAAE,MAAM,CAAC;IACvB,iHAAiH;IACjH,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,YAAY,EAAE,MAAM,CAAC;IACrB,+GAA+G;IAC/G,YAAY,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AACF;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,yBAAgC,GACjC,EAAE,kBAAkB,QAoHpB"}
@@ -1,3 +1,4 @@
1
+ import { pascalCase } from "change-case";
1
2
  import { SyntaxKind, VariableDeclarationKind } from "ts-morph";
2
3
  import { buildModulesOutputFilePath } from "../name-builders/common-files.js";
3
4
  import { getVariableDeclarationByTypeName } from "../syntax-getters.js";
@@ -20,12 +21,14 @@ export function makeModulesFile({ project, modulesDirPath, modulesSourceFilesPat
20
21
  const modules = moduleDeclarations
21
22
  .filter((module) => module !== undefined)
22
23
  .map((module) => {
23
- const name = module.getName();
24
24
  const sourceFile = module.getSourceFile();
25
- const parentDir = sourceFile.getDirectory();
26
- const parentDirName = parentDir.getBaseName();
27
- const moduleSpecifier = `./${parentDirName}/module.js`;
28
- return { name, moduleSpecifier };
25
+ const moduleSpecifier = modulesDir.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath()) + ".js";
26
+ const versionDir = getVersionDirFromModuleSpecifier(moduleSpecifier);
27
+ const unversionedName = module.getName();
28
+ const versionedName = versionDir
29
+ ? `${unversionedName}${pascalCase(versionDir)}`
30
+ : undefined;
31
+ return { versionedName, unversionedName, moduleSpecifier };
29
32
  });
30
33
  const moduleExportsFilePath = buildModulesOutputFilePath(modulesDirPath, outputFileName);
31
34
  // get the source file for the modules file if it exists
@@ -42,8 +45,12 @@ export function makeModulesFile({ project, modulesDirPath, modulesSourceFilesPat
42
45
  moduleSpecifier: "document-model",
43
46
  isTypeOnly: true,
44
47
  };
45
- const moduleImports = modules.map(({ name, moduleSpecifier }) => ({
46
- namedImports: [name],
48
+ const moduleImports = modules.map(({ versionedName, unversionedName, moduleSpecifier }) => ({
49
+ namedImports: [
50
+ versionedName
51
+ ? `${unversionedName} as ${versionedName}`
52
+ : unversionedName,
53
+ ],
47
54
  moduleSpecifier,
48
55
  }));
49
56
  const imports = [typeImport, ...moduleImports];
@@ -78,7 +85,7 @@ export function makeModulesFile({ project, modulesDirPath, modulesSourceFilesPat
78
85
  .at(0)
79
86
  ?.getInitializerIfKind(SyntaxKind.ArrayLiteralExpression);
80
87
  // add the module declaration names to the array literal expression
81
- arrayLiteral?.addElements(modules.map((module) => module.name), { useNewLines: true });
88
+ arrayLiteral?.addElements(modules.map((module) => module.versionedName ?? module.unversionedName), { useNewLines: true });
82
89
  // we also need to export each module from the index.ts file for backwards compatibility
83
90
  if (shouldMakeLegacyIndexFile) {
84
91
  makeLegacyIndexFile({
@@ -89,4 +96,9 @@ export function makeModulesFile({ project, modulesDirPath, modulesSourceFilesPat
89
96
  }
90
97
  project.saveSync();
91
98
  }
99
+ function getVersionDirFromModuleSpecifier(moduleSpecifier) {
100
+ const match = moduleSpecifier.match(/\/(v\d+)(?=\/)/);
101
+ const version = match?.[1];
102
+ return version;
103
+ }
92
104
  //# sourceMappingURL=module-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-files.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/module-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-files.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/module-files.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,11 @@ import { type DocumentModelGlobalState, type ModuleSpecification, type Operation
2
2
  import type { DocumentModelDocumentTypeMetadata, EditorVariableNames } from "../types.js";
3
3
  import type { ActionFromOperation } from "./types.js";
4
4
  export declare function getEditorVariableNames({ documentModelDocumentTypeName, }: DocumentModelDocumentTypeMetadata): EditorVariableNames;
5
- type GetDocumentModelVariableNamesArgs = {
6
- packageName: string;
7
- projectDir: string;
8
- documentModelState: DocumentModelGlobalState;
9
- };
10
- export declare function getDocumentModelVariableNames({ packageName, projectDir, documentModelState, }: GetDocumentModelVariableNamesArgs): {
11
- documentModelState: DocumentModelGlobalState;
12
- documentTypeId: string;
5
+ export declare function getDocumentModelDirName(documentModelState: DocumentModelGlobalState, existingDirName?: string): string;
6
+ export declare function getLatestDocumentModelSpec({ specifications, }: DocumentModelGlobalState): import("document-model").DocumentSpecification;
7
+ export declare function getDocumentModelSpecByVersionNumber({ specifications }: DocumentModelGlobalState, version: number): import("document-model").DocumentSpecification;
8
+ export declare function getLatestDocumentModelSpecVersionNumber(documentModelState: DocumentModelGlobalState): number;
9
+ export declare function getDocumentModelVariableNames(documentType: string): {
13
10
  paramCaseDocumentType: string;
14
11
  pascalCaseDocumentType: string;
15
12
  camelCaseDocumentType: string;
@@ -22,14 +19,6 @@ export declare function getDocumentModelVariableNames({ packageName, projectDir,
22
19
  actionTypeName: string;
23
20
  actionsTypeName: string;
24
21
  actionsName: string;
25
- documentModelDir: string;
26
- documentModelsDirPath: string;
27
- documentModelDirPath: string;
28
- srcDirPath: string;
29
- genDirPath: string;
30
- testsDirPath: string;
31
- schemaDirPath: string;
32
- moduleDirPaths: string[];
33
22
  stateSchemaName: string;
34
23
  phDocumentSchemaName: string;
35
24
  isPhStateOfTypeFunctionName: string;
@@ -40,16 +29,9 @@ export declare function getDocumentModelVariableNames({ packageName, projectDir,
40
29
  useSelectedHookName: string;
41
30
  useInSelectedDriveHookName: string;
42
31
  useInSelectedFolderHookName: string;
43
- fileExtension: string;
44
- initialGlobalState: string;
45
- initialLocalState: string;
46
- hasLocalSchema: boolean;
47
- modules: ModuleSpecification[];
48
32
  };
49
33
  export declare function getDocumentModelOperationsModuleVariableNames(module: ModuleSpecification): {
50
34
  actions: ActionFromOperation[];
51
35
  errors: OperationErrorSpecification[];
52
- module: ModuleSpecification;
53
36
  };
54
- export {};
55
37
  //# sourceMappingURL=get-variable-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-variable-names.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/name-builders/get-variable-names.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEjC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EACV,iCAAiC,EACjC,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAetD,wBAAgB,sBAAsB,CAAC,EACrC,6BAA6B,GAC9B,EAAE,iCAAiC,GAAG,mBAAmB,CAkCzD;AAED,KAAK,iCAAiC,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,wBAAwB,CAAC;CAC9C,CAAC;AACF,wBAAgB,6BAA6B,CAAC,EAC5C,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,EAAE,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuFnC;AAED,wBAAgB,6CAA6C,CAC3D,MAAM,EAAE,mBAAmB;;;;EAK5B"}
1
+ {"version":3,"file":"get-variable-names.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/name-builders/get-variable-names.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAEjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,iCAAiC,EACjC,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAetD,wBAAgB,sBAAsB,CAAC,EACrC,6BAA6B,GAC9B,EAAE,iCAAiC,GAAG,mBAAmB,CAkCzD;AAED,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,wBAAwB,EAC5C,eAAe,CAAC,EAAE,MAAM,UAIzB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,cAAc,GACf,EAAE,wBAAwB,kDAE1B;AAED,wBAAgB,mCAAmC,CACjD,EAAE,cAAc,EAAE,EAAE,wBAAwB,EAC5C,OAAO,EAAE,MAAM,kDAoBhB;AAED,wBAAgB,uCAAuC,CACrD,kBAAkB,EAAE,wBAAwB,UAG7C;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;EAiDjE;AAED,wBAAgB,6CAA6C,CAC3D,MAAM,EAAE,mBAAmB;;;EAK5B"}
@@ -1,7 +1,5 @@
1
1
  import { camelCase, paramCase, pascalCase } from "change-case";
2
2
  import {} from "document-model";
3
- import path from "node:path";
4
- import { getInitialStates } from "../templates/unsafe-utils.js";
5
3
  import { buildDispatchFunctionName, buildDocumentNameVariableName, buildDocumentVariableName, buildEditDocumentNameComponentName, buildIsEditingVariableName, buildOnCancelEditHandlerName, buildOnClickHandlerName, buildOnSubmitSetNameFunctionName, buildSetIsEditingFunctionName, buildSetNameActionName, buildUseSelectedDocumentHookName, } from "./variables.js";
6
4
  export function getEditorVariableNames({ documentModelDocumentTypeName, }) {
7
5
  return {
@@ -18,10 +16,31 @@ export function getEditorVariableNames({ documentModelDocumentTypeName, }) {
18
16
  onSubmitSetNameFunctionName: buildOnSubmitSetNameFunctionName(documentModelDocumentTypeName),
19
17
  };
20
18
  }
21
- export function getDocumentModelVariableNames({ packageName, projectDir, documentModelState, }) {
22
- const documentType = documentModelState.name;
23
- const documentTypeId = documentModelState.id;
24
- const latestSpec = documentModelState.specifications[documentModelState.specifications.length - 1];
19
+ export function getDocumentModelDirName(documentModelState, existingDirName) {
20
+ if (existingDirName)
21
+ return existingDirName;
22
+ return paramCase(documentModelState.name);
23
+ }
24
+ export function getLatestDocumentModelSpec({ specifications, }) {
25
+ return specifications[specifications.length - 1];
26
+ }
27
+ export function getDocumentModelSpecByVersionNumber({ specifications }, version) {
28
+ const specificationByIndex = specifications[version];
29
+ const specificationByNumber = specifications.find((spec) => spec.version === version);
30
+ if (!specificationByNumber) {
31
+ console.error(`Specification with version number ${version} does not exist in the document model specifications array`);
32
+ return specificationByIndex;
33
+ }
34
+ if (specificationByIndex.version !== specificationByNumber.version) {
35
+ console.error(`Specification with version ${version} does not match specifications array at index ${version}`);
36
+ return specificationByIndex;
37
+ }
38
+ return specificationByNumber;
39
+ }
40
+ export function getLatestDocumentModelSpecVersionNumber(documentModelState) {
41
+ return getLatestDocumentModelSpec(documentModelState).version;
42
+ }
43
+ export function getDocumentModelVariableNames(documentType) {
25
44
  const paramCaseDocumentType = paramCase(documentType);
26
45
  const pascalCaseDocumentType = pascalCase(documentType);
27
46
  const camelCaseDocumentType = camelCase(documentType);
@@ -34,13 +53,6 @@ export function getDocumentModelVariableNames({ packageName, projectDir, documen
34
53
  const actionTypeName = `${pascalCaseDocumentType}Action`;
35
54
  const actionsTypeName = `${actionTypeName}s`;
36
55
  const actionsName = camelCase(actionsTypeName);
37
- const documentModelDir = `${packageName}/document-models/${paramCaseDocumentType}`;
38
- const documentModelsDirPath = path.join(projectDir, "document-models");
39
- const documentModelDirPath = path.join(documentModelsDirPath, paramCaseDocumentType);
40
- const srcDirPath = path.join(documentModelDirPath, "src");
41
- const testsDirPath = path.join(srcDirPath, "tests");
42
- const genDirPath = path.join(documentModelDirPath, "gen");
43
- const schemaDirPath = path.join(genDirPath, "schema");
44
56
  const stateSchemaName = `${stateName}Schema`;
45
57
  const phDocumentSchemaName = `${phDocumentTypeName}Schema`;
46
58
  const isPhStateOfTypeFunctionName = `is${stateName}`;
@@ -51,14 +63,7 @@ export function getDocumentModelVariableNames({ packageName, projectDir, documen
51
63
  const useSelectedHookName = `useSelected${phDocumentTypeName}`;
52
64
  const useInSelectedDriveHookName = `use${phDocumentTypeName}sInSelectedDrive`;
53
65
  const useInSelectedFolderHookName = `use${phDocumentTypeName}sInSelectedFolder`;
54
- const fileExtension = documentModelState.extension;
55
- const { initialGlobalState, initialLocalState } = getInitialStates(latestSpec.state);
56
- const hasLocalSchema = latestSpec.state.local.schema !== "";
57
- const modules = latestSpec.modules;
58
- const moduleDirPaths = modules.map((module) => path.join(genDirPath, paramCase(module.name)));
59
66
  return {
60
- documentModelState,
61
- documentTypeId,
62
67
  paramCaseDocumentType,
63
68
  pascalCaseDocumentType,
64
69
  camelCaseDocumentType,
@@ -71,14 +76,6 @@ export function getDocumentModelVariableNames({ packageName, projectDir, documen
71
76
  actionTypeName,
72
77
  actionsTypeName,
73
78
  actionsName,
74
- documentModelDir,
75
- documentModelsDirPath,
76
- documentModelDirPath,
77
- srcDirPath,
78
- genDirPath,
79
- testsDirPath,
80
- schemaDirPath,
81
- moduleDirPaths,
82
79
  stateSchemaName,
83
80
  phDocumentSchemaName,
84
81
  isPhStateOfTypeFunctionName,
@@ -89,17 +86,12 @@ export function getDocumentModelVariableNames({ packageName, projectDir, documen
89
86
  useSelectedHookName,
90
87
  useInSelectedDriveHookName,
91
88
  useInSelectedFolderHookName,
92
- fileExtension,
93
- initialGlobalState,
94
- initialLocalState,
95
- hasLocalSchema,
96
- modules,
97
89
  };
98
90
  }
99
91
  export function getDocumentModelOperationsModuleVariableNames(module) {
100
92
  const actions = getActionsFromModule(module);
101
93
  const errors = getErrorsFromActions(actions);
102
- return { actions, errors, module };
94
+ return { actions, errors };
103
95
  }
104
96
  function getActionFromOperation(operation) {
105
97
  const { name, schema, scope = "global", errors } = operation;