amazon-route-53-dns-zone-file
Version:
Makes DNS Zone File easy. Parses and validates BIND zone files and can be extended for custom features. Functionality is modular. Features are made open for extension and closed for runtime mutation. Written in TypeScript.
24 lines • 3.76 kB
JavaScript
export var hasLetters = function (x) { return /[a-z]/i.test(x); };
export var hasNumbers = function (x) { return /\d/.test(x); };
export var trimDot = function (x) { return x.replace(/\.$/, ''); };
export var withDot = function (x) { return trimDot(x) + '.'; };
export var match = function (pattern, input) {
if (typeof input === 'string') {
return input.match(pattern) || [];
}
else {
return [];
}
};
export var matchDigitWithNumber = /(\d+)([a-z]+)/gim;
export var UNIX_NEW_LINE_CHAR = '\n';
export var unifyNewLine = function (value) {
return value
.replace(/\\n/, UNIX_NEW_LINE_CHAR)
.replace(/\r\n?/g, UNIX_NEW_LINE_CHAR);
};
export var splitByNewLine = function (value) {
return unifyNewLine(value).split(UNIX_NEW_LINE_CHAR);
};
export var newLinesIntoSpaces = function (value) { return value.replace(/\n/g, ' '); };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHNfZ2VuZXJpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvdXRpbHNfZ2VuZXJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsVUFBQyxDQUFTLElBQWMsT0FBQSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFoQixDQUFnQixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxVQUFDLENBQVMsSUFBYyxPQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQVosQ0FBWSxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxJQUFNLE9BQU8sR0FBRyxVQUFDLENBQVMsSUFBYSxPQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFwQixDQUFvQixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxJQUFNLE9BQU8sR0FBRyxVQUFDLENBQVMsSUFBYSxPQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQWhCLENBQWdCLENBQUM7QUFFL0QsTUFBTSxDQUFDLElBQU0sS0FBSyxHQUFHLFVBQUMsT0FBZSxFQUFFLEtBQWE7SUFDbEQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUNuQztTQUFNO1FBQ0wsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUV2QyxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFhO0lBQ3hDLE9BQUEsS0FBSztTQUNGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7U0FDbEMsT0FBTyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQztBQUZ4QyxDQUV3QyxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLEtBQWE7SUFDMUMsT0FBQSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0FBQTdDLENBQTZDLENBQUM7QUFFaEQsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFBQyxLQUFhLElBQUssT0FBQSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBekIsQ0FBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBoYXNMZXR0ZXJzID0gKHg6IHN0cmluZyk6IGJvb2xlYW4gPT4gL1thLXpdL2kudGVzdCh4KTtcblxuZXhwb3J0IGNvbnN0IGhhc051bWJlcnMgPSAoeDogc3RyaW5nKTogYm9vbGVhbiA9PiAvXFxkLy50ZXN0KHgpO1xuXG5leHBvcnQgY29uc3QgdHJpbURvdCA9ICh4OiBzdHJpbmcpOiBzdHJpbmcgPT4geC5yZXBsYWNlKC9cXC4kLywgJycpO1xuXG5leHBvcnQgY29uc3Qgd2l0aERvdCA9ICh4OiBzdHJpbmcpOiBzdHJpbmcgPT4gdHJpbURvdCh4KSArICcuJztcblxuZXhwb3J0IGNvbnN0IG1hdGNoID0gKHBhdHRlcm46IFJlZ0V4cCwgaW5wdXQ6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gaW5wdXQubWF0Y2gocGF0dGVybikgfHwgW107XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWF0Y2hEaWdpdFdpdGhOdW1iZXIgPSAvKFxcZCspKFthLXpdKykvZ2ltO1xuXG5leHBvcnQgY29uc3QgVU5JWF9ORVdfTElORV9DSEFSID0gJ1xcbic7XG5cbmV4cG9ydCBjb25zdCB1bmlmeU5ld0xpbmUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICB2YWx1ZVxuICAgIC5yZXBsYWNlKC9cXFxcbi8sIFVOSVhfTkVXX0xJTkVfQ0hBUilcbiAgICAucmVwbGFjZSgvXFxyXFxuPy9nLCBVTklYX05FV19MSU5FX0NIQVIpO1xuXG5leHBvcnQgY29uc3Qgc3BsaXRCeU5ld0xpbmUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdID0+XG4gIHVuaWZ5TmV3TGluZSh2YWx1ZSkuc3BsaXQoVU5JWF9ORVdfTElORV9DSEFSKTtcblxuZXhwb3J0IGNvbnN0IG5ld0xpbmVzSW50b1NwYWNlcyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5yZXBsYWNlKC9cXG4vZywgJyAnKTtcbiJdfQ==