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`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vovk-cli",
3
- "version": "0.0.1-draft.292",
3
+ "version": "0.0.1-draft.293",
4
4
  "bin": {
5
5
  "vovk": "./dist/index.mjs"
6
6
  },