const { readdir, stat, copyFile } = require("fs-extra"); const { constants } = require("fs"); const { join, basename } = require("path"); const packagesFolder = ".."; const jsFile = dir => join(dir, "index.js"); const generatorsFile = dir => join(dir, "generators.js"); const jsMapFile = dir => join(dir, "index.js.map"); const sourceJs = jsFile("dist"); const sourceJsMap = jsMapFile("dist"); const componentsFile = "components.json"; const sourceGenerators = generatorsFile("dist"); const appPackages = join(packagesFolder, "server", "appPackages"); const publicMain = appName => join(appPackages, appName, "public", "main", "lib", "node_modules", "@budibase", "bootstrap-components"); const publicUnauth = appName => join(appPackages, appName, "public", "unauthenticated", "lib", "node_modules", "@budibase", "bootstrap-components"); const nodeModulesDist = appName => join(appPackages, appName, "node_modules", "@budibase", "bootstrap-components", "dist"); const nodeModules = appName => join(appPackages, appName, "node_modules", "@budibase", "bootstrap-components"); (async () => { const apps = await readdir(appPackages); const copySource = file => async toDir => { const dest = join(toDir, basename(file)); try { await copyFile(file, dest, constants.COPYFILE_FICLONE); console.log(`COPIED ${file} to ${dest}`); } catch(e) { console.log(`COPY FAILED ${file} to ${dest}: ${e}`); } } const copySourceJs = copySource(sourceJs); const copySourceJsMap = copySource(sourceJsMap); const copyGenerators = copySource(sourceGenerators); const copyComponentsJson = copySource(componentsFile); for(let app of apps) { if(!(await stat(join(appPackages, app))).isDirectory()) continue; await copySourceJs(nodeModulesDist(app)); await copySourceJsMap(nodeModulesDist(app)); await copyGenerators(nodeModulesDist(app)); await copyComponentsJson(nodeModules(app)); await copySourceJs(join(publicMain(app), "dist")); await copySourceJsMap(join(publicMain(app), "dist")); await copyGenerators(join(publicMain(app), "dist")); await copySourceJs(join(publicUnauth(app), "dist")); await copySourceJsMap(join(publicUnauth(app), "dist")); await copyGenerators(join(publicUnauth(app), "dist")); } })();