UNPKG

@bishwenduk029/fringe

Version:
2 lines (1 loc) 1.48 kB
import{createRequire as d}from"module";var a=d(import.meta.url);import{resolve as t}from"path";import g from"module";import n from"fs";import l from"path";var s=class{async setup(){let e=await n.promises.readdir(l.resolve(this.rootDir,this.pageSourcePath),"utf-8"),r=JSON.parse(await n.promises.readFile(l.resolve(this.rootDir,"package.json"),"utf8")),o=Array.from(new Set([...Object.keys(r.dependencies||{}),...Object.keys(r.peerDependencies||{})]));return{modulePaths:e,pkg:r,deps:o}}};var{builtinModules:m}=g,p=class extends s{constructor(e){super();this.pageSourcePath="src/api";this.pageBuildPath="dist";this.logger=e.logger,this.service=e.service,this.rootDir=e.rootDir}async build(){let e=Date.now(),{modulePaths:r,deps:o}=await this.setup(),i=r;if(!i||i.length===0){this.logger.info({latency:Date.now()-e},"API functions build skipped; no api entrypoints found.");return}this.logger.info("Starting server api build"),await this.service.build({bundle:!0,define:{"process.env.NODE_ENV":"production"},logLevel:"error",entryPoints:[t(this.rootDir,"src/index.ts"),...i.map(u=>t(this.rootDir,`${this.pageSourcePath}/${u}/index.ts`))],external:[...m,...o],format:"esm",incremental:!1,minify:!1,outbase:t(this.rootDir),outdir:t(this.rootDir,this.pageBuildPath),platform:"node",plugins:[],resolveExtensions:[".ts",".js"],sourcemap:!1,splitting:!1,treeShaking:!0,write:!0}),this.logger.info({latency:Date.now()-e},"Finished server functions build")}};export{p as ServerApisBuilder};