123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.defaultJoin = void 0;
- var _path = _interopRequireDefault(require("path"));
- var _fs = _interopRequireDefault(require("fs"));
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- default: obj
- };
- }
- const compose = (f, g)=>(...args)=>f(g(...args));
- const simpleJoin = compose(_path.default.normalize, _path.default.join);
- const defaultJoin = createJoinForPredicate(function predicate(_, uri, base, i, next) {
- const absolute = simpleJoin(base, uri);
- return _fs.default.existsSync(absolute) ? absolute : next(i === 0 ? absolute : null);
- }, "defaultJoin");
- exports.defaultJoin = defaultJoin;
- function* createIterator(arr) {
- for (const i of arr){
- yield i;
- }
- }
- function createJoinForPredicate(predicate, name) {
-
- function join(filename, options) {
- const log = createDebugLogger(options.debug);
-
- return function joinProper(uri, baseOrIteratorOrAbsent) {
- const iterator = typeof baseOrIteratorOrAbsent === "undefined" && createIterator([
- options.root
- ]) || typeof baseOrIteratorOrAbsent === "string" && createIterator([
- baseOrIteratorOrAbsent
- ]) || baseOrIteratorOrAbsent;
- const result = runIterator([]);
- log(createJoinMsg, [
- filename,
- uri,
- result,
- result.isFound
- ]);
- return typeof result.absolute === "string" ? result.absolute : uri;
- function runIterator(accumulator) {
- const nextItem = iterator.next();
- var base = !nextItem.done && nextItem.value;
- if (typeof base === "string") {
- const element = predicate(filename, uri, base, accumulator.length, next);
- if (typeof element === "string" && _path.default.isAbsolute(element)) {
- return Object.assign(accumulator.concat(base), {
- isFound: true,
- absolute: element
- });
- } else if (Array.isArray(element)) {
- return element;
- } else {
- throw new Error("predicate must return an absolute path or the result of calling next()");
- }
- } else {
- return accumulator;
- }
- function next(fallback) {
- return runIterator(Object.assign(accumulator.concat(base), typeof fallback === "string" && {
- absolute: fallback
- }));
- }
- }
- };
- }
- function toString() {
- return "[Function: " + name + "]";
- }
- return Object.assign(join, name && {
- valueOf: toString,
- toString: toString
- });
- }
- function createJoinMsg(file, uri, bases, isFound) {
- return [
- "resolve-url-loader: " + pathToString(file) + ": " + uri
- ].concat(bases.map(pathToString).filter(Boolean)).concat(isFound ? "FOUND" : "NOT FOUND").join("\n ");
-
- function pathToString(absolute) {
- if (!absolute) {
- return null;
- } else {
- const relative = _path.default.relative(process.cwd(), absolute).split(_path.default.sep);
- return (relative[0] === ".." ? absolute.split(_path.default.sep) : [
- "."
- ].concat(relative).filter(Boolean)).join("/");
- }
- }
- }
- exports.createJoinMsg = createJoinMsg;
- function createDebugLogger(debug) {
- const log = !!debug && (typeof debug === "function" ? debug : console.log);
- const cache = {};
- return log ? actuallyLog : noop;
- function noop() {}
- function actuallyLog(msgFn, params) {
- const key = JSON.stringify(params);
- if (!cache[key]) {
- cache[key] = true;
- log(msgFn.apply(null, params));
- }
- }
- }
- exports.createDebugLogger = createDebugLogger;
|