@digitak/grubber
Version:
Parse code files and patch it without having to use an AST
23 lines (22 loc) • 813 B
JavaScript
import Parser from "../Parser.js";
// import { createRequire } from "module"
/**
* @param resolve callback that take a module endpoint as entry and the right .js file that is imported
*/
export default function addJsExtensions(content, resolve) {
const dependencies = new Parser(content, "es").findDependencies();
let result = "";
let offset = 0;
for (const dependency of dependencies) {
const imported = dependency.groups[2].trim();
const patchedImport = resolve(imported);
if (patchedImport !== imported) {
result +=
content.slice(offset, dependency.start) +
dependency.slice.replace(imported, patchedImport);
offset = dependency.end;
}
}
result += content.slice(offset);
return result;
}