const { readdir, stat, copyFile, ensureDir } = require("fs-extra") const { constants } = require("fs") const { join, basename } = require("path") const serverConfig = require("../../server/config")() const packagesFolder = ".." const jsFile = dir => join(dir, "index.js") const jsMapFile = dir => join(dir, "index.js.map") const sourceJs = jsFile("dist") const sourceJsMap = jsMapFile("dist") const componentsFile = "components.json" const appPackages = join( packagesFolder, "server", serverConfig.latestPackagesFolder ) const publicMain = appName => join( appPackages, appName, "public", "main", "lib", "node_modules", "@budibase", "standard-components" ) const publicUnauth = appName => join( appPackages, appName, "public", "unauthenticated", "lib", "node_modules", "@budibase", "standard-components" ) const nodeModulesDist = appName => join( appPackages, appName, "node_modules", "@budibase", "standard-components", "dist" ) const nodeModules = appName => join(appPackages, appName, "node_modules", "@budibase", "standard-components") ;(async () => { const apps = await readdir(appPackages) const copySource = file => async toDir => { await ensureDir(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 copyComponentsJson = copySource(componentsFile) for (let app of apps) { if (app === ".data") continue if (!(await stat(join(appPackages, app))).isDirectory()) continue await copySourceJs(nodeModulesDist(app)) await copySourceJsMap(nodeModulesDist(app)) await copyComponentsJson(nodeModules(app)) await copySourceJs(join(publicMain(app), "dist")) await copySourceJsMap(join(publicMain(app), "dist")) await copySourceJs(join(publicUnauth(app), "dist")) await copySourceJsMap(join(publicUnauth(app), "dist")) } })()