UNPKG

@embeddable.com/sdk-core

Version:

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

33 lines (26 loc) 951 B
import * as fsSync from "node:fs"; import * as fs from "node:fs/promises"; import { ResolvedEmbeddableConfig } from "./defineConfig"; export default async (ctx: ResolvedEmbeddableConfig) => { await removeIfExists(ctx); await copyStencilConfigsToClient(ctx); await createComponentDir(ctx.client.componentDir); }; export async function removeIfExists(ctx: ResolvedEmbeddableConfig) { const promises = []; if (fsSync.existsSync(ctx.client.buildDir)) { promises.push(fs.rm(ctx.client.buildDir, { recursive: true })); } if (fsSync.existsSync(ctx.client.tmpDir)) { promises.push(fs.rm(ctx.client.tmpDir, { recursive: true })); } await Promise.all(promises); } async function copyStencilConfigsToClient(ctx: ResolvedEmbeddableConfig) { await fs.cp(ctx.core.configsDir, ctx.client.webComponentRoot, { recursive: true, }); } async function createComponentDir(dir: string) { await fs.mkdir(dir, { recursive: true }); }