UNPKG

@graphql-tools/code-file-loader

Version:

A set of utils for faster development of GraphQL tools

46 lines (45 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tryToLoadFromExport = tryToLoadFromExport; exports.tryToLoadFromExportSync = tryToLoadFromExportSync; const tslib_1 = require("tslib"); const exports_js_1 = require("./exports.js"); /** * @internal */ async function tryToLoadFromExport(rawFilePath) { try { const filepath = ensureFilepath(rawFilePath); const mod = await Promise.resolve(`${filepath}`).then(s => tslib_1.__importStar(require(s))); return await (0, exports_js_1.pickExportFromModule)({ module: mod, filepath }); } catch (e) { throw new Error(`Unable to load from file "${rawFilePath}": ${e.stack || e.message}`); } } /** * @internal */ function tryToLoadFromExportSync(rawFilePath) { try { const filepath = ensureFilepath(rawFilePath); // eslint-disable-next-line @typescript-eslint/no-require-imports const mod = require(filepath); return (0, exports_js_1.pickExportFromModuleSync)({ module: mod, filepath }); } catch (e) { throw new Error(`Unable to load from file "${rawFilePath}": ${e.stack || e.message}`); } } /** * @internal */ function ensureFilepath(filepath) { if (typeof require !== 'undefined' && require.cache) { filepath = require.resolve(filepath); if (require.cache[filepath]) { delete require.cache[filepath]; } } return filepath; }