1.1.4 • Published 11 days ago

@teamteanpm2024/impedit-illo-asperiores v1.1.4

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

Demo

Features

  • Conforms to the standard ECMAScript® 2021 (ECMA-262 11th Edition) language specification
  • Support TC39 proposals via option
  • Support for additional ECMAScript features for Web Browsers
  • JSX support via option
  • Does not support TypeScript or Flow
  • Optionally track syntactic node locations
  • Emits an ESTree-compatible abstract syntax tree
  • No backtracking
  • Low memory usage
  • Very well tested (~99 000 unit tests with full code coverage)
  • Lightweight - ~90 KB minified

ESNext features

Note: These features need to be enabled with the next option.

Installation

npm install @teamteanpm2024/impedit-illo-asperiores --save-dev

API

Meriyah generates AST according to ESTree AST format, and can be used to perform syntactic analysis (parsing) of a JavaScript program, and with ES2015 and later a JavaScript program can be either a script or a module.

The parse method exposed by @teamteanpm2024/impedit-illo-asperiores takes an optional options object which allows you to specify whether to parse in script mode (the default) or in module mode.

This is the available options:

{
  // The flag to allow module code
  module: false;

  // The flag to enable stage 3 support (ESNext)
  next: false;

  // The flag to enable start, end offsets and range: [start, end] to each node
  ranges: false;

  // Enable web compatibility
  webcompat: false;

  // The flag to enable line/column location information to each node
  loc: false;

  // The flag to attach raw property to each literal and identifier node
  raw: false;

  // Enabled directives
  directives: false;

  // The flag to allow return in the global scope
  globalReturn: false;

  // The flag to enable implied strict mode
  impliedStrict: false;

  // Allows comment extraction. Accepts either a function or array
  onComment: []

  // Allows detection of automatic semicolon insertion. Accepts a callback function that will be passed the charater offset where the semicolon was inserted
  onInsertedSemicolon: (pos) => {}

  // Allows token extraction. Accepts either a function or array
  onToken: []

  // Enable non-standard parenthesized expression node
  preserveParens: false;

  // Enable lexical binding and scope tracking
  lexical: false;

  // Adds a source attribute in every node’s loc object when the locations option is `true`
  source: false;

  // Distinguish Identifier from IdentifierPattern
  identifierPattern: false;

   // Enable React JSX parsing
  jsx: false

  // Allow edge cases that deviate from the spec
  specDeviation: false
}

onComment and onToken

If an array is supplied, comments/tokens will be pushed to the array, the item in the array contains start/end/range information when ranges flag is true, it will also contain loc information when loc flag is true.

If a function callback is supplied, the signature must be

declare function onComment(type: string, value: string, start: number, end: number, loc: SourceLocation): void;

declare function onToken(token: string, start: number, end: number, loc: SourceLocation): void;

Note the start/end/loc information are provided to the function callback regardless of the settings on ranges and loc flags. onComment callback has one extra argument value: string for the body string of the comment.

onInsertedSemicolon

If a function callback is supplied, the signature must be

declare function onInsertedSemicolon(position: number): void;

Example usage

import { parseScript } from './@teamteanpm2024/impedit-illo-asperiores';

parseScript('({x: [y] = 0} = 1)');

This will return when serialized in json:

