Socket
Socket
Sign inDemoInstall

regjsgen

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

regjsgen - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

8

package.json
{
"name": "regjsgen",
"description": "Generating JavaScript RegExps in JavaScript",
"version": "0.1.1",
"version": "0.1.2",
"author": "Benjamin Tan <demoneaux@gmail.com> (https://d10.github.io/)",

@@ -18,5 +18,2 @@ "license": "MIT",

},
"dependencies": {
"jsesc": "~0.4.3"
},
"scripts": {

@@ -26,4 +23,5 @@ "test": "node test/index.js"

"devDependencies": {
"got": "~0.3.0"
"got": "~1.2.0",
"jsesc": "~0.5.0"
}
}
# RegJSGen
Generating `RegExp`s from RegJSParser's AST.
Generating `RegExp`s from RegJSParser’s AST.
## Installation
## Install
```bash
npm install regjsgen
npm install --save regjsgen
```

@@ -14,3 +14,11 @@

```js
var generate = require('regjsgen').generate;
var regjsgen = require('regjsgen');
// With `regjsparser`
var regjsparser = require('regjsparser');
var regex = '^a$';
var ast = regjsparser.parse(regex);
// Modify AST
// ...
// Regenerate `RegExp`
regex = regjsgen.generate(ast);
```

@@ -29,5 +37,5 @@

```bash
node test/create_ref.js
node test/update_fixture.js
```
from the repo top directory.

@@ -79,2 +79,22 @@ /*!

function assertType(type, expected) {
if (expected.indexOf('|') == -1) {
if (type == expected) {
return;
}
throw Error('Invalid node type: ' + type);
}
expected = assertType.hasOwnProperty(expected)
? assertType[expected]
: (assertType[expected] = RegExp('^(?:' + expected + ')$'));
if (expected.test(type)) {
return;
}
throw Error('Invalid node type: ' + type);
}
/*--------------------------------------------------------------------------*/

@@ -95,8 +115,4 @@

function generateAlternative(node) {
var type = node.type;
assertType(node.type, 'alternative');
if (type != 'alternative') {
throw Error('Invalid node type: ' + type);
}
var terms = node.body,

@@ -120,8 +136,4 @@ length = terms ? terms.length : 0;

function generateAnchor(node) {
var type = node.type;
assertType(node.type, 'anchor');
if (type != 'anchor') {
throw Error('Invalid node type: ' + type);
}
switch (node.kind) {

@@ -142,8 +154,4 @@ case 'start':

function generateAtom(node) {
var type = node.type;
assertType(node.type, 'anchor|characterClass|characterClassEscape|dot|group|ref|value');
if (!/^(?:anchor|characterClass(?:Escape)?|dot|group|ref|value)$/.test(type)) {
throw Error('Invalid node type: ' + type);
}
return generate(node);

@@ -153,8 +161,4 @@ }

function generateCharacterClass(node) {
var type = node.type;
assertType(node.type, 'characterClass');
if (type != 'characterClass') {
throw Error('Invalid node type: ' + type);
}
var classRanges = node.body,

@@ -180,8 +184,4 @@ length = classRanges ? classRanges.length : 0;

function generateCharacterClassEscape(node) {
var type = node.type;
assertType(node.type, 'characterClassEscape');
if (type != 'characterClassEscape') {
throw Error('Invalid node type: ' + type);
}
return '\\' + node.value;

@@ -191,8 +191,4 @@ }

function generateCharacterClassRange(node) {
var type = node.type;
assertType(node.type, 'characterClassRange');
if (type != 'characterClassRange') {
throw Error('Invalid node type: ' + type);
}
var min = node.min,

@@ -209,8 +205,4 @@ max = node.max;

function generateClassAtom(node) {
var type = node.type;
assertType(node.type, 'anchor|characterClassEscape|characterClassRange|dot|value');
if (!/^(?:anchor|characterClassEscape|characterClassRange|dot|value)$/.test(type)) {
throw Error('Invalid node type: ' + type);
}
return generate(node);

@@ -220,8 +212,4 @@ }

function generateDisjunction(node) {
var type = node.type;
assertType(node.type, 'disjunction');
if (type != 'disjunction') {
throw Error('Invalid node type: ' + type);
}
var body = node.body,

@@ -250,8 +238,4 @@ length = body ? body.length : 0;

function generateDot(node) {
var type = node.type;
assertType(node.type, 'dot');
if (type != 'dot') {
throw Error('Invalid node type: ' + type);
}
return '.';

@@ -261,8 +245,4 @@ }

function generateGroup(node) {
var type = node.type;
assertType(node.type, 'group');
if (type != 'group') {
throw Error('Invalid node type: ' + type);
}
var result = '(';

@@ -305,8 +285,4 @@

function generateQuantifier(node) {
var type = node.type;
assertType(node.type, 'quantifier');
if (type != 'quantifier') {
throw Error('Invalid node type: ' + type);
}
var quantifier = '',

@@ -317,2 +293,3 @@ min = node.min,

switch (max) {
case undefined:
case null:

@@ -351,8 +328,4 @@ switch (min) {

function generateRef(node) {
var type = node.type;
assertType(node.type, 'ref');
if (type != 'ref') {
throw Error('Invalid node type: ' + type);
}
return '\\' + node.ref;

@@ -362,8 +335,4 @@ }

function generateTerm(node) {
var type = node.type;
assertType(node.type, 'anchor|characterClass|characterClassEscape|empty|group|quantifier|ref|value');
if (!/^(?:anchor|characterClass(?:Escape)?|empty|group|quantifier|ref|value)$/.test(type)) {
throw Error('Invalid node type: ' + type);
}
return generate(node);

@@ -373,8 +342,4 @@ }

function generateValue(node) {
var type = node.type;
assertType(node.type, 'value');
if (type != 'value') {
throw Error('Invalid node type: ' + type);
}
var kind = node.kind,

@@ -381,0 +346,0 @@ codePoint = node.codePoint;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc