unmock-core
Version:
[][npmjs] [](https://circleci.com/gh/unmock/unmock-js) [](h
49 lines • 1.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
class UnmockOptions {
constructor(options) {
this.useInProduction = false;
this.logger = { log: () => undefined };
this.reset(options);
this.whitelist = this.whitelist || ["127.0.0.1", "127.0.0.0", "localhost"];
this.regexWhitelist = this.whitelistToRegex(this.whitelist);
}
reset(options) {
if (options === undefined) {
return this;
}
const { logger, signature, whitelist, useInProduction } = options;
this.logger = logger || this.logger;
this.signature = signature || this.signature;
this.whitelist = whitelist ? whitelist : this.whitelist;
this.regexWhitelist = this.whitelistToRegex(this.whitelist);
this.useInProduction = useInProduction || this.useInProduction;
return this;
}
isWhitelisted(host) {
if (this.regexWhitelist === undefined) {
return false;
}
return this.regexWhitelist.filter(wl => wl.test(host)).length > 0;
}
whitelistToRegex(whitelist) {
if (whitelist === undefined) {
return [];
}
whitelist = whitelist instanceof Array ? whitelist : [whitelist];
return whitelist.map((item) => {
if (item instanceof RegExp) {
return item;
}
return new RegExp("^" +
item
.split(/\*+/)
.map(lodash_1.escapeRegExp)
.join(".*") +
"$");
});
}
}
exports.UnmockOptions = UnmockOptions;
//# sourceMappingURL=options.js.map