lbundle
Version:
Small zero-configuration bundler build on top of Rollup.js and SWC for NPM libraries
130 lines (127 loc) • 3.79 kB
JavaScript
;
var resolve = require('../_virtual/resolve.js');
var require$$0$1 = require('resolve');
var require$$1 = require('resolve.exports');
require('./array-fmt.js');
var require$$0 = require('path');
var require$$4 = require('url');
var arrayFmt = require('../_virtual/array-fmt.js');
(function (exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
packageFilterBuilder: function() {
return packageFilterBuilder;
},
resolveSync: function() {
return resolveSync;
}
});
const _resolve = /*#__PURE__*/ _interop_require_default(require$$0$1);
const _resolveexports = require$$1;
const _arrayfmt = arrayFmt.__exports;
const _path = /*#__PURE__*/ _interop_require_default(require$$0);
const _url = require$$4;
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const baseDir = _path.default.dirname((0, _url.fileURLToPath)(require$$4.pathToFileURL(__filename).toString()));
const packageFilterBuilder = function() {
let path = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : '.', opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
const conditions = opts.conditions ?? [
'style',
'import',
'require'
];
const fields = opts.fields ?? [
'style',
'module',
'main'
];
return (pkg)=>{
// Check `exports` fields
try {
const resolvedExport = (0, _resolveexports.resolve)(pkg, path, {
conditions,
unsafe: true
});
if (typeof resolvedExport === 'string') {
pkg.main = resolvedExport;
return pkg;
}
} catch {
/* noop */ }
// Check independent fields
try {
const resolvedField = (0, _resolveexports.legacy)(pkg, {
fields,
browser: false
});
if (typeof resolvedField === 'string') {
pkg.main = resolvedField;
return pkg;
}
} catch {
/* noop */ }
return pkg;
};
};
const defaultOpts = {
caller: 'Resolver',
basedirs: [
baseDir
],
extensions: [
'.mjs',
'.js',
'.cjs',
'.json'
],
preserveSymlinks: true,
packageFilter: packageFilterBuilder()
};
const resolverSync = function(id) {
let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
try {
return _resolve.default.sync(id, {
...options,
pathFilter: (pkg, _path, relativePath)=>{
const result = (0, _resolveexports.resolve)(pkg, relativePath);
if (result) return result[0];
return '';
}
});
} catch {
return;
}
};
function resolveSync(ids, userOpts) {
const options = {
...defaultOpts,
...userOpts
};
for (const basedir of options.basedirs){
const opts = {
...options,
basedir,
basedirs: undefined,
caller: undefined
};
for (const id of ids){
const resolved = resolverSync(id, opts);
if (resolved) return resolved;
}
}
throw new Error(`${options.caller} could not resolve ${(0, _arrayfmt.arrayFmt)(ids)}`);
}
} (resolve.__exports));
//# sourceMappingURL=resolve.js.map