mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-12 11:15:12 +00:00
91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
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(); |