UNPKG

@embeddable.com/sdk-core

Version:

Core Embeddable SDK module responsible for web-components bundling and publishing.

54 lines (46 loc) 1.61 kB
import buildTypes from "./buildTypes"; import buildGlobalHooks from "./buildGlobalHooks"; import provideConfig from "./provideConfig"; import { checkNodeVersion, removeBuildSuccessFlag, storeBuildSuccessFlag, } from "./utils"; import { initLogger, logError } from "./logger"; import * as path from "node:path"; import * as fs from "node:fs/promises"; import * as fsSync from "node:fs"; export default async () => { await initLogger("package"); const breadcrumbs: string[] = []; try { const startTime = process.hrtime(); await checkNodeVersion(); breadcrumbs.push("checkNodeVersion"); await removeBuildSuccessFlag(); const config = await provideConfig(); config.client.buildDir = path.resolve(config.client.rootDir, "dist"); await prepare(config); await buildTypes(config); await buildGlobalHooks(config); for (const getPlugin of config.plugins) { const plugin = getPlugin(); breadcrumbs.push(`${plugin.pluginName}: validate`); await plugin.validate(config); breadcrumbs.push(`${plugin.pluginName}: buildPackage`); await plugin.buildPackage(config); } // Calculating build time in seconds config.buildTime = process.hrtime(startTime); await storeBuildSuccessFlag(); } catch (error: any) { await logError({ command: "package", breadcrumbs, error }); console.log(error); process.exit(1); } }; const prepare = async (config: any) => { if (fsSync.existsSync(config.client.buildDir)) await fs.rm(config.client.buildDir, { recursive: true }); await fs.mkdir(config.client.buildDir); };