vovk 0.2.3-beta.24 → 0.2.3-beta.26
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 +9 -2
- package/cli/index.js +1 -1
- package/cli/server.js +11 -6
- package/package.json +1 -1
package/cli/generateClient.js
CHANGED
|
@@ -50,9 +50,16 @@ const { default: validateOnClient = null } = ${
|
|
|
50
50
|
js += `exports.${key} = promisifyWorker(null, metadata.workers.${key});\n`;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
const jsPath = path.join(__dirname, '../../.vovk/index.js');
|
|
54
|
+
const tsPath = path.join(__dirname, '../../.vovk/index.d.ts');
|
|
53
55
|
await fs.mkdir('../../.vovk', { recursive: true });
|
|
54
|
-
await fs.
|
|
55
|
-
await fs.
|
|
56
|
+
const existingJs = await fs.readFile(jsPath, 'utf-8').catch(() => '');
|
|
57
|
+
const existingTs = await fs.readFile(tsPath, 'utf-8').catch(() => '');
|
|
58
|
+
if (existingJs === js && existingTs === ts) return false;
|
|
59
|
+
await fs.writeFile(tsPath, ts);
|
|
60
|
+
await fs.writeFile(jsPath, js);
|
|
61
|
+
|
|
62
|
+
return true;
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
module.exports = generateClient;
|
package/cli/index.js
CHANGED
|
@@ -26,7 +26,7 @@ function getAvailablePort(startPort, maxAttempts, attempt = 1) {
|
|
|
26
26
|
if (isAvailable) {
|
|
27
27
|
resolve(startPort); // Found an available port
|
|
28
28
|
} else if (attempt < maxAttempts) {
|
|
29
|
-
|
|
29
|
+
getAvailablePort(startPort + 1, maxAttempts, attempt + 1).then(resolve, reject);
|
|
30
30
|
} else {
|
|
31
31
|
reject(null);
|
|
32
32
|
}
|
package/cli/server.js
CHANGED
|
@@ -37,8 +37,9 @@ const isEqual = (obj1, obj2) => {
|
|
|
37
37
|
const writeMetadata = async (metadataPath, metadata) => {
|
|
38
38
|
await fs.mkdir(path.dirname(metadataPath), { recursive: true });
|
|
39
39
|
const existingMetadata = await fs.readFile(metadataPath, 'utf-8').catch(() => '{}');
|
|
40
|
-
if (isEqual(JSON.parse(existingMetadata), metadata)) return;
|
|
40
|
+
if (isEqual(JSON.parse(existingMetadata), metadata)) return false;
|
|
41
41
|
await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2));
|
|
42
|
+
return true;
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
const server = http.createServer((req, res) => {
|
|
@@ -54,11 +55,15 @@ const server = http.createServer((req, res) => {
|
|
|
54
55
|
try {
|
|
55
56
|
const metadata = JSON.parse(body); // Parse the JSON data
|
|
56
57
|
const filePath = path.join(__dirname, '../../.vovk/vovk-metadata.json');
|
|
57
|
-
await writeMetadata(filePath, metadata);
|
|
58
|
-
await generateClient(argv.rc, argv.output);
|
|
58
|
+
const metadataWritten = await writeMetadata(filePath, metadata);
|
|
59
|
+
const codeWritten = await generateClient(argv.rc, argv.output);
|
|
59
60
|
res.writeHead(200, { 'Content-Type': 'text/plain' });
|
|
60
61
|
res.end('JSON data received and file created');
|
|
61
|
-
|
|
62
|
+
if (metadataWritten || codeWritten) {
|
|
63
|
+
console.info(' 🐺 JSON metadata received and the client is generated');
|
|
64
|
+
} else if (once) {
|
|
65
|
+
console.info(' 🐺 JSON metadata received and the client is not changed');
|
|
66
|
+
}
|
|
62
67
|
} catch (err) {
|
|
63
68
|
res.writeHead(400, { 'Content-Type': 'text/plain' });
|
|
64
69
|
res.end('Invalid JSON');
|
|
@@ -74,9 +79,9 @@ const server = http.createServer((req, res) => {
|
|
|
74
79
|
|
|
75
80
|
const VOVK_PORT = process.env.VOVK_PORT;
|
|
76
81
|
if (!VOVK_PORT) {
|
|
77
|
-
console.error(' 🐺 Unable to run Vovk Metadata
|
|
82
|
+
console.error(' 🐺 Unable to run Vovk Metadata Server: no port specified');
|
|
78
83
|
process.exit(1);
|
|
79
84
|
}
|
|
80
85
|
server.listen(VOVK_PORT, () => {
|
|
81
|
-
console.info(` 🐺 Vovk Server running on port ${VOVK_PORT}`);
|
|
86
|
+
console.info(` 🐺 Vovk Metadata Server running on port ${VOVK_PORT}`);
|
|
82
87
|
});
|