UNPKG

unbag

Version:

一个专门用来开发npm工具的包

42 lines 1.35 kB
import { transform } from "esbuild"; import { useFs } from "./../../../../utils/fs.mjs"; import { defineTransformActionTask, TransformActionTaskOutFileType } from "../index.mjs"; const TransformActionTaskEsbuild = options => { const { esbuild: esbuildOptions, extMapping } = options; return defineTransformActionTask(async params => { const { inputDir, filePaths } = params; const matchedExtnames = Object.keys(extMapping); const filePathsFiltered = filePaths.filter(filePath => { if (matchedExtnames.includes(filePath.extname)) { return true; } return false; }); const outputFiles = await Promise.all(filePathsFiltered.map(async filePath => { const absoluteFilePath = filePath.toAbsolutePath({ rel: inputDir }); const fs = useFs(); const content = await fs.readFile(absoluteFilePath.content, "utf-8"); const jsFile = await transform(content, { ...esbuildOptions }); const targetExtName = extMapping[filePath.extname]; return { from: filePath, to: filePath.replaceExtname(targetExtName), type: TransformActionTaskOutFileType.Transformed, content: jsFile.code, sourcemap: jsFile.map }; })); return outputFiles; }); }; export { TransformActionTaskEsbuild };