UNPKG

svelte-preprocess

Version:

A Svelte preprocessor wrapper with baked in support for common used preprocessors

73 lines (72 loc) 2.38 kB
"use strict"; 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;