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, "budibase-client.js") const jsMapFile = dir => join(dir, "budibase-client.js.map") const sourceJs = jsFile("dist") const sourceJsMap = jsMapFile("dist") const appPackages = join( packagesFolder, "server", serverConfig.latestPackagesFolder ) const publicMain = appName => join(appPackages, appName, "public", "main") const publicUnauth = appName => join(appPackages, appName, "public", "unauthenticated") const nodeModules = appName => join(appPackages, appName, "node_modules", "@budibase", "client", "dist") ;(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) for (let app of apps) { if (app === ".data") continue if (!(await stat(join(appPackages, app))).isDirectory()) continue //await copySourceJs(nodeModules(app)) //await copySourceJsMap(nodeModules(app)) await copySourceJs(publicMain(app)) await copySourceJsMap(publicMain(app)) await copySourceJs(publicUnauth(app)) await copySourceJsMap(publicUnauth(app)) await copySource(join("dist", "budibase-client.esm.mjs"))( join(packagesFolder, "server", "builder") ) } })()