Browse Source

Make sure we sync versions after each Publish action.

Update versions in JSON files.
wordpress-build
Roman Axelrod 2 years ago
parent
commit
58ed3de9dc
  1. 29
      helpers.js
  2. 6
      package.json
  3. 33
      server.js

29
helpers.js

@ -13,6 +13,7 @@ import fs from "fs/promises";
import {constants} from "fs";
import fetch from "node-fetch";
import mime from "mime-types";
import {exec} from "child_process";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
@ -302,3 +303,31 @@ export async function verifyVersion(projectPath, blocksRegistry) {
const block = await getBlockFromCloud('@' + blockJson.name, blocksRegistry);
return block.version === blockJson.version;
}
export async function syncFilesWithCloud(jsonBlockPath, bs, sourceFiles = false) {
const blockJson = await readJSONFile(jsonBlockPath);
const blockName = blockJson.name.startsWith('@') ? blockJson.name : `@${blockJson.name}`;
bs.pause();
// Looks like it takes time to pause the browser-sync server, so delay(setTimeout) is necessary.
await new Promise((resolve) => setTimeout(() => resolve(), 1000));
await new Promise((resolve) => {
const args = sourceFiles ? '--source' : '';
const createBlockModulePath = `./node_modules/@axe-web/create-block`;
exec(`node ${createBlockModulePath}/create-block.js sync ${args} ${blockName}`, (err, stdout, stderr) => {
if (err || stderr) {
const message = err || stderr;
console.error('Error:', message);
throw new Error(message);
}
console.log(stdout);
resolve();
});
});
bs.resume();
}

6
package.json

@ -7,9 +7,9 @@
"url": "https://axe-web.com/"
},
"scripts": {
"info": "BLOCK_NAME=timeline-scroll MODULE_PATH= node debug.js",
"dev": "BLOCK_NAME=timeline-scroll MODULE_PATH= node server.js",
"build-platform": "BLOCK_NAME=timeline-scroll MODULE_PATH= node ./build.js",
"info": "BLOCK_NAME=swiper-test MODULE_PATH= node debug.js",
"dev": "BLOCK_NAME=swiper-test MODULE_PATH= node server.js",
"build-platform": "BLOCK_NAME=swiper-test MODULE_PATH= node ./build.js",
"dev-dev-tool": "rollup --config rollup.config.js --watch",
"build-dev-tool": "rollup --config rollup.config.js"
},

33
server.js

@ -30,6 +30,7 @@ import {
removeCommentsFromCss,
removeCommentsFromJs,
replaceNames,
syncFilesWithCloud,
uploadFile,
verifyVersion,
zipProject
@ -38,7 +39,6 @@ import PluginError from 'plugin-error';
import {Server} from "socket.io";
import {createServer} from 'http';
import {authtoken, connect} from "ngrok";
import {exec} from "child_process";
import bodyParser from "body-parser";
/**
@ -260,6 +260,13 @@ app.get('/publish', async (req, res) => {
}
}
try {
await syncFilesWithCloud(path.join(projectPath, 'block.json'), bs);
} catch (err) {
res.json({success: false, message: err});
return;
}
res.json({success: true});
});
@ -284,31 +291,19 @@ app.get('/data', async (req, res) => {
});
app.post('/sync', async (req, res) => {
const blockJson = await readJSONFile(path.join(projectPath, `block.json`));
const blockName = blockJson.name.startsWith('@') ? blockJson.name : `@${blockJson.name}`;
if (req.body['ignore']) {
ignoreVersionSync = true;
res.json({status: 200, message: 'Version upgrade is ignored.'});
return;
}
bs.pause();
// Looks like it takes time to pause the browser-sync server, so delay(setTimeout) is necessary.
setTimeout(() => {
exec(`node ./node_modules/@axe-web/create-block/create-block.js sync --source ${blockName}`, (err, stdout, stderr) => {
if (err || stderr) {
console.error('Error:', err || stderr);
res.status(500).json({status: 500, message: err || stderr});
}
console.log(stdout);
try {
await syncFilesWithCloud(path.join(projectPath, `block.json`), bs, true);
} catch (err) {
res.status(500).json({status: 500, message: err});
}
bs.resume();
res.json({status: 200, message: 'Successfully synced!'});
});
})
res.json({status: 200, message: 'Successfully synced!'});
});
// Errors handler

Loading…
Cancel
Save