vovk 0.2.3-beta.69 → 0.2.3-beta.70
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/cli/generateClient.js +3 -3
- package/cli/server.js +8 -7
- package/package.json +1 -1
package/cli/generateClient.js
CHANGED
|
@@ -15,7 +15,7 @@ function canRequire(moduleName) {
|
|
|
15
15
|
/**
|
|
16
16
|
* Generates client code with string concatenation so it should be much faster than using AST
|
|
17
17
|
* TODO: Check fetcher and streamFetcher for existence
|
|
18
|
-
* @type {(rcPath: import('../src').VovkEnv) => Promise<boolean>}
|
|
18
|
+
* @type {(rcPath: import('../src').VovkEnv) => Promise<{ written: boolean; path: string }>}
|
|
19
19
|
*/
|
|
20
20
|
async function generateClient({ ...env }) {
|
|
21
21
|
const outDir = env.VOVK_CLIENT_OUT;
|
|
@@ -90,13 +90,13 @@ const { default: validateOnClient = null } = ${
|
|
|
90
90
|
const localTsPath = path.join(outDir, 'index.d.ts');
|
|
91
91
|
const existingJs = await fs.readFile(localJsPath, 'utf-8').catch(() => '');
|
|
92
92
|
const existingTs = await fs.readFile(localTsPath, 'utf-8').catch(() => '');
|
|
93
|
-
if (existingJs === js && existingTs === ts) return false;
|
|
93
|
+
if (existingJs === js && existingTs === ts) return { written: false, path: outDir };
|
|
94
94
|
|
|
95
95
|
await fs.mkdir(outDir, { recursive: true });
|
|
96
96
|
await fs.writeFile(localJsPath, js);
|
|
97
97
|
await fs.writeFile(localTsPath, ts);
|
|
98
98
|
|
|
99
|
-
return true;
|
|
99
|
+
return { written: true, path: outDir };
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
module.exports = generateClient;
|
package/cli/server.js
CHANGED
|
@@ -16,12 +16,13 @@ const once = argv.once ?? false;
|
|
|
16
16
|
|
|
17
17
|
const metadataPath = path.join(__dirname, '../../../.vovk.json');
|
|
18
18
|
|
|
19
|
+
/** @type {(metadata: object) => Promise<{ written: boolean; path: string }>} */
|
|
19
20
|
const writeMetadata = async (metadata) => {
|
|
20
21
|
await fs.mkdir(path.dirname(metadataPath), { recursive: true });
|
|
21
22
|
const existingMetadata = await fs.readFile(metadataPath, 'utf-8').catch(() => 'null');
|
|
22
|
-
if (isEqual(JSON.parse(existingMetadata), metadata)) return false;
|
|
23
|
+
if (isEqual(JSON.parse(existingMetadata), metadata)) return { written: false, path: metadataPath };
|
|
23
24
|
await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2));
|
|
24
|
-
return true;
|
|
25
|
+
return { written: true, path: metadataPath };
|
|
25
26
|
};
|
|
26
27
|
|
|
27
28
|
const writeEmptyMetadata = async () => {
|
|
@@ -68,16 +69,16 @@ const server = http.createServer((req, res) => {
|
|
|
68
69
|
req.on('end', async () => {
|
|
69
70
|
try {
|
|
70
71
|
const { metadata, PORT } = JSON.parse(body); // Parse the JSON data
|
|
71
|
-
const metadataWritten = metadata ? await writeMetadata(metadata) : false;
|
|
72
|
+
const metadataWritten = metadata ? await writeMetadata(metadata) : { written: false, path: metadataPath };
|
|
72
73
|
const codeWritten = await generateClient(vars);
|
|
73
74
|
res.writeHead(200, { 'Content-Type': 'text/plain' });
|
|
74
75
|
res.end('JSON data received and file created');
|
|
75
|
-
if (metadataWritten) {
|
|
76
|
-
console.info(
|
|
76
|
+
if (metadataWritten.written) {
|
|
77
|
+
console.info(` 🐺 JSON metadata updated in ${metadataWritten.path}`);
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
if (codeWritten) {
|
|
80
|
-
console.info(
|
|
80
|
+
if (codeWritten.written) {
|
|
81
|
+
console.info(` 🐺 Client generated in ${codeWritten.path}`);
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
if (PORT && !once) {
|