unbag
Version:
一个专门用来开发npm工具的包
48 lines (47 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TransformActionTaskEsbuild = void 0;
var _esbuild = require("esbuild");
var _fs = require("./../../../../utils/fs.cjs");
var _index = require("../index.cjs");
const TransformActionTaskEsbuild = options => {
const {
esbuild: esbuildOptions,
extMapping
} = options;
return (0, _index.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 = (0, _fs.useFs)();
const content = await fs.readFile(absoluteFilePath.content, "utf-8");
const jsFile = await (0, _esbuild.transform)(content, {
...esbuildOptions
});
const targetExtName = extMapping[filePath.extname];
return {
from: filePath,
to: filePath.replaceExtname(targetExtName),
type: _index.TransformActionTaskOutFileType.Transformed,
content: jsFile.code,
sourcemap: jsFile.map
};
}));
return outputFiles;
});
};
exports.TransformActionTaskEsbuild = TransformActionTaskEsbuild;