feat: init
This commit is contained in:
69
node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js
generated
vendored
Normal file
69
node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* The MIT License (MIT)
|
||||
* Copyright (c) 2017-present Dmitry Soshnikov <dmitry.soshnikov@gmail.com>
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* A regexp-tree plugin to translate `/./s` to `/[\0-\uFFFF]/`.
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
|
||||
// Whether `u` flag present. In which case we transform to
|
||||
// \u{10FFFF} instead of \uFFFF.
|
||||
_hasUFlag: false,
|
||||
|
||||
// Only run this plugin if we have `s` flag.
|
||||
shouldRun: function shouldRun(ast) {
|
||||
var shouldRun = ast.flags.includes('s');
|
||||
|
||||
if (!shouldRun) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Strip the `s` flag.
|
||||
ast.flags = ast.flags.replace('s', '');
|
||||
|
||||
// Whether we have also `u`.
|
||||
this._hasUFlag = ast.flags.includes('u');
|
||||
|
||||
return true;
|
||||
},
|
||||
Char: function Char(path) {
|
||||
var node = path.node;
|
||||
|
||||
|
||||
if (node.kind !== 'meta' || node.value !== '.') {
|
||||
return;
|
||||
}
|
||||
|
||||
var toValue = '\\uFFFF';
|
||||
var toSymbol = '\uFFFF';
|
||||
|
||||
if (this._hasUFlag) {
|
||||
toValue = '\\u{10FFFF}';
|
||||
toSymbol = '\uDBFF\uDFFF';
|
||||
}
|
||||
|
||||
path.replace({
|
||||
type: 'CharacterClass',
|
||||
expressions: [{
|
||||
type: 'ClassRange',
|
||||
from: {
|
||||
type: 'Char',
|
||||
value: '\\0',
|
||||
kind: 'decimal',
|
||||
symbol: '\0'
|
||||
},
|
||||
to: {
|
||||
type: 'Char',
|
||||
value: toValue,
|
||||
kind: 'unicode',
|
||||
symbol: toSymbol
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user