UNPKG

@struktoai/mirage-core

Version:

A Unified Virtual Filesystem For AI Agents

37 lines • 1.84 kB
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= export async function loadOptionalPeer(importer, config) { try { return await importer(); } catch (err) { const code = err?.code; const docsLine = config.docsUrl !== undefined ? `\nSee ${config.docsUrl} for details.` : ''; if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') { throw new Error(`${config.feature} requires the optional peer dependency ` + `\`${config.packageName}\`. Install it with:\n\n` + ` pnpm add ${config.packageName}\n` + docsLine); } // The package resolved and would not load. Installing it again is the // wrong advice here, so without a hint the original error is the most // honest thing to report. if (config.systemHint === undefined) throw err; const reason = err instanceof Error ? err.message : String(err); throw new Error(`${config.feature} could not load \`${config.packageName}\`: ${reason}\n\n` + `${config.systemHint}${docsLine}`, { cause: err }); } } //# sourceMappingURL=optional_peer.js.map