vovk-cli 0.0.1-draft.54 → 0.0.1-draft.56
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/dev/ensureClient.mjs +19 -22
- package/dist/generate/getClientTemplates.d.mts +4 -1
- package/dist/generate/getClientTemplates.mjs +1 -1
- package/dist/generate/index.mjs +1 -2
- package/package.json +1 -1
- /package/client-templates/main/{main.js.ejs → main.cjs.ejs} +0 -0
- /package/client-templates/main/{main.d.ts.ejs → main.d.cts.ejs} +0 -0
- /package/client-templates/module/{module.d.ts.ejs → module.d.mts.ejs} +0 -0
- /package/client-templates/module/{module.js.ejs → module.mjs.ejs} +0 -0
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
1
|
import fs from 'node:fs/promises';
|
|
2
|
+
import getClientTemplates from '../generate/getClientTemplates.mjs';
|
|
3
3
|
export default async function ensureClient({ config, cwd, log }) {
|
|
4
4
|
const now = Date.now();
|
|
5
|
-
const
|
|
6
|
-
|
|
5
|
+
const { clientOutDirAbsolutePath, templateFiles } = getClientTemplates({
|
|
6
|
+
config,
|
|
7
|
+
cwd,
|
|
8
|
+
templateNames: config.experimental_clientGenerateTemplateNames,
|
|
9
|
+
});
|
|
10
|
+
const text = `// auto-generated
|
|
7
11
|
// This is a temporary placeholder to avoid errors if client is imported before it's generated.
|
|
8
12
|
// If you still see this text, the client is not generated yet because of an unknown problem.
|
|
9
13
|
// Feel free to report an issue at https://github.com/finom/vovk/issues`;
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (existingJs && existingDts && existingTs) {
|
|
19
|
-
return { written: false, path: clientoOutDirAbsolutePath };
|
|
14
|
+
let written = false;
|
|
15
|
+
for (const { outPath } of templateFiles) {
|
|
16
|
+
const existing = await fs.readFile(outPath, 'utf-8').catch(() => null);
|
|
17
|
+
if (!existing) {
|
|
18
|
+
await fs.mkdir(clientOutDirAbsolutePath, { recursive: true });
|
|
19
|
+
await fs.writeFile(outPath, text);
|
|
20
|
+
written = true;
|
|
21
|
+
}
|
|
20
22
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
await fs.writeFile(localDtsAbsolutePath, dts);
|
|
26
|
-
if (!existingTs)
|
|
27
|
-
await fs.writeFile(localTsAbsolutePath, ts);
|
|
28
|
-
log.info(`Empty client files are generated in ${Date.now() - now}ms`);
|
|
29
|
-
return { written: true, path: clientoOutDirAbsolutePath };
|
|
23
|
+
if (written) {
|
|
24
|
+
log.info(`Empty client files are generated in ${Date.now() - now}ms`);
|
|
25
|
+
}
|
|
26
|
+
return { written, path: clientOutDirAbsolutePath };
|
|
30
27
|
}
|
|
@@ -7,5 +7,8 @@ export default function getClientTemplates({ config, cwd, templateNames, }: {
|
|
|
7
7
|
config: Required<VovkConfig>;
|
|
8
8
|
cwd: string;
|
|
9
9
|
templateNames?: string[];
|
|
10
|
-
}):
|
|
10
|
+
}): {
|
|
11
|
+
clientOutDirAbsolutePath: string;
|
|
12
|
+
templateFiles: ClientTemplate[];
|
|
13
|
+
};
|
|
11
14
|
export {};
|
package/dist/generate/index.mjs
CHANGED
|
@@ -8,8 +8,7 @@ export default async function generate({ projectInfo, segments, segmentsSchema,
|
|
|
8
8
|
templates = templates ?? projectInfo.config.experimental_clientGenerateTemplateNames;
|
|
9
9
|
const noClient = templates?.[0] === 'none';
|
|
10
10
|
const { config, cwd, log, validateOnClientImportPath, apiRoot, fetcherClientImportPath, createRPCImportPath, schemaOutImportPath, } = projectInfo;
|
|
11
|
-
const clientOutDirAbsolutePath =
|
|
12
|
-
const templateFiles = getClientTemplates({ config, cwd, templateNames: templates });
|
|
11
|
+
const { clientOutDirAbsolutePath, templateFiles } = getClientTemplates({ config, cwd, templateNames: templates });
|
|
13
12
|
// Ensure that each segment has a matching schema if it needs to be emitted:
|
|
14
13
|
for (let i = 0; i < segments.length; i++) {
|
|
15
14
|
const { segmentName } = segments[i];
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|