UNPKG

@storm-software/build-tools

Version:

A comprehensive set of tools for building and managing projects within a Storm workspace. Includes builders such as rollup, rolldown, tsup, and unbuild, along with various utilities.

96 lines (90 loc) 3.7 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunkKTEGKYAHjs = require('./chunk-KTEGKYAH.js'); // src/plugins/ts-resolve.ts var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _module = require('module'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _resolve2 = require('resolve'); var _resolve3 = _interopRequireDefault(_resolve2); var resolveModule = (id, opts) => new Promise((resolve, reject) => { _resolve3.default.call(void 0, id, opts, (err, res) => { if (_optionalChain([err, 'optionalAccess', _ => _.code]) === "MODULE_NOT_FOUND") { return resolve(null); } if (err) { return reject(err); } resolve(res || null); }); }); var tsResolvePlugin = ({ resolveOnly, ignore } = {}) => { const resolveExtensions = [".d.ts", ".ts"]; return { name: `storm:ts-resolve`, async resolveId(source, importer) { _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - resolveId source: ${source}`); _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - resolveId importer: ${importer}`); if (!importer) { return null; } if (/\0/.test(source)) { return null; } if (_module.builtinModules.includes(source)) { return false; } if (ignore && ignore(source, importer)) { _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - ignored ${source}`); return null; } if (resolveOnly) { const shouldResolve = resolveOnly.some((v) => { if (typeof v === "string") return v === source; return v.test(source); }); if (!shouldResolve) { _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - skipped by matching resolveOnly ${source}`); return null; } } if (_path2.default.isAbsolute(source)) { _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - skipped absolute path: ${source}`); return null; } const basedir = importer ? await _fs2.default.promises.realpath(_path2.default.dirname(importer)) : process.cwd(); if (source[0] === ".") { return resolveModule(source, { basedir, extensions: resolveExtensions }); } let id = null; if (!importer) { id = await resolveModule(`./${source}`, { basedir, extensions: resolveExtensions }); } if (!id) { id = await resolveModule(source, { basedir, extensions: resolveExtensions, packageFilter(pkg) { pkg.main = pkg.types || pkg.typings; return pkg; }, paths: ["node_modules", "node_modules/@types"] }); } if (id) { _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - resolved ${source} to ${id}`); return id; } _chunkKTEGKYAHjs.writeDebug.call(void 0, `ts-resolve - mark ${source} as external`); return false; } }; }; exports.tsResolvePlugin = tsResolvePlugin;