4.10.96 • Published 10 months ago

@taktikorg/amet-odio v4.10.96

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@taktikorg/amet-odio

npm version Downloads/month Build Status codecov

A regular expression parser for ECMAScript.

💿 Installation

$ npm install @taktikorg/amet-odio
  • require Node@^12.0.0 || ^14.0.0 || >=16.0.0.

📖 Usage

import {
    AST,
    RegExpParser,
    RegExpValidator,
    RegExpVisitor,
    parseRegExpLiteral,
    validateRegExpLiteral,
    visitRegExpAST
} from "@taktikorg/amet-odio"

parseRegExpLiteral(source, options?)

Parse a given regular expression literal then make AST object.

This is equivalent to new RegExpParser(options).parseLiteral(source).

  • Parameters:
    • source (string | RegExp) The source code to parse.
    • options? (RegExpParser.Options) The options to parse.
  • Return:
    • The AST of the regular expression.

validateRegExpLiteral(source, options?)

Validate a given regular expression literal.

This is equivalent to new RegExpValidator(options).validateLiteral(source).

visitRegExpAST(ast, handlers)

Visit each node of a given AST.

This is equivalent to new RegExpVisitor(handlers).visit(ast).

RegExpParser

new RegExpParser(options?)

parser.parseLiteral(source, start?, end?)

Parse a regular expression literal.

  • Parameters:
    • source (string) The source code to parse. E.g. "/abc/g".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
  • Return:
    • The AST of the regular expression.

parser.parsePattern(source, start?, end?, flags?)

Parse a regular expression pattern.

  • Parameters:
    • source (string) The source code to parse. E.g. "abc".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
    • flags? ({ unicode?: boolean, unicodeSets?: boolean }) The flags to enable Unicode mode, and Unicode Set mode.
  • Return:
    • The AST of the regular expression pattern.

parser.parseFlags(source, start?, end?)

Parse a regular expression flags.

  • Parameters:
    • source (string) The source code to parse. E.g. "gim".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
  • Return:
    • The AST of the regular expression flags.

RegExpValidator

new RegExpValidator(options)

validator.validateLiteral(source, start, end)

Validate a regular expression literal.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.

validator.validatePattern(source, start, end, flags)

Validate a regular expression pattern.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
    • flags? ({ unicode?: boolean, unicodeSets?: boolean }) The flags to enable Unicode mode, and Unicode Set mode.

validator.validateFlags(source, start, end)

Validate a regular expression flags.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.

RegExpVisitor

new RegExpVisitor(handlers)

visitor.visit(ast)

Validate a regular expression literal.

  • Parameters:

📰 Changelog

🍻 Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run build compiles TypeScript source code to index.js, index.js.map, and index.d.ts.
  • npm run clean removes the temporary files which are created by npm test and npm run build.
  • npm run lint runs ESLint.
  • npm run update:test updates test fixtures.
  • npm run update:ids updates src/unicode/ids.ts.
  • npm run watch runs tests with --watch option.
