@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.
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +10 -24
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -1
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +142 -0
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +1 -0
- package/dist/src/codegen/generate.d.ts +20 -4
- package/dist/src/codegen/generate.d.ts.map +1 -1
- package/dist/src/codegen/generate.js +57 -53
- package/dist/src/codegen/generate.js.map +1 -1
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +0 -1
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js +53 -44
- package/dist/src/ts-morph-utils/file-builders/document-model/gen-dir.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js +20 -23
- package/dist/src/ts-morph-utils/file-builders/document-model/root-dir.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js +193 -21
- package/dist/src/ts-morph-utils/file-builders/document-model/src-dir.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts +21 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/types.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts +31 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js +136 -0
- package/dist/src/ts-morph-utils/file-builders/document-model/upgrades-dir.js.map +1 -0
- package/dist/src/ts-morph-utils/file-builders/document-model.d.ts +2 -2
- package/dist/src/ts-morph-utils/file-builders/document-model.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/document-model.js +209 -34
- package/dist/src/ts-morph-utils/file-builders/document-model.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/index-files.d.ts +2 -1
- package/dist/src/ts-morph-utils/file-builders/index-files.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/index-files.js +6 -2
- package/dist/src/ts-morph-utils/file-builders/index-files.js.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/module-files.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/file-builders/module-files.js +20 -8
- package/dist/src/ts-morph-utils/file-builders/module-files.js.map +1 -1
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts +5 -23
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.js +26 -34
- package/dist/src/ts-morph-utils/name-builders/get-variable-names.js.map +1 -1
- package/dist/src/ts-morph-utils/name-builders/types.d.ts +6 -2
- package/dist/src/ts-morph-utils/name-builders/types.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/syntax-getters.d.ts +1 -0
- package/dist/src/ts-morph-utils/syntax-getters.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/syntax-getters.js +6 -0
- package/dist/src/ts-morph-utils/syntax-getters.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/actions.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/actions.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/actions.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/creators.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-schema.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/document-type.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/index.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/creators.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/error.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/modules/operations.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/ph-factories.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/reducer.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.js +14 -14
- package/dist/src/ts-morph-utils/templates/document-model/gen/types.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js +18 -18
- package/dist/src/ts-morph-utils/templates/document-model/gen/utils.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/hooks.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/hooks.js +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/hooks.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/module.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/module.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/module.js +3 -3
- package/dist/src/ts-morph-utils/templates/document-model/module.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts +2 -2
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/document-model.test.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts +5 -2
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.d.ts.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js +24 -4
- package/dist/src/ts-morph-utils/templates/document-model/src/tests/module.test.js.map +1 -1
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts +7 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.d.ts.map +1 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js +22 -0
- package/dist/src/ts-morph-utils/templates/document-model/upgrades/upgrade-transition.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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,
|
|
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
|
-
|
|
31
|
-
const project =
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
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,
|
|
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(({
|
|
17
|
-
namedExports: [
|
|
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;
|
|
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":"
|
|
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
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
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(({
|
|
46
|
-
namedImports: [
|
|
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.
|
|
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":"
|
|
1
|
+
{"version":3,"file":"module-files.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/module-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAoBvD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,yBAAyB,GAAG,IAAI,GACb;IACnB,+EAA+E;IAC/E,OAAO,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IAEtD,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,WAAW,GAAG,UAAU;SAC3B,wBAAwB,EAAE;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9D,4GAA4G;IAC5G,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClD,gCAAgC,CAAC,IAAI,EAAE,QAAQ,CAAC,CACjD,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB;SAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC;SACxC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,eAAe,GACnB,UAAU,CAAC,kCAAkC,CAC3C,UAAU,CAAC,WAAW,EAAE,CACzB,GAAG,KAAK,CAAC;QACZ,MAAM,UAAU,GAAG,gCAAgC,CAAC,eAAe,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,UAAU;YAC9B,CAAC,CAAC,GAAG,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEL,MAAM,qBAAqB,GAAG,0BAA0B,CACtD,cAAc,EACd,cAAc,CACf,CAAC;IAEF,wDAAwD;IACxD,IAAI,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC3E,+CAA+C;IAC/C,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAChD,qBAAqB,EACrB,EAAE,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,uBAAuB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,eAAe,EAAE,gBAAgB;QACjC,UAAU,EAAE,IAAI;KACjB,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAC/B,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,YAAY,EAAE;YACZ,aAAa;gBACX,CAAC,CAAC,GAAG,eAAe,OAAO,aAAa,EAAE;gBAC1C,CAAC,CAAC,eAAe;SACpB;QACD,eAAe;KAChB,CAAC,CACH,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC;IAC/C,uBAAuB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEvD,qDAAqD;IACrD,0BAA0B;IAC1B,MAAM,mCAAmC,GAAG;QAC1C,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,uBAAuB,CAAC,KAAK;QAC9C,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,IAAI;aAClB;SACF;KACF,CAAC;IACF,+DAA+D;IAC/D,IAAI,8BAA8B,GAChC,uBAAuB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC7D,qDAAqD;IACrD,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACpC,8BAA8B;YAC5B,uBAAuB,CAAC,oBAAoB,CAC1C,mCAAmC,CACpC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,8BAA8B,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAC1E,CAAC;IACD,8DAA8D;IAC9D,MAAM,YAAY,GAAG,8BAA8B;SAChD,eAAe,EAAE;SACjB,EAAE,CAAC,CAAC,CAAC;QACN,EAAE,oBAAoB,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAE5D,mEAAmE;IACnE,YAAY,EAAE,WAAW,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,EACvE,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;IAEF,wFAAwF;IACxF,IAAI,yBAAyB,EAAE,CAAC;QAC9B,mBAAmB,CAAC;YAClB,OAAO;YACP,cAAc;YACd,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,gCAAgC,CAAC,eAAuB;IAC/D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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;
|
|
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
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
94
|
+
return { actions, errors };
|
|
103
95
|
}
|
|
104
96
|
function getActionFromOperation(operation) {
|
|
105
97
|
const { name, schema, scope = "global", errors } = operation;
|