import L from "../../utils/logger"; import fs from "fs"; import path from "path"; import execa from 'execa'; type options = { dst?: string; }; async function customizeComponent( src: string, options: options = {} ): Promise { let { dst = "custom" } = options; if (dst.slice(-3) === '.js') { dst = dst.slice(0, -3); } L.info(`customize ${src} into ${dst}.js ...`); try { const srcStat = fs.statSync(src); if (!srcStat.isDirectory()) { L.warn(`${src} is not a directory, skip...`); throw new Error(`${src} is not a directory`); } execa.commandSync( `cp ${path.join(src, "index.js")} ${path.join(src, dst + ".js")}` ); fs.writeFileSync(path.join(src, "package.json"), `{"main": "./${dst}.js"}`); } catch (ex) { L.warn(`exception raised`); throw ex; } } export { customizeComponent };