nv-cli-esdef

nv-cli-esdef =============== - nv-cli-esdef - cli tool, quickly search estree definition

Usage no npm install needed!

<script type="module">
  import nvCliEsdef from 'https://cdn.skypack.dev/nv-cli-esdef';
</script>

README

nv-cli-esdef

  • nv-cli-esdef
  • cli tool, quickly search estree definition

install

  • npm install nv-cli-esdef -g

usage

bytype

    npm install nv-cli-esdef -g


    # nv_esdef_bytype  -h
    Usage: nv_esdef_bytype [options]
    Options:
        -n, --name                estree Node type name
        -c, --core                search in core category
        -t, --ts                  search in typescript category
        -j, --jsx                 search in JSX category
        -f, --flow                search in FLOW category
        -m, --misc                search in misc category
        -e, --experimental        search in experimental category
        -a, --all                 search in all categories
        -o, --output              output js file,default stdout
        -h, --help                usage

    nv-cli-esdef#

brief

BENCH# nv_esdef_bytype -n Identifier
[
  {
    Identifier: {
      builder: [Array],
      visitor: [Array],
      aliases: [Array],
      fields: [Object],
      validate: [Object]
    }
  },
  {
    '<possible>': [
      'JSXIdentifier',
      'QualifiedTypeIdentifier',
      'V8IntrinsicIdentifier'
    ]
  }
]

detail

# nv_esdef_bytype -n TSArrayType -d
[
    {
        "aliases": [
            "TSType"
        ],
        "visitor": [
            "elementType"
        ],
        "fields": {
            "elementType": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "TSType"
                    ]
                },
                "default": null
            }
        },
        "builder": [
            "elementType"
        ]
    }
]

list

# nv_esdef_bytype -n TSA ImportDe
[
    {
        "<possible>": [
            "TSAnyKeyword",
            "TSArrayType",
            "TSAsExpression",
            "ImportDeclaration",
            "ImportDefaultSpecifier"
        ]
    }
]

byvisit

BENCH# nv_esdef_byvisit -h
Usage: nv_esdef_byvisit [options]
Options:
    -l, --list                list all visitors of esnode
    -v, --visitors            visitor names, @and means must includes, @or means or,default @or
    -c, --core                search in core category
    -t, --ts                  search in typescript category
    -j, --jsx                 search in JSX category
    -f, --flow                search in FLOW category
    -m, --misc                search in misc category
    -e, --experimental        search in experimental category
    -a, --all                 search in all categories
    -o, --output              output js file,default stdout
    -h, --help                usage
    -d, --detail              show full info

BENCH#

brief

