UNPKG

@pact-toolbox/script

Version:
98 lines (95 loc) 4.01 kB
//#region rolldown:runtime var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion const defu = __toESM(require("defu")); const jiti = __toESM(require("jiti")); const mlly = __toESM(require("mlly")); const pathe = __toESM(require("pathe")); const __pact_toolbox_config = __toESM(require("@pact-toolbox/config")); const __pact_toolbox_network = __toESM(require("@pact-toolbox/network")); const __pact_toolbox_runtime = __toESM(require("@pact-toolbox/runtime")); const __pact_toolbox_utils = __toESM(require("@pact-toolbox/utils")); //#region src/runner.ts function createScript(options) { return options; } const SUPPORTED_EXTENSIONS = [ ".js", ".mjs", ".cjs", ".ts", ".mts", ".cts", ".json" ]; const NPM_PACKAGE_RE = /^(@[\da-z~-][\d._a-z~-]*\/)?[\da-z~-][\d._a-z~-]*($|\/.*)/; async function runScript(source, options) { options.cwd = (0, pathe.resolve)(process.cwd(), options.cwd || "."); options.scriptOptions = options.scriptOptions || {}; if (!options.config) options.config = await (0, __pact_toolbox_config.resolveConfig)(); const scriptsDir = options.config.scriptsDir ?? "scripts"; const jiti$1 = (0, jiti.createJiti)((0, pathe.resolve)(options.cwd, scriptsDir), { interopDefault: true, moduleCache: false, extensions: [...SUPPORTED_EXTENSIONS] }); const tryResolve = (id) => { const resolved = jiti$1.esmResolve(id, { try: true }); return resolved ? (0, mlly.fileURLToPath)(resolved) : void 0; }; if (NPM_PACKAGE_RE.test(source)) source = tryResolve(source) || source; const scriptPath = tryResolve((0, pathe.resolve)(options.cwd, scriptsDir, source)) || tryResolve((0, pathe.resolve)(options.cwd, source)) || tryResolve((0, pathe.resolve)(options.cwd, ".scripts", source)); if (!scriptPath) throw new Error(`Script ${source} not found`); const scriptObject = await jiti$1.import(scriptPath); if (typeof scriptObject !== "object") throw new Error(`Script ${source} should export an object with run method`); const scriptInstance = (0, defu.default)(options.scriptOptions, scriptObject); if (scriptInstance.configOverrides) options.config = (0, defu.default)(scriptInstance.configOverrides, options.config); options.network = options.network ?? scriptInstance.network ?? options.config.defaultNetwork; if (!options.client) options.client = new __pact_toolbox_runtime.PactToolboxClient(options.config, options.network); options.client.setConfig(options.config); try { let n; if (scriptInstance.autoStartNetwork) n = await (0, __pact_toolbox_network.createPactToolboxNetwork)(options.config, { ...scriptInstance.startNetworkOptions, network: options.network, client: options.client }); const context = { logger: __pact_toolbox_utils.logger, client: options.client, args: options.args, network: options.network, config: options.config }; await scriptInstance.run(context); if (!scriptInstance.persist) { if (n) await n.stop(); } } catch (error) { __pact_toolbox_utils.logger.error(error); throw error; } } //#endregion exports.createScript = createScript; exports.runScript = runScript; //# sourceMappingURL=index.node.cjs.map