{
    type: "Program",
    sourceType: "script",
    body: [
        {
            type: "ExpressionStatement",
            expression: {
                type: "AssignmentExpression",
                left: {
                    type: "ObjectPattern",
                    properties: [
                        {
                            type: "Property",
                            key: {
                                type: "Identifier",
                                name: "x"
                            },
                            value: {
                                type: "AssignmentPattern",
                                left: {
                                    type: "ArrayPattern",
                                    elements: [
                                        {
                                            "type": "Identifier",
                                            "name": "y"
                                        }
                                    ]
                                },
                                right: {
                                    type: "Literal",
                                    value: 0
                                }
                            },
                            kind: "init",
                            computed: false,
                            method: false,
                            shorthand: false
                        }
                    ]
                },
                operator: "=",
                right: {
                    type: "Literal",
                    value: 1
                }
            }
        }
    ]
}
dependencieswidthruntimeUint32ArraykoreanformcommandoncewatchFiletraversepropertieswgetweaksetrgblibphonenumberdomawaitvestfast-copyduplexbyteOffsetCSSStyleDeclarationloggerWebSocketcolorstrimLeftviewbrowserslisttypescriptjsdifffindLasttypedarraystestargvinternal slotthrottleObservableswarningmomentratelimitvalidationsimpledbtsliboptionvalidatoreventsRFC-6455ES2019es5linewrapperformanceshimwindowsdeep-copynested csssetImmediatehandlerssameValueZeromatchwhatwgSymbol.toStringTagdeepcopywordbreakcode pointsstatelesscensorrm -frbannergetintrinsicinvariantcolumnsstreamsasyncObject.definePropertyeslintprefixfastcloneprunejavascriptsyntaxerrorcolourreal-timesuperagentutilityqueueconsumeRegExp#flagsArray.prototype.flatMapPromisees2016touchbcryptreduceres6react-testing-librarypreserve-symlinksredactpyyamlless.jsenumerabletypeerrorArray.prototype.filterRxJSajvecmascriptbundlerstoragegatewayString.prototype.matchAllrequireless compilerMicrosoftcommanderECMAScript 3querystringpatchomitrequestcacheexit-codeexitbuffersexpresstypesafematchesenvirqjsxclijestdropminimalstylingtimewalkramdaavaremoveairbnbcodessyntaxFloat64ArrayPushgenericsdynamodbreducexhrstyleguidehardlinkscjkjson-schema-validationebssafeObject.isTypeScriptgetoptdataViewrobustmoveBigInt64Arrayconsoletestinghooksgradients css3trimfetchlengthes-shimssignalshelpershashbyteObject.assignvalidateutilfiltereslintconfig256frameworktyped arrayhasrfc4122objectdatacss-in-jsindicatoraccessordescriptorsclass-validatorjoistablees7sorteda11yprivatebusytoolsrecursiveprivate dataArray.prototype.includesclassnameflagsamazonsetcorsES7apispeccoreextrabrowserlistsequencemetadatanpmfunctionsloadinggroupworkflowcryptkinesisvpcflagoutputslicefast-deep-cloneprettyawsdependency managereventEmitterES5Objectzeronegativecollectioncommand-linesuperstructfpslruprototypethroatdragES8jsonschemaemojiwritablegetpnpm9promisesECMAScript 5slotlesscssparseremitfigletstarterstylesheetxtermjson-schemamimerm -rfjshigher-orderECMAScript 2018importexportconfigurablerapidlazyelectronYAMLroute53flattenbootstrap lessschemeprocessequalprotobufreactcontainsArray.prototype.flatten3dimmerbundlingpasswordmimetypes.envfastcopyutil.inspectString.prototype.trimInt16Arrayserializercopyapolloes-shim APItaskownarraysrdstypesfunctionalfastifyfast-clonearktypees2018east-asian-width_.extendbabel-coreinratesymlinksFunction.prototype.namestyleimmutabletypanionharmonyscheme-validationchanneltesterAsyncIteratorguidES2023ESnexttypeofinternalStreamsStreamObject.entrieslimitedfindupemrWeakSeturlcloudformationworkspace:*hookformformattingargumentbuffer@@toStringTagdirectoryinspectstreamelasticacheES2018Uint16Arraymakeinstallercurltranspilemime-dbpersistentsideletchaiyamlbindCSSdeepfolderhasOwn__proto__ES2020BigUint64Arrayqsl10nmapspeedi18nES6promiseponyfillinputfull-widthcall-boundescapeerror-handlingpicomatchWebSocketsFloat32Arrayvariables in csscompile lesspackagecharactersarraylistenerstrimStarthttpsconcatlook-upwebES2015less mixinsuser-streamsgetPrototypeOfbabelwafcore-jsES2016react posecheckeslint-pluginmobiletypedeslintplugincallbindnegative zerofulltrimEndencryptionhasOwnPropertycollection.es6jsdomsesES3idledifftoArrayautoprefixerReactiveXshebangenvironmentnopedebuggerresolveeventDispatchermkdirsterminalsigintargsreadablestreamiterationtranspilerwatchers3ECMAScript 2023opencloudtrailastiteratorcloneInt8Arrayttypushform-validationwrapansiStyleSheetregular expressionsymlinkcolumngetOwnPropertyDescriptorregularswfnumberjQueryshellutilitiespackageslintObject.fromEntriessetPrototypeOfObject.getPrototypeOfclassnamesstreams2gdprlockfilegroupByphonemodulesincludesES2022RxflatendpointnamessymbolsiscloudsearchregexpSymboldeleteiteratebatchextensionposechineseentriespathreact-hookshas-ownserializepolyfilljson-schema-validatorECMAScript 7offsetesyuputilsprotocol-buffersawesomesaucetoSortedstyleses2015callboundArrayBuffer.prototype.slicecssvisualmake dirautoscalingconfigshamimportparentstsfixed-widthspinnerstoolkitdayjsreadablemrudefineInt32ArraynameserializationclientmonorepoECMAScript 2019sharedarraybufferproxycoerciblermdirrmECMAScript 2022mochaObject.keysprotogetterconcatMapReactiveExtensionsintrinsicobjtddmulti-packageregexsomecrypto0css variableglobwatchingnodegradients csslinuxes-abstractequalityredux-toolkitquerylimitcss lessparsingbootstrap cssArray.prototype.flatcompilercircularcomputed-typestapecurriedstyled-componentslooksanitizemkdir[[Prototype]]snsmkdirpbyteLengthpostcsstostringtagloggingstructuredClonedotenvstatusenderanimationdeep-clonelanguagestringifiercreatequotetermcolortakearraybufferpuretelephonebddcss nestingformsfile systemclassesxssfseventsECMAScript 2020$.extendwaapiexpressionURLsharedURLSearchParamsfullwidthartoptimisteverymapreduceUint8Arrayio-tscloudwatchpositivedescriptorbreakjasminedataviewinterruptsunicodeECMAScript 6jsonmiddlewareframerless cssfromlesssigtermlinkspringwriteObservablechromiumexecjwtpropmoduledefinePropertyperformantajaxpreprocessorauthenticationtypedarrayassertslogregular expressionswatchassertionsymboldeepclonees2017Array.prototype.findLastIndexfpHyBipipesettingsvalidcloudfront
1.1.4

11 days ago

1.1.3

12 days ago

1.1.2

13 days ago

1.1.1

14 days ago

1.0.1

15 days ago

1.0.0

15 days ago