// and
nv-cli-esdef#nv_esdef_byvisit  -v arg@and  type@and  -c
[
  {
    _type: 'CallExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  },
  {
    _type: 'NewExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  },
  { _type: 'RestElement', visitor: [ 'argument', 'typeAnnotation' ] },
  {
    _type: 'OptionalCallExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  }
]
nv-cli-esdef#


nv-cli-esdef# nv_esdef_byvisit -n TSA ImportDe -v arg left  -c
[
  { _type: 'AssignmentExpression', visitor: [ 'left', 'right' ] },
  { _type: 'BinaryExpression', visitor: [ 'left', 'right' ] },
  {
    _type: 'CallExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  },
  { _type: 'ForInStatement', visitor: [ 'left', 'right', 'body' ] },
  { _type: 'LogicalExpression', visitor: [ 'left', 'right' ] },
  {
    _type: 'NewExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  },
  { _type: 'RestElement', visitor: [ 'argument', 'typeAnnotation' ] },
  { _type: 'ReturnStatement', visitor: [ 'argument' ] },
  { _type: 'ThrowStatement', visitor: [ 'argument' ] },
  { _type: 'UnaryExpression', visitor: [ 'argument' ] },
  { _type: 'UpdateExpression', visitor: [ 'argument' ] },
  {
    _type: 'AssignmentPattern',
    visitor: [ 'left', 'right', 'decorators' ]
  },
  { _type: 'ForOfStatement', visitor: [ 'left', 'right', 'body' ] },
  { _type: 'SpreadElement', visitor: [ 'argument' ] },
  { _type: 'YieldExpression', visitor: [ 'argument' ] },
  { _type: 'AwaitExpression', visitor: [ 'argument' ] },
  {
    _type: 'OptionalCallExpression',
    visitor: [ 'callee', 'arguments', 'typeParameters', 'typeArguments' ]
  }
]
nv-cli-esdef#

detail

    BENCH# nv_esdef_byvisit -v arg -t -d
    [
        {
            "aliases": [
                "TSType"
            ],
            "visitor": [
                "argument",
                "qualifier",
                "typeParameters"
            ],
            "fields": {
                "argument": {
                    "validate": {
                        "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                        "oneOfNodeTypes": [
                            "StringLiteral"
                        ]
                    },
                    "default": null
                },
                "qualifier": {
                    "validate": {
                        "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                        "oneOfNodeTypes": [
                            "TSEntityName"
                        ]
                    },
                    "optional": true,
                    "default": null
                },
                "typeParameters": {
                    "validate": {
                        "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                        "oneOfNodeTypes": [
                            "TSTypeParameterInstantiation"
                        ]
                    },
                    "optional": true,
                    "default": null
                }
            },
            "builder": [
                "argument",
                "qualifier",
                "typeParameters"
            ],
            "_cate": "ts",
            "_type": "TSImportType",
            "validate": {},
            "inherits": "",
            "deprecatedAlias": "",
            "attribs": []
        }
    ]

list

BENCH# nv_esdef_byvisit -l
[
  'alternate',      'argument',        'arguments',
  'attributes',     'block',           'body',
  'bound',          'callProperties',  'callee',
  'cases',          'checkType',       'children',
  'closingElement', 'closingFragment', 'consequent',
  'constraint',     'declaration',     'declarations',
  'decorators',     'default',         'directives',
  'discriminant',   'elementType',     'elementTypes',
  'elements',       'exported',        'exprName',
  'expression',     'expressions',     'extends',
  'extendsType',    'falseType',       'finalizer',
  'handler',        'id',              'implements',
  'impltype',       'imported',        'indexType',
  'indexers',       'init',            'initializer',
  'internalSlots',  'key',             'label',
  'left',           'literal',         'local',
  'members',        'meta',            'method',
  'mixins',         'moduleReference', 'name',
  'nameType',       'namespace',       'object',
  'objectType',     'openingElement',  'openingFragment',
  'optional',       'param',           'parameter',
  'parameterName',  'parameters',      'params',
  'program',        'properties',      'property',
  'qualification',  'qualifier',       'quasi',
  'quasis',         'rest',            'returnType',
  'right',          'source',          'specifiers',
  'static',         'superClass',      'superTypeParameters',
  'supertype',      'tag',             'test',
  'trueType',       'typeAnnotation',  'typeArguments',
  'typeName',       'typeParameter',   'typeParameters',
  'types',          'update',          'value',
  'variance'
]
BENCH#

byfield

list

# nv_esdef_byfield -l
[
  "abstract",
  "access",
  "accessibility",
  "alternate",
  "argument",
  "arguments",
  "assertions",
  "asserts",
  "async",
  "attributes",
  "await",
  "block",
  "body",
  "bound",
  "callProperties",
  "callee",
  "cases",
  "checkType",
  "children",
  "closingElement",
  "closingFragment",
  "comments",
  "computed",
  "consequent",
  "const",
  "constraint",
  "declaration",
  "declarations",
  "declare",
  "decorators",
  "default",
  "definite",
  "delegate",
  "directives",
  "discriminant",
  "elementType",
  "elementTypes",
  "elements",
  "exact",
  "expectedNode",
  "explicitType",
  "exportKind",
  "exported",
  "exprName",
  "expression",
  "expressions",
  "extends",
  "extendsType",
  "falseType",
  "finalizer",
  "flags",
  "generator",
  "global",
  "handler",
  "hasUnknownMembers",
  "id",
  "implements",
  "impltype",
  "importKind",
  "imported",
  "indexType",
  "indexers",
  "inexact",
  "init",
  "initializer",
  "internalSlots",
  "interpreter",
  "isExport",
  "key",
  "kind",
  "label",
  "left",
  "literal",
  "local",
  "members",
  "meta",
  "method",
  "mixins",
  "moduleReference",
  "name",
  "nameType",
  "namespace",
  "object",
  "objectType",
  "openingElement",
  "openingFragment",
  "operator",
  "optional",
  "override",
  "param",
  "parameter",
  "parameterName",
  "parameters",
  "params",
  "pattern",
  "predicate",
  "prefix",
  "program",
  "properties",
  "property",
  "proto",
  "qualification",
  "qualifier",
  "quasi",
  "quasis",
  "readonly",
  "rest",
  "returnType",
  "right",
  "selfClosing",
  "shorthand",
  "source",
  "sourceFile",
  "sourceType",
  "specifiers",
  "static",
  "superClass",
  "superTypeParameters",
  "supertype",
  "tag",
  "tail",
  "test",
  "this",
  "tokens",
  "trueType",
  "typeAnnotation",
  "typeArguments",
  "typeName",
  "typeParameter",
  "typeParameters",
  "types",
  "update",
  "value",
  "variance"
]

nv-cli-esdef# nv_esdef_byfield -F quali
[
  {
    _type: 'TSImportType',
    fields: {
      argument: [Object],
      qualifier: [Object],
      typeParameters: [Object]
    }
  },
  {
    _type: 'QualifiedTypeIdentifier',
    fields: { id: [Object], qualification: [Object] }
  }
]
nv-cli-esdef# nv_esdef_byfield -F quali -d
[
    {
        "aliases": [
            "TSType"
        ],
        "visitor": [
            "argument",
            "qualifier",
            "typeParameters"
        ],
        "fields": {
            "argument": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "StringLiteral"
                    ]
                },
                "default": null
            },
            "qualifier": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "TSEntityName"
                    ]
                },
                "optional": true,
                "default": null
            },
            "typeParameters": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "TSTypeParameterInstantiation"
                    ]
                },
                "optional": true,
                "default": null
            }
        },
        "builder": [
            "argument",
            "qualifier",
            "typeParameters"
        ],
        "_cate": "ts",
        "_type": "TSImportType",
        "validate": {},
        "inherits": "",
        "deprecatedAlias": "",
        "attribs": []
    },
    {
        "visitor": [
            "id",
            "qualification"
        ],
        "aliases": [
            "Flow"
        ],
        "fields": {
            "id": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "Identifier"
                    ]
                },
                "default": null
            },
            "qualification": {
                "validate": {
                    "code": "function validate(node, key, val) {\n    for (const type of types) {\n      if ((0, _is.default)(type, val)) {\n        (0, _validate.validateChild)(node, key, val);\n        return;\n      }\n    }\n\n    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`);\n  }",
                    "oneOfNodeTypes": [
                        "Identifier",
                        "QualifiedTypeIdentifier"
                    ]
                },
                "default": null
            }
        },
        "builder": [
            "id",
            "qualification"
        ],
        "_cate": "flow",
        "_type": "QualifiedTypeIdentifier",
        "validate": {},
        "inherits": "",
        "deprecatedAlias": "",
        "attribs": []
    }
]
nv-cli-esdef#

