UNPKG

kuyin-webpack-plugins

Version:

custom webpack, enhanced-resolve plugins

41 lines (40 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); function cached(fn) { const cache = Object.create(null); return function (str) { const hit = cache[str]; // eslint-disable-next-line no-return-assign return hit || (cache[str] = fn(str)); }; } exports.cached = cached; exports.existsSync = cached(function (filePath) { return fs_1.default.existsSync(filePath); }); function startsWith(source, searchString) { const stringLength = source.length; const searchLength = searchString.length; // early out if the search length is greater than the search string if (searchLength > stringLength) { return false; } let index = -1; while (++index < searchLength) { if (source.charCodeAt(index) !== searchString.charCodeAt(index)) { return false; } } return true; } exports.startsWith = startsWith; const extensionPattern = /\.(\w+)(?:$|\?.*)/; exports.getExtension = cached(function (path) { const result = path.match(extensionPattern); if (result && result[1]) { return result[1]; } return ''; });