UNPKG

@pact-foundation/pact-cli

Version:
80 lines 3.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Server = void 0; const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const mkdirp_1 = require("mkdirp"); const check_types_1 = __importDefault(require("check-types")); const pact_standalone_1 = __importDefault(require("./pact-standalone")); const service_1 = require("./service"); class Server extends service_1.AbstractService { constructor(passedOptions = {}) { const options = { ...passedOptions }; options.dir = options.dir ? path_1.default.resolve(options.dir) : process.cwd(); options.pactFileWriteMode = options.pactFileWriteMode || 'overwrite'; if (options.spec) { check_types_1.default.assert.number(options.spec); check_types_1.default.assert.integer(options.spec); check_types_1.default.assert.positive(options.spec); } if (options.dir) { const dir = path_1.default.resolve(options.dir); try { fs_1.default.statSync(dir).isDirectory(); } catch (e) { (0, mkdirp_1.sync)(dir); } } if (options.log) { options.log = path_1.default.resolve(options.log); } if (options.sslcert) { options.sslcert = path_1.default.resolve(options.sslcert); } if (options.sslkey) { options.sslkey = path_1.default.resolve(options.sslkey); } if (options.consumer) { check_types_1.default.assert.string(options.consumer); } if (options.provider) { check_types_1.default.assert.string(options.provider); } if (options.logLevel) { options.logLevel = options.logLevel.toLowerCase(); } if (options.monkeypatch) { check_types_1.default.assert.string(options.monkeypatch); try { fs_1.default.statSync(path_1.default.normalize(options.monkeypatch)).isFile(); } catch (e) { throw new Error(`Monkeypatch ruby file not found at path: ${options.monkeypatch}`); } } super(pact_standalone_1.default.mockServiceFullPath, options, { port: '--port', host: '--host', log: '--log', ssl: '--ssl', sslcert: '--sslcert', sslkey: '--sslkey', cors: '--cors', dir: '--pact_dir', spec: '--pact_specification_version', pactFileWriteMode: '--pact-file-write-mode', consumer: '--consumer', provider: '--provider', monkeypatch: '--monkeypatch', logLevel: '--log-level', }, { cliVerb: 'service' }); this.options = options; } } exports.Server = Server; exports.default = (options) => new Server(options); //# sourceMappingURL=server.js.map