es2015shimstringifierexecredux-toolkitmulti-packagedayjstostringtagInt16ArrayemojimetadataArray.prototype.findLasthascoerciblereact poseECMAScript 2015routerdataAsyncIteratorterminalserializeyupbusyconfigurableamazontoStringTagtrimStartfantasy-landframerextendmkdirredactconcatMaplanguageRegExp#flagsstylesdataViewtapgroupByeslintpluginlruhas-owninstrumentationguidtypeoftddoptionclientcompilerglobtypeerrorbindInt32Arrayquotea11yRxJSECMAScript 6frameworkuser-streamscliagenteslintconfigloadbalancingwhichES2023ansiMicrosoftes8atomcollection.es6prefixwalkReactiveXexpressreversedStreamsbundlerzxuninstallsymbolbeanstalkPromiseflatMapnodeshrinkwrapYAMLmakepureObject.getPrototypeOftransformdirectoryl10nacornutilitiespyyamlremovereduxES7es7performancesidecircularcommand-linequeuetouchenvironmentsflagsisgetoptreactnodejsRxSystem.globalvariablestyperegular-expressionspinnerscryptoshebangloggingserializerECMAScript 2019Underscorees-abstractassertsimmutableapichaicolorgitignoreweakmapletpackage.jsontapejsxArray.prototype.containsprivatearraybuffertoArraydomString.prototype.trimreact-testing-library_.extendenvironmentvalidatorjsdiffinferenceES2015everydragmrubddargumentnativeclonearktypeenvconfigarraysinternal slotform-validationspecIteratorasyncfast-deep-clonelistenerspnpm9emitcjkCSSprotocol-buffersoptimizerbannerestreeextrabrowserslistassertfast-copynumberObservablepluginURLSearchParamsyamlinwriteuuidclassnamereact-hookstestingbinariesassertionjshelperredirectvaluedeepcopyfixed-widthstyleguidevarECMAScript 2022jsonWeakMapdebugArray.prototype.includesreact-hook-formES6accessortc39optimistlogpreprocessorcallFloat32Arraytacitgdprespree3dsetImmediateconsoleponyfillparentapollopatchdateboundignorefindLastswfUint32ArraycommandisConcatSpreadabletakeexecutespinnerbuffercharacterjestsameValueZerocreatestructuredCloneiteratejson-schema-validationcoverageReflect.getPrototypeOfprotobufsuperagentqsECMAScript 2020iteratortrimRightESnextpolyfillES2016.gitignoreastBigInt64Arrayreact animationwalkingdeterministicmkdirsstablepopmotioncode pointses2018Array.prototype.findLastIndexObject.fromEntriesforEachcolumnsObject.entrieskoreanimmerdeepecmascriptstringnegativecodesdirfunctionalfrompropertyclasseschannelgraphqlRFC-6455point-freebyteOffsetthreeObservablesajaxdefinedeep-copy__proto__spawnmanagergetPrototypeOfistanbultraverseprettymomentfetchfigletTypedArraycallbindfpes6xtermfastvalidregexoutputpathmonorepordses-shim APIArrayBuffer#slicelook-upesMaprobustArray.prototype.filtertestertextfnmatchcollectionjQueryimportexportrmdirquerywgetsafecensoromitinvariantflattenworkermapsliceArrayBuffer.prototype.sliceenumerableequalityairbnbzodsortedformatconsumepositiveRegExp.prototype.flagsprocesscolourwidthfeedinputspringmake dirlintavasharedrestfulllengthdeletebyteLengthES2021querystringreversecallboundrgbsyntaxerrorECMAScript 7httpsloadingprogresswaapipushutilvestparserfolderroute53htmltypedarraybrowserlisthasOwnPropertyglacierfastifyrequirehigher-ordercopyrestfulownreducereworkregexp6to5weakset[[Prototype]]escapematchesStyleSheetcomputed-typesmobiletestSymbol.toStringTagoncepostcss-pluginutilsshellbundlingkeycore-jsrulesimporthookformec2visualsyntaxECMAScript 2018elbbrowsersymlinksformattingschemeES5consttyped array256asteriskscoreregular expressionsassignvpcutil.inspectrfc4122lastrm -rfcss-in-jschromeclass-validatorsearchfunctionsfpsinstallprotoFloat64Arrayargscall-boundfind-updescriptorfindscheme-validationsetPrototypeOfvalueshasOwnpackagedom-testing-libraryECMAScript 2016installereslint-plugindynamodbwafUint8ClampedArrayrapidcolorsnegative zero0bytehooksECMAScript 2023babelmergejavascripthardlinkscontainselectrongetOwnPropertyDescriptoroffsetsome-0autoprefixerurllookES2022real-timedescriptorsroutingindicator.envObject.keysfile systemtypesafeObject.isflageast-asian-widthutilitysortes-shimsmapreducees2017timeexpressionpropfilterlinksuperstructttyasciishamformcheckmochaArrayBuffertransportinternalprivate datasimpledbrsstoolsUint8ArrayhashstreamsCSSStyleDeclarationintrinsicequalsymbolsES2020requestFunction.prototype.nametslibnpmchromiumSetproxyspeedES2017rmmatchAllformsbinaryrandomappcacheincludesgroupgetterphonewritableruntimezeroidleobjectresolvekinesisobjprunekarmapromisetoReversedelasticachemoveconcatWeakSeteventDispatcherWebSocketlibphonenumber@@toStringTagglobalThisramdatrimLeftmanipulationdefinePropertyglobal objectchildWebSocketscloudwatchinspectObject.definePropertyes2016rm -frreadreusewarningStreamrangeerrorInt8ArrayloggerhttpnopestoragegatewayObjectArrayexecfiledependenciesES2019slots3Object.assigndataviewES8npmignorecurrieddropiamflatdependency managerjapanesedescriptionpackagesreadablereducerES2018routefsfast-cloneECMAScript 2017parsefull-widthHyBifullwidthqueueMicrotaskefficientietoSortedtypescriptjson-schema-validatorString.prototype.matchAllworkspace:*PushxhrArray.prototype.flattencloudformationgesturesECMAScriptsharedarraybuffernameargvJSON-SchemaES3lockfileeventEmitterstylefork
4.10.96

