UNPKG

@backtrace/javascript-cli

Version:
52 lines 2.33 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.findConfig = exports.joinOptions = exports.loadOptions = exports.loadOptionsForCommand = exports.DEFAULT_OPTIONS_FILENAME = void 0; const sourcemap_tools_1 = require("@backtrace/sourcemap-tools"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const jsonc_1 = require("../helpers/jsonc"); exports.DEFAULT_OPTIONS_FILENAME = '.backtracejsrc'; function loadOptionsForCommand(path) { let readOptions; return async function loadAndJoinOptions(key, defaults) { return (0, sourcemap_tools_1.pipe)(path, (path) => (!readOptions ? loadOptions(path) : (0, sourcemap_tools_1.Ok)(readOptions)), sourcemap_tools_1.R.map((data) => (data ? (readOptions = data) : data)), sourcemap_tools_1.R.map((data) => (data ? joinOptions(key, defaults)(data) : {}))); }; } exports.loadOptionsForCommand = loadOptionsForCommand; async function loadOptions(path) { return (0, sourcemap_tools_1.pipe)(path ?? exports.DEFAULT_OPTIONS_FILENAME, sourcemap_tools_1.readFile, sourcemap_tools_1.R.mapErr((r) => (path ? (0, sourcemap_tools_1.Err)(r) : (0, sourcemap_tools_1.Ok)(undefined))), sourcemap_tools_1.R.map((data) => (data ? (0, jsonc_1.parseJSONC)(data) : (0, sourcemap_tools_1.Ok)(undefined)))); } exports.loadOptions = loadOptions; function joinOptions(key, defaults) { return function joinOptions(loadedOptions) { return { ...defaults, ...loadedOptions, 'add-sources': undefined, upload: undefined, process: undefined, ...loadedOptions[key], }; }; } exports.joinOptions = joinOptions; async function findConfig(searchPath = process.cwd(), name = exports.DEFAULT_OPTIONS_FILENAME) { const paths = await readdir(searchPath); if (paths.includes(name)) { return path_1.default.join(searchPath, name); } return undefined; } exports.findConfig = findConfig; async function readdir(path) { try { return await fs_1.default.promises.readdir(path); } catch (err) { return []; } } //# sourceMappingURL=loadOptions.js.map