WIP - add extractor, generate snippet_data
This commit is contained in:
50
node_modules/regexp-tree/dist/compat-transpiler/index.js
generated
vendored
Normal file
50
node_modules/regexp-tree/dist/compat-transpiler/index.js
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
/**
|
||||
* The MIT License (MIT)
|
||||
* Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var compatTransforms = require('./transforms');
|
||||
var _transform = require('../transform');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* Translates a regexp in new syntax to equivalent regexp in old syntax.
|
||||
*
|
||||
* @param string|RegExp|AST - regexp
|
||||
* @param Array transformsWhitelist - names of the transforms to apply
|
||||
*/
|
||||
transform: function transform(regexp) {
|
||||
var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
||||
|
||||
var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);
|
||||
|
||||
var result = void 0;
|
||||
|
||||
// Collect extra data per transform.
|
||||
var extra = {};
|
||||
|
||||
transformToApply.forEach(function (transformName) {
|
||||
|
||||
if (!compatTransforms.hasOwnProperty(transformName)) {
|
||||
throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));
|
||||
}
|
||||
|
||||
var handler = compatTransforms[transformName];
|
||||
|
||||
result = _transform.transform(regexp, handler);
|
||||
regexp = result.getAST();
|
||||
|
||||
// Collect `extra` transform result.
|
||||
if (typeof handler.getExtra === 'function') {
|
||||
extra[transformName] = handler.getExtra();
|
||||
}
|
||||
});
|
||||
|
||||
// Set the final extras for all transforms.
|
||||
result.setExtra(extra);
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user