mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-17 13:24:56 +00:00
Change build setup of JS clients, reintroduce beta publishing after losing it due to unmerged code (#238)
This commit is contained in:
91
cmd/clients/ts/build.js
Normal file
91
cmd/clients/ts/build.js
Normal file
@@ -0,0 +1,91 @@
|
||||
const chalk = require('chalk');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const rimraf = require('rimraf');
|
||||
const { ncp } = require('ncp');
|
||||
|
||||
function getTmpEsmDirectories() {
|
||||
return fs
|
||||
.readdirSync('./tmp/esm')
|
||||
.filter(file => fs.statSync(`./tmp/esm/${file}`).isDirectory());
|
||||
}
|
||||
|
||||
function log(text) {
|
||||
console.log(`${chalk.cyan('M3O JS:')} ${text}`);
|
||||
}
|
||||
|
||||
function writeModulePackageJsonFile(location) {
|
||||
fs.writeFileSync(
|
||||
`${location}/package.json`,
|
||||
`{"module": "./esm/index.js"}`,
|
||||
'utf8'
|
||||
);
|
||||
}
|
||||
|
||||
function deleteDirectory(directory) {
|
||||
return new Promise(resolve => {
|
||||
rimraf(directory, err => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function copyAllTmpFolders() {
|
||||
return new Promise((resolve, reject) => {
|
||||
// Now copy to root level
|
||||
ncp(path.join(__dirname, 'tmp'), __dirname, err => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function moveToLocalEsmFolders() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const esmDirs = getTmpEsmDirectories();
|
||||
|
||||
// Move the files around in tmp...
|
||||
esmDirs.forEach(dir => {
|
||||
const currentPath = path.join(__dirname, 'tmp/esm', dir);
|
||||
|
||||
fs.readdirSync(currentPath).forEach(async file => {
|
||||
const currentFilePath = path.join(currentPath, file);
|
||||
const newFilePath = path.join(__dirname, 'tmp', dir, 'esm', file);
|
||||
const esmFolderLocation = path.join(__dirname, 'tmp', dir, 'esm');
|
||||
|
||||
try {
|
||||
if (!fs.existsSync(esmFolderLocation)) {
|
||||
fs.mkdirSync(esmFolderLocation);
|
||||
}
|
||||
|
||||
fs.renameSync(currentFilePath, newFilePath);
|
||||
writeModulePackageJsonFile(`./tmp/${dir}`);
|
||||
await deleteDirectory(`./tmp/esm/${dir}`);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
log('Moved local esm folders');
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
async function build() {
|
||||
log('Moving to correct folders');
|
||||
|
||||
try {
|
||||
await moveToLocalEsmFolders();
|
||||
await copyAllTmpFolders();
|
||||
writeModulePackageJsonFile('./tmp/esm');
|
||||
await deleteDirectory('./tmp');
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
build();
|
||||
Reference in New Issue
Block a user