10 months ago

4.10.95

10 months ago

4.10.94

10 months ago

4.10.93

10 months ago

4.9.93

10 months ago

4.9.92

10 months ago

4.9.91

10 months ago

4.9.90

10 months ago

4.9.89

11 months ago

4.9.88

11 months ago

4.9.87

11 months ago

4.9.86

11 months ago

4.9.85

11 months ago

4.9.84

11 months ago

4.9.83

11 months ago

4.9.82

11 months ago

4.9.81

11 months ago

4.9.80

11 months ago

4.8.80

11 months ago

4.7.80

11 months ago

4.7.79

11 months ago

4.7.78

11 months ago

4.7.77

11 months ago

4.7.76

11 months ago

4.7.75

11 months ago

4.7.74

11 months ago

4.7.73

11 months ago

4.7.72

11 months ago

4.7.71

11 months ago

4.7.70

11 months ago

4.7.69

11 months ago

4.7.68

11 months ago

4.7.67

11 months ago

4.7.66

11 months ago

4.7.65

11 months ago

3.7.65

11 months ago

3.7.64

11 months ago

3.7.63

11 months ago

3.6.63

12 months ago

3.6.62

12 months ago

3.6.61

12 months ago

3.6.60

12 months ago

3.5.60

12 months ago

2.5.60

12 months ago

2.5.59

12 months ago

1.5.59

12 months ago

1.5.58

12 months ago

1.5.57

12 months ago

1.5.56

12 months ago

1.5.55

12 months ago

1.5.54

12 months ago

1.5.53

12 months ago

1.5.52

12 months ago

1.5.51

12 months ago

1.5.50

12 months ago

1.5.49

12 months ago

1.5.48

12 months ago

1.5.47

12 months ago

1.5.46

1 year ago

1.5.45

1 year ago

1.4.45

1 year ago

1.4.44

1 year ago

1.4.43

1 year ago

1.4.42

1 year ago

1.4.41

1 year ago

1.4.40

1 year ago

1.4.39

1 year ago

1.4.38

1 year ago

1.4.37

1 year ago

1.4.36

1 year ago

1.4.35

1 year ago

1.4.34

1 year ago

1.4.33

1 year ago

1.4.32

1 year ago

1.4.31

1 year ago

1.4.30

1 year ago

1.4.29

1 year ago

1.3.29

1 year ago

1.3.28

1 year ago

1.3.27

1 year ago

1.3.26

1 year ago

1.2.26

1 year ago

1.2.25

1 year ago

1.2.24

1 year ago

1.1.24

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago