svelte-preprocess
Version:
A Svelte preprocessor wrapper with baked in support for common used preprocessors
73 lines (72 loc) • 2.38 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasDepInstalled = exports.getIncludePaths = exports.concat = exports.importAny = void 0;
const path_1 = require("path");
async function importAny(...modules) {
try {
const mod = await modules.reduce((acc, moduleName) => acc.catch(() => Promise.resolve().then(() => __importStar(require(moduleName)))), Promise.reject());
return mod;
}
catch (e) {
throw new Error(`Cannot find any of modules: ${modules}\n\n${e}`);
}
}
exports.importAny = importAny;
function concat(...arrs) {
return arrs.reduce((acc, a) => {
if (a) {
return acc.concat(a);
}
return acc;
}, []);
}
exports.concat = concat;
/** Paths used by preprocessors to resolve @imports */
function getIncludePaths(fromFilename, base = []) {
return [
...new Set([...base, 'node_modules', process.cwd(), path_1.dirname(fromFilename)]),
];
}
exports.getIncludePaths = getIncludePaths;
const cachedResult = {};
/**
* Checks if a package is installed.
*
* @export
* @param {string} dep
* @returns boolean
*/
async function hasDepInstalled(dep) {
if (cachedResult[dep] != null) {
return cachedResult[dep];
}
let result = false;
try {
await Promise.resolve().then(() => __importStar(require(dep)));
result = true;
}
catch (e) {
result = false;
}
return (cachedResult[dep] = result);
}
exports.hasDepInstalled = hasDepInstalled;