byalias

list

nv-cli-esdef# nv_esdef_byalias -h
Usage: nv_esdef_byalias [options]
Options:
    -l, --list                list all aliases of esnode
    -A, --aliases             alias names, @and means must includes, @or means or,default @or
    -c, --core                search in core category
    -t, --ts                  search in typescript category
    -j, --jsx                 search in JSX category
    -f, --flow                search in FLOW category
    -m, --misc                search in misc category
    -e, --experimental        search in experimental category
    -a, --all                 search in all categories
    -o, --output              output js file,default stdout
    -h, --help                usage
    -d, --detail              show full info

nv-cli-esdef#

nv-cli-esdef# nv_esdef_byalias -l
[
  'Binary',            'Block',               'BlockParent',
  'Class',             'CompletionStatement', 'Conditional',
  'Declaration',       'EnumBody',            'EnumMember',
  'ExportDeclaration', 'Expression',          'ExpressionWrapper',
  'Flow',              'FlowBaseAnnotation',  'FlowDeclaration',
  'FlowPredicate',     'FlowType',            'For',
  'ForXStatement',     'Function',            'FunctionParent',
  'Immutable',         'JSX',                 'LVal',
  'Literal',           'Loop',                'Method',
  'ModuleDeclaration', 'ModuleSpecifier',     'ObjectMember',
  'Pattern',           'PatternLike',         'Private',
  'Property',          'Pureish',             'Scopable',
  'Statement',         'TSBaseType',          'TSEntityName',
  'TSType',            'TSTypeElement',       'Terminatorless',
  'UnaryLike',         'UserWhitespacable',   'While'
]

