vovk-cli 0.0.1-draft.292 → 0.0.1-draft.293
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.
|
@@ -9,7 +9,7 @@ import pickSegmentFullSchema from '../utils/pickSegmentFullSchema.mjs';
|
|
|
9
9
|
import removeUnlistedDirectories from '../utils/removeUnlistedDirectories.mjs';
|
|
10
10
|
import getTemplateClientImports from './getTemplateClientImports.mjs';
|
|
11
11
|
import mergePackages from './mergePackages.mjs';
|
|
12
|
-
import writeOneClientFile from './writeOneClientFile.mjs';
|
|
12
|
+
import writeOneClientFile, { normalizeOutTemplatePath } from './writeOneClientFile.mjs';
|
|
13
13
|
import { ROOT_SEGMENT_FILE_NAME } from '../dev/writeOneSegmentSchemaFile.mjs';
|
|
14
14
|
import { getTsconfig } from 'get-tsconfig';
|
|
15
15
|
import { normalizeOpenAPIMixins } from '../utils/normalizeOpenAPIMixins.mjs';
|
|
@@ -46,7 +46,7 @@ function logClientGenerationResults({ results, log, isEnsuringClient = false, fo
|
|
|
46
46
|
if (writtenResults.length) {
|
|
47
47
|
for (const [outAbsoluteDir, dirResults] of Object.entries(groupedByDir)) {
|
|
48
48
|
const templateNames = _.uniq(dirResults.map(({ templateName }) => templateName));
|
|
49
|
-
log.info(`${clientType} client${isEnsuringClient ? ' placeholder' : ''} is generated to ${chalkHighlightThing(outAbsoluteDir)} from template${templateNames.length !== 1 ? 's' : ''} ${chalkHighlightThing(templateNames.map((s) => `"${s}"`).join(', '))} in ${duration}ms`);
|
|
49
|
+
log.info(`${clientType} client${isEnsuringClient ? ' placeholder' : ''} is generated to ${chalkHighlightThing(normalizeOutTemplatePath(outAbsoluteDir, dirResults[0].package))} from template${templateNames.length !== 1 ? 's' : ''} ${chalkHighlightThing(templateNames.map((s) => `"${s}"`).join(', '))} in ${duration}ms`);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
else if (fromTemplates.length) {
|
|
@@ -56,7 +56,7 @@ function logClientGenerationResults({ results, log, isEnsuringClient = false, fo
|
|
|
56
56
|
else if (!isEnsuringClient) {
|
|
57
57
|
for (const [outAbsoluteDir, dirResults] of Object.entries(groupedByDir)) {
|
|
58
58
|
const templateNames = _.uniq(dirResults.map(({ templateName }) => templateName));
|
|
59
|
-
logOrDebug(`${clientType} client that was generated to ${chalkHighlightThing(outAbsoluteDir)} from template${templateNames.length !== 1 ? 's' : ''} ${chalkHighlightThing(templateNames.map((s) => `"${s}"`).join(', '))} is up to date and doesn't need to be regenerated (${duration}ms)`);
|
|
59
|
+
logOrDebug(`${clientType} client that was generated to ${chalkHighlightThing(normalizeOutTemplatePath(outAbsoluteDir, dirResults[0].package))} from template${templateNames.length !== 1 ? 's' : ''} ${chalkHighlightThing(templateNames.map((s) => `"${s}"`).join(', '))} is up to date and doesn't need to be regenerated (${duration}ms)`);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -177,6 +177,7 @@ export async function generate({ isEnsuringClient = false, projectInfo, forceNot
|
|
|
177
177
|
written,
|
|
178
178
|
templateName,
|
|
179
179
|
outAbsoluteDir,
|
|
180
|
+
package: packageJson,
|
|
180
181
|
};
|
|
181
182
|
}));
|
|
182
183
|
if (composedClientTemplateFiles.length) {
|
|
@@ -256,6 +257,7 @@ export async function generate({ isEnsuringClient = false, projectInfo, forceNot
|
|
|
256
257
|
return {
|
|
257
258
|
written,
|
|
258
259
|
templateName,
|
|
260
|
+
package: packageJson,
|
|
259
261
|
};
|
|
260
262
|
}));
|
|
261
263
|
const outAbsoluteDir = path.resolve(cwd, outCwdRelativeDir);
|
|
@@ -265,6 +267,7 @@ export async function generate({ isEnsuringClient = false, projectInfo, forceNot
|
|
|
265
267
|
written: results.filter((result) => !!result).some(({ written }) => written),
|
|
266
268
|
templateName,
|
|
267
269
|
outAbsoluteDir,
|
|
270
|
+
package: results[0]?.package || {}, // TODO: Might be wrong in Python segmented client (unknown use case)
|
|
268
271
|
};
|
|
269
272
|
}));
|
|
270
273
|
if (segmentedClientTemplateFiles.length) {
|
|
@@ -4,6 +4,7 @@ import type { ProjectInfo } from '../getProjectInfo/index.mjs';
|
|
|
4
4
|
import type { ClientTemplateFile } from './getClientTemplateFiles.mjs';
|
|
5
5
|
import type { ClientImports } from './getTemplateClientImports.mjs';
|
|
6
6
|
import type { Segment } from '../locateSegments.mjs';
|
|
7
|
+
export declare function normalizeOutTemplatePath(out: string, packageJson: PackageJson): string;
|
|
7
8
|
export default function writeOneClientFile({ cwd, projectInfo, clientTemplateFile, fullSchema, prettifyClient, segmentName, imports, templateContent, matterResult: { data, content }, package: packageJson, readme, isEnsuringClient, outCwdRelativeDir, origin, templateDef, locatedSegments, isNodeNextResolution, hasMixins, isVovkProject, vovkCliPackage, }: {
|
|
8
9
|
cwd: string;
|
|
9
10
|
projectInfo: ProjectInfo;
|
|
@@ -8,13 +8,14 @@ import TOML from '@iarna/toml';
|
|
|
8
8
|
import prettify from '../utils/prettify.mjs';
|
|
9
9
|
import { ROOT_SEGMENT_FILE_NAME } from '../dev/writeOneSegmentSchemaFile.mjs';
|
|
10
10
|
import { compileJSONSchemaToTypeScriptType } from '../utils/compileJSONSchemaToTypeScriptType.mjs';
|
|
11
|
+
export function normalizeOutTemplatePath(out, packageJson) {
|
|
12
|
+
return out.replace('[package_name]', packageJson.name?.replace(/-/g, '_') ?? 'my_package_name');
|
|
13
|
+
}
|
|
11
14
|
export default async function writeOneClientFile({ cwd, projectInfo, clientTemplateFile, fullSchema, prettifyClient, segmentName, imports, templateContent, matterResult: { data, content }, package: packageJson, readme, isEnsuringClient, outCwdRelativeDir, origin, templateDef, locatedSegments, isNodeNextResolution, hasMixins, isVovkProject, vovkCliPackage, }) {
|
|
12
15
|
const { config, apiRoot } = projectInfo;
|
|
13
16
|
const { templateFilePath, relativeDir } = clientTemplateFile;
|
|
14
17
|
const locatedSegmentsByName = _.keyBy(locatedSegments, 'segmentName');
|
|
15
|
-
const outPath = path
|
|
16
|
-
.resolve(cwd, outCwdRelativeDir, typeof segmentName === 'string' ? segmentName || ROOT_SEGMENT_FILE_NAME : '', relativeDir, path.basename(templateFilePath).replace('.ejs', ''))
|
|
17
|
-
.replace('[package_name]', packageJson.name?.replace(/-/g, '_') ?? 'my_package_name');
|
|
18
|
+
const outPath = normalizeOutTemplatePath(path.resolve(cwd, outCwdRelativeDir, typeof segmentName === 'string' ? segmentName || ROOT_SEGMENT_FILE_NAME : '', relativeDir, path.basename(templateFilePath).replace('.ejs', '')), packageJson);
|
|
18
19
|
let placeholder = `// This is a temporary placeholder to avoid compilation errors if client is imported before it's generated.
|
|
19
20
|
// If you still see this text, the client is not generated yet because of an unknown problem.
|
|
20
21
|
// Feel free to report an issue at https://github.com/finom/vovk/issues`;
|