@pact-foundation/pact-cli
Version:
Broker CLI for @pact-foundation/pact
43 lines • 1.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Arguments = exports.PACT_NODE_NO_VALUE = exports.DEFAULT_ARG = void 0;
const underscore_1 = __importDefault(require("underscore"));
const check_types_1 = __importDefault(require("check-types"));
exports.DEFAULT_ARG = 'DEFAULT';
exports.PACT_NODE_NO_VALUE = 'PACT_NODE_NO_VALUE';
const valFor = (v) => {
if (typeof v === 'object') {
return [JSON.stringify(v)];
}
return v !== exports.PACT_NODE_NO_VALUE ? [`${v}`] : [];
};
const mapFor = (mapping, v) => mapping === exports.DEFAULT_ARG ? valFor(v) : [mapping].concat(valFor(v));
const convertValue = (mapping, v) => {
if (v && mapping) {
return check_types_1.default.array(v)
? underscore_1.default.flatten(v.map((val) => mapFor(mapping, val)))
: mapFor(mapping, v);
}
return [];
};
class Arguments {
toArgumentsArray(args, mappings) {
return underscore_1.default.chain(args instanceof Array ? args : [args])
.map((x) => this.createArgumentsFromObject(x, mappings))
.flatten()
.value();
}
createArgumentsFromObject(args, mappings) {
return underscore_1.default.chain(Object.keys(args))
.reduce((acc, key) => mappings[key] === exports.DEFAULT_ARG
? convertValue(mappings[key], args[key]).concat(acc)
: acc.concat(convertValue(mappings[key], args[key])), [])
.value();
}
}
exports.Arguments = Arguments;
exports.default = new Arguments();
//# sourceMappingURL=arguments.js.map