nv-cli-esdef# nv_esdef_byalias -A Whi
[
  {
    _type: 'DoWhileStatement',
    aliases: [ 'Statement', 'BlockParent', 'Loop', 'While', 'Scopable' ]
  },
  {
    _type: 'ObjectMethod',
    aliases: [
      'UserWhitespacable',
      'Function',
      'Scopable',
      'BlockParent',
      'FunctionParent',
      'Method',
      'ObjectMember'
    ]
  },
  {
    _type: 'ObjectProperty',
    aliases: [ 'UserWhitespacable', 'Property', 'ObjectMember' ]
  },
  {
    _type: 'WhileStatement',
    aliases: [ 'Statement', 'BlockParent', 'Loop', 'While', 'Scopable' ]
  },
  {
    _type: 'ObjectTypeInternalSlot',
    aliases: [ 'Flow', 'UserWhitespacable' ]
  },
  {
    _type: 'ObjectTypeCallProperty',
    aliases: [ 'Flow', 'UserWhitespacable' ]
  },
  {
    _type: 'ObjectTypeIndexer',
    aliases: [ 'Flow', 'UserWhitespacable' ]
  },
  {
    _type: 'ObjectTypeProperty',
    aliases: [ 'Flow', 'UserWhitespacable' ]
  },
  {
    _type: 'ObjectTypeSpreadProperty',
    aliases: [ 'Flow', 'UserWhitespacable' ]
  }
]
nv-cli-esdef#

bybuild

usage

nv-cli-esdef# nv_esdef_bybuild -h
Usage: nv_esdef_bybuild [options]
Options:
    -l, --list                list all builders of esnode
    -B, --builders            builder names, @and means must includes, @or means or,default @or
    -c, --core                search in core category
    -t, --ts                  search in typescript category
    -j, --jsx                 search in JSX category
    -f, --flow                search in FLOW category
    -m, --misc                search in misc category
    -e, --experimental        search in experimental category
    -a, --all                 search in all categories
    -o, --output              output js file,default stdout
    -h, --help                usage
    -d, --detail              show full info

list

nv-cli-esdef# nv_esdef_bybuild -l
[
  "alternate",
  "argument",
  "arguments",
  "asserts",
  "async",
  "attributes",
  "await",
  "block",
  "body",
  "bound",
  "callProperties",
  "callee",
  "cases",
  "checkType",
  "children",
  "closingElement",
  "closingFragment",
  "comments",
  "computed",
  "consequent",
  "constraint",
  "declaration",
  "declarations",
  "decorators",
  "default",
  "delegate",
  "directives",
  "discriminant",
  "elementType",
  "elementTypes",
  "elements",
  "exact",
  "expectedNode",
  "exported",
  "exprName",
  "expression",
  "expressions",
  "extends",
  "extendsType",
  "falseType",
  "finalizer",
  "flags",
  "generator",
  "handler",
  "id",
  "impltype",
  "imported",
  "indexType",
  "indexers",
  "init",
  "initializer",
  "internalSlots",
  "interpreter",
  "key",
  "kind",
  "label",
  "left",
  "literal",
  "local",
  "members",
  "meta",
  "method",
  "moduleReference",
  "name",
  "nameType",
  "namespace",
  "object",
  "objectType",
  "openingElement",
  "openingFragment",
  "operator",
  "optional",
  "param",
  "parameter",
  "parameterName",
  "parameters",
  "params",
  "pattern",
  "prefix",
  "program",
  "properties",
  "property",
  "qualification",
  "qualifier",
  "quasi",
  "quasis",
  "rest",
  "returnType",
  "right",
  "selfClosing",
  "shorthand",
  "source",
  "sourceType",
  "specifiers",
  "static",
  "superClass",
  "supertype",
  "tag",
  "tail",
  "test",
  "tokens",
  "trueType",
  "typeAnnotation",
  "typeName",
  "typeParameter",
  "typeParameters",
  "types",
  "update",
  "value",
  "variance"
]

