UNPKG

@digitak/grubber

Version:

Parse code files and patch it without having to use an AST

23 lines (22 loc) 813 B
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; }