mirror of
https://github.com/home-assistant/frontend.git
synced 2025-04-27 14:57:20 +00:00
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
const path = require("path");
|
|
|
|
module.exports = function (userOptions = {}) {
|
|
// Files need to be absolute paths.
|
|
// This only works if the file has no exports
|
|
// and only is imported for its side effects
|
|
const files = userOptions.files || [];
|
|
|
|
if (files.length === 0) {
|
|
return {
|
|
name: "ignore",
|
|
};
|
|
}
|
|
|
|
return {
|
|
name: "ignore",
|
|
resolveId(importee, importer) {
|
|
// Only use ignore to intercept imports that we don't control
|
|
// inside node_module dependencies.
|
|
if (
|
|
importee.endsWith("commonjsHelpers.js") ||
|
|
importee.endsWith("rollupPluginBabelHelpers.js") ||
|
|
importee.endsWith("?commonjs-proxy") ||
|
|
!importer ||
|
|
!importer.includes("/node_modules/")
|
|
) {
|
|
return null;
|
|
}
|
|
let fullPath;
|
|
try {
|
|
fullPath = importee.startsWith(".")
|
|
? path.resolve(importee, importer)
|
|
: require.resolve(importee);
|
|
} catch (err) {
|
|
console.error("Error in ignore plugin", { importee, importer }, err);
|
|
throw err;
|
|
}
|
|
|
|
return files.some((toIgnorePath) => fullPath.startsWith(toIgnorePath))
|
|
? fullPath
|
|
: null;
|
|
},
|
|
|
|
load(id) {
|
|
return files.some((toIgnorePath) => id.startsWith(toIgnorePath))
|
|
? {
|
|
code: "",
|
|
}
|
|
: null;
|
|
},
|
|
};
|
|
};
|