nv-cli-esdef# nv_esdef_bybuild -B tokens
[ { _type: 'File', builder: [ 'program', 'comments', 'tokens' ] } ]
nv-cli-esdef#
nv-cli-esdef# nv_esdef_bybuild -B operator
[
  {
    _type: 'AssignmentExpression',
    builder: [ 'operator', 'left', 'right' ]
  },
  {
    _type: 'BinaryExpression',
    builder: [ 'operator', 'left', 'right' ]
  },
  {
    _type: 'LogicalExpression',
    builder: [ 'operator', 'left', 'right' ]
  },
  {
    _type: 'UnaryExpression',
    builder: [ 'operator', 'argument', 'prefix' ]
  },
  {
    _type: 'UpdateExpression',
    builder: [ 'operator', 'argument', 'prefix' ]
  }
]
nv-cli-esdef#

byattr

  • which belongs to fields but NOT in visitors

nv-cli-esdef# nv_esdef_byttr -h
Usage: nv_esdef_byattr [options]
Options:
    -l, --list                list all attribs of esnode
    -A, --attribs             attrib names(which belongs to field-keys, but not of attribs), @and means must includes, @or means or,default @or
    -c, --core                search in core category
    -t, --ts                  search in typescript category
    -j, --jsx                 search in JSX category
    -f, --flow                search in FLOW category
    -m, --misc                search in misc category
    -e, --experimental        search in experimental category
    -a, --all                 search in all categories
    -o, --output              output js file,default stdout
    -h, --help                usage
    -d, --detail              show full info

nv-cli-esdef#
nv-cli-esdef#
nv-cli-esdef# nv_esdef_byttr -l
[
  'abstract',    'access',         'accessibility',
  'assertions',  'asserts',        'async',
  'await',       'comments',       'computed',
  'const',       'declare',        'decorators',
  'default',     'definite',       'delegate',
  'exact',       'expectedNode',   'explicitType',
  'exportKind',  'expression',     'flags',
  'generator',   'global',         'hasUnknownMembers',
  'importKind',  'inexact',        'init',
  'initializer', 'interpreter',    'isExport',
  'kind',        'method',         'name',
  'operator',    'optional',       'override',
  'pattern',     'predicate',      'prefix',
  'proto',       'readonly',       'selfClosing',
  'shorthand',   'sourceFile',     'sourceType',
  'static',      'tail',           'this',
  'tokens',      'typeAnnotation', 'typeParameters',
  'value'
]
nv-cli-esdef# nv_esdef_byttr -A readonly
[
  {
    _type: 'TSParameterProperty',
    attribs: [ 'accessibility', 'readonly' ]
  },
  {
    _type: 'TSPropertySignature',
    attribs: [ 'computed', 'optional', 'readonly' ]
  },
  { _type: 'TSIndexSignature', attribs: [ 'readonly', 'static' ] },
  { _type: 'TSMappedType', attribs: [ 'readonly', 'optional' ] },
  {
    _type: 'ClassProperty',
    attribs: [ 'definite', 'readonly', 'declare', 'computed', 'static' ]
  }
]

byinherit

  • normally useless

nv-cli-esdef# nv_esdef_byinherit -h
Usage: nv_esdef_byinherit [options]
Options:
    -l, --list                list all inherits of esnode
    -I, --inherits            inherit names, @and means must includes, @or means or,default @or
    -c, --core                search in core category
    -t, --ts                  search in typescript category
    -j, --jsx                 search in JSX category
    -f, --flow                search in FLOW category
    -m, --misc                search in misc category
    -e, --experimental        search in experimental category
    -a, --all                 search in all categories
    -o, --output              output js file,default stdout
    -h, --help                usage
    -d, --detail              show full info

nv-cli-esdef# nv_esdef_byinherit -l
[ '', 'CallExpression', 'ClassExpression', 'FunctionDeclaration' ]



nv-cli-esdef# nv_esdef_byinherit -I ll
[ { _type: 'NewExpression', inherits: 'CallExpression' } ]
nv-cli-esdef#

bydecrep

  • useless

nv-cli-esdef# nv_esdef_bydecrep -D eral
[
  { _type: 'NumericLiteral', deprecatedAlias: 'NumberLiteral' },
  { _type: 'RegExpLiteral', deprecatedAlias: 'RegexLiteral' }
]
nv-cli-esdef# nv_esdef_bydecrep -D perty
[
  { _type: 'RestElement', deprecatedAlias: 'RestProperty' },
  { _type: 'SpreadElement', deprecatedAlias: 'SpreadProperty' }
]
nv-cli-esdef#

LICENSE

  • ISC

EACCES

npm install nv-cli-esdef -g --unsafe-perm=true --allow-root