1.0.0 • Published 15 days ago

@rabiepenpm/corporis-debitis-doloribus v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
15 days ago

@rabiepenpm/corporis-debitis-doloribus

npm version Downloads/month Build Status codecov

A regular expression parser for ECMAScript.

💿 Installation

$ npm install @rabiepenpm/corporis-debitis-doloribus
  • require Node@^12.0.0 || ^14.0.0 || >=16.0.0.

📖 Usage

import {
    AST,
    RegExpParser,
    RegExpValidator,
    RegExpVisitor,
    parseRegExpLiteral,
    validateRegExpLiteral,
    visitRegExpAST
} from "@rabiepenpm/corporis-debitis-doloribus"

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.
Pushless.jstrimRightYAMLgradients csschromiumArray.prototype.flatMapintrinsicwritablefast-deep-cloneirqsymlinksbcryptfswatchermetadatabyteOffsetMicrosofthardlinksincludesshareddomjwtSymbolrmdirgroupkoreancryptolanguagees2015typescriptreactreuse@@toStringTaghasOwnform-validationreduxES2016hookformconcatMapexpressionisdataviewoptimizerJSON-SchemamonorepooffsetcirculartrimEndpoint-freeponyfillStreamsdescriptionmacosoutputschemevestparentMapgraphqlmochaprophttploggercollectionfseventsObject.assigncorsstringifierstylestranspileObject.fromEntriescss variablewritequerystringyupcss-in-jsletshamboundchineseArray.prototype.flatpackage.jsonimportdom-testing-libraryESuser-streamsextendjsonschemautil.inspectprotocol-buffersexeces2018fast-deep-copytrimStartES2023somefixed-widthcore-jswidthargumentstylingpreprocessorcall-boundeveryapollotouchsortedtypedarrayarraybufferpromisexssredactdeepObject.entriesmime-dbdependency managerendersetvaranimationcoreshimtacitvisualcolouropenmobilepipeCSSargparsees-shimsparserString.prototype.matchAllRxJSspinnerfilemrupurelinuxmatchesES3emitasciijsonpathfantasy-landpostcssES2019warningmodulesECMAScript 7frameworkjQuerysortoperating-systemcompareidlecontainsAsyncIteratordirectoryES2017invariantObservablescacheformES8higher-order__proto__bootstrap lesstimeRegExp#flagssanitizationterminalbusyqsmimeurldeep-copycharacterArray.prototype.findLastinspectcolorregular expressionses5ratelimitserializeECMAScript 2020ArrayBuffer#slicecommandpromisesauthlengthauthenticationmatchAllReactiveExtensionsdotenvinternalFunction.prototype.nameObservablesetteriteratefromecmascriptbrowserstatuspropertiesvalidatorbabelECMAScript 2015objectarktypewaittestenumerablebrowserslisttestingtrimLeftaccessibilitydependenciescreateECMAScript 2018functionsimmerkeysramdababel-coreinstallerstreampackageartuninstall_.extendUint8ClampedArrayvalidationconsumebddvariablesshrinkwrapisConcatSpreadablestartercss nestingmoveinternal slotassertionprototyperequireclonenamesexit-codeFloat64ArrayfullwidthtypedarraysStreamqueueMicrotasklrudeep-clonedayjsfigletiteratorreducerhooksthroatfastcopyajvgetintrinsicflagutilsArraysyntaxfastclonetypesafepathstringifytsguidcollection.es6typedconcurrencyloggingreadES5side-0ECMAScript 3Array.prototype.filterwatchFilemkdirpECMAScript 2023descriptorsremovewaapiutilitysuperstruct0forEachjsreact-hook-formTypeBoxwhichxhrtypenested csstc39package managermapassertsdeepcloneomitfind-upsameValueZeroindicatorhelpersgetterURLes-shim APIconnectconfigurablestringarrayjson-schema-validatorjson-schema-validationbyteformsECMAScript 2017stdlibspeedmimetypesArray.prototype.includesinterruptsfoldertostringtagbyteLengthsymbolsposemergepatchquerysetImmediatePromisehasObject.valuesless mixinsglobeslintplugintoArraycallboundflatMapregexpHyBiTypedArraySetavaonceprotobufformatdiffmulti-packageweakset256findLastIndexpruneio-tsi18nString.prototype.trimtakebannerdeepcopybundlernopetoSortedutilitiesbrowserlistwalkingObjectthrottletrimgradients css3validateprivatecryptReflect.getPrototypeOfeast-asian-widthtraversetoolsassertfindLastclicharacterswatchingjson-schemadeterministicrgbzodESnextcompile lessstabledeletevalidratereact animationcommanderreact-testing-library[[Prototype]]linkpicomatchnegative zeroeslint-pluginstyleArrayBuffer.prototype.slicedefinePropertymkdirsflatbufferwatchequalArray.prototype.containsaccessor6to5functionlistenersES2020escapefastclassessignalWebSocketconfigfetchfiltertypeerrorinferenceyamlcallbindprogresscjkreadablenegativewrapregularperformancedescriptorlinewraprandomlimitReactiveXduplexnameURLSearchParamsdropIteratorencryptionweakmapschemaeventssymbolclassnamesgetPrototypeOfcensorconcatargsparentsjapanesecallbackES6sharedarraybufferUnderscoredirmiddlewarezeroRFC-6455styleguidedatastructure.envregexdragfindupprotominimalES2021phonepnpm9npmestreequeueresolvepyyamlprefixRegExp.prototype.flagsES7cssmixinsoptionoptimistrfc4122immutableextensionclass-validatorassignECMAScript 5popmotionobjworkspace:*framerpluginObject.getPrototypeOfthreeES2018hashserializationsigtermdebugefficientES2022fpcall-bindfullscheme-validationformattingpostcss-pluginObject.keysrapidtextmatchbindcoercibletypanionbreakpasswordmkdirlookeslintECMAScript 2016full-widthchromesettingsgroupBygdprgestureses2017reducereadablestreamtelephonechannelmakekarmasyntaxerrorsigintlintECMAScript 6tslibstreams2lastwalkstylesheetreact-hookscurlrecursiveserializerbatchworkerTypeScriptasyncJSONfast-copyflagsa11yelectroncheckcurriedloadingarraystaprequestfindgetiterationsanitizees8chaiviewiermreact posenativeprocessdataViewtapees6whatwgconstcalldebuggerbluebirddateslotWeakMapcomputed-typespositivelesscssSymbol.toStringTaglimitedwindowsunicodeInt32Arrayvariables in cssslicemomentRxerrortyped arrayvaluesawesomesauceeslintconfigautoprefixerCSSStyleDeclarationupexitnumberessignalstermES2015safesetPrototypeOfstyled-componentsinputUint8Arrayruntimeredux-toolkitcompilerlogsuperagentStyleSheettestergetOwnPropertyDescriptorpersistentspringpushperformantWebSocketsrm -frairbnbECMAScript 2021lazyInt8Arraycolorsemojiextraquotejasminetypeofes2016astttypackagesfast-cloneawait3dlessInt16Arrayshellcolumnjsxentriesvaluespecbootstrap csspreserve-symlinkscopyharmonyWeakSetuuides-abstractwgetcss lessless compilerstreamsconsoleFloat32Arrayl10njsdiffflattennoderegular expressionBigInt64Arraymodulenodejscolumnssequenceapiprivate dataprettyequalitysearchutilshebangfastifyansilockfilehttpsArrayBufferparseenvironmentArray.prototype.flattenajaxeventDispatcher
1.0.0

15 days ago