/**
 * Minified by jsDelivr using Terser v5.48.0.
 * Original file: /npm/@graphql-tools/module-loader@8.0.33/cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ModuleLoader=void 0;const tslib_1=require("tslib"),fs_1=require("fs"),graphql_1=require("graphql"),{access:access}=fs_1.promises,InvalidError=new Error("Imported object was not a string, DocumentNode or GraphQLSchema"),createLoadError=r=>new Error(`Unable to load schema from module: ${r.message||r}`);function extractData(r){const e=r.replace(/^module\:/i,"").split("#");if(!e||e.length>2)throw new Error('Schema pointer should match "module:path/to/module#export"');return{modulePath:e[0],exportName:e[1]}}class ModuleLoader{isExpressionValid(r){return"string"==typeof r&&r.toLowerCase().startsWith("module:")}async canLoad(r){if(this.isExpressionValid(r)){const{modulePath:e}=extractData(r);try{const r=require.resolve(e);return await access(r),!0}catch(r){return!1}}return!1}canLoadSync(r){if(this.isExpressionValid(r)){const{modulePath:e}=extractData(r);try{const r=require.resolve(e);return(0,fs_1.existsSync)(r)}catch(r){return!1}}return!1}async load(r){try{const e=this.parse(r,await this.importModule(r));if(e)return[e];throw InvalidError}catch(r){throw createLoadError(r)}}loadSync(r){try{const e=this.parse(r,this.importModuleSync(r));if(e)return[e];throw InvalidError}catch(r){throw createLoadError(r)}}parse(r,e){return(0,graphql_1.isSchema)(e)?{schema:e,location:r}:"string"==typeof e?{location:r,rawSDL:e}:"object"==typeof e&&"Document"===e.kind?{location:r,document:e}:void 0}extractFromModule(r,e,t){const o=t?r[t]:r;if(!o)throw new Error("Unable to import an object from module: "+e);return o}async importModule(r){const{modulePath:e,exportName:t}=extractData(r),o=await Promise.resolve(`${e}`).then(r=>tslib_1.__importStar(require(r)));return this.extractFromModule(o,e,t||"default")}importModuleSync(r){const{modulePath:e,exportName:t}=extractData(r),o=require(e);return this.extractFromModule(o,e,t)}}exports.ModuleLoader=ModuleLoader;
//# sourceMappingURL=/sm/8bda717aa063d8a814c2fa95656d9f8ffbaea212d3ce68824719e0cd7102fc88.map