securityos/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicate...

33 lines
702 B
JavaScript

/**
* The MIT License (MIT)
* Copyright (c) 2017-present Dmitry Soshnikov <[email protected]>
*/
'use strict';
/**
* A regexp-tree plugin to remove duplicates from character classes.
*/
module.exports = {
CharacterClass: function CharacterClass(path) {
var node = path.node;
var sources = {};
for (var i = 0; i < node.expressions.length; i++) {
var childPath = path.getChild(i);
var source = childPath.jsonEncode();
if (sources.hasOwnProperty(source)) {
childPath.remove();
// Since we remove the current node.
// TODO: make it simpler for users with a method.
i--;
}
sources[source] = true;
}
}
};