aboutsummaryrefslogtreecommitdiff
path: root/node_modules/regex-not/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/regex-not/index.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
downloadwallet-core-363723fc84f7b8477592e0105aeb331ec9a017af.tar.xz
node_modules
Diffstat (limited to 'node_modules/regex-not/index.js')
-rw-r--r--node_modules/regex-not/index.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/node_modules/regex-not/index.js b/node_modules/regex-not/index.js
new file mode 100644
index 000000000..8593d8b3a
--- /dev/null
+++ b/node_modules/regex-not/index.js
@@ -0,0 +1,66 @@
+'use strict';
+
+var extend = require('extend-shallow');
+
+/**
+ * The main export is a function that takes a `pattern` string and an `options` object.
+ *
+ * ```js
+ & var not = require('regex-not');
+ & console.log(not('foo'));
+ & //=> /^(?:(?!^(?:foo)$).)*$/
+ * ```
+ *
+ * @param {String} `pattern`
+ * @param {Object} `options`
+ * @return {RegExp} Converts the given `pattern` to a regex using the specified `options`.
+ * @api public
+ */
+
+function toRegex(pattern, options) {
+ return new RegExp(toRegex.create(pattern, options));
+}
+
+/**
+ * Create a regex-compatible string from the given `pattern` and `options`.
+ *
+ * ```js
+ & var not = require('regex-not');
+ & console.log(not.create('foo'));
+ & //=> '^(?:(?!^(?:foo)$).)*$'
+ * ```
+ * @param {String} `pattern`
+ * @param {Object} `options`
+ * @return {String}
+ * @api public
+ */
+
+toRegex.create = function(pattern, options) {
+ if (typeof pattern !== 'string') {
+ throw new TypeError('expected a string');
+ }
+
+ var opts = extend({}, options);
+ if (opts && opts.contains === true) {
+ opts.strictNegate = false;
+ }
+
+ var open = opts.strictOpen !== false ? '^' : '';
+ var close = opts.strictClose !== false ? '$' : '';
+ var endChar = opts.endChar ? opts.endChar : '+';
+ var str = pattern;
+
+ if (opts && opts.strictNegate === false) {
+ str = '(?:(?!(?:' + pattern + ')).)' + endChar;
+ } else {
+ str = '(?:(?!^(?:' + pattern + ')$).)' + endChar;
+ }
+
+ return open + str + close;
+};
+
+/**
+ * Expose `toRegex`
+ */
+
+module.exports = toRegex;