0.0.4 • Published 2 years ago

nv-cli-rplc-strlit v0.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-cli-rplc-strlit

  • cli-tool
  • replace strlit name in js/ts/json

install

  • npm install nv-cli-rplc-strlit -g

usage

Usage: nv_rplc_strlit [options] 
Options:
    -i, --input                       input string ,default stdin
    -o, --output                      output string,default stdout
    -s, --string                      strlit  to be replaced,exact match
    -r, --regex                       strlit regexp pattern
    -t, --parent_type                 strlit parent ptype regexp pattern
    -k, --key                         strlit KNAME regexp pattern
    -w, --with                        replace the matched strlit name with,must be valid 
    -h, --help                        usage
    -l, --list_possilbe_parent        list possible parent/KNAME pairs

example

list possible path parent-ast-type,kname

nv_rplc_strlit -l 
[
  [ 'AssignmentExpression', 'right' ],
  [ 'BinaryExpression', 'left' ],
  [ 'BinaryExpression', 'right' ],
  [ 'CallExpression', 'callee' ],
  [ 'ConditionalExpression', 'test' ],
  [ 'ConditionalExpression', 'consequent' ],
  [ 'ConditionalExpression', 'alternate' ],
  [ 'DoWhileStatement', 'test' ],
  [ 'ExpressionStatement', 'expression' ],
  [ 'ForInStatement', 'right' ],
  [ 'ForStatement', 'init' ],
  [ 'ForStatement', 'test' ],
  [ 'ForStatement', 'update' ],
  [ 'IfStatement', 'test' ],
  [ 'LogicalExpression', 'left' ],
  [ 'LogicalExpression', 'right' ],
  [ 'MemberExpression', 'object' ],
  [ 'MemberExpression', 'property' ],
  [ 'NewExpression', 'callee' ],
  [ 'ObjectMethod', 'key' ],
  [ 'ObjectMethod', 'key' ],
  [ 'ObjectProperty', 'key' ],
  [ 'ObjectProperty', 'key' ],
  [ 'ObjectProperty', 'value' ],
  [ 'ReturnStatement', 'argument' ],
  [ 'ParenthesizedExpression', 'expression' ],
  [ 'SwitchCase', 'test' ],
  [ 'SwitchStatement', 'discriminant' ],
  [ 'ThrowStatement', 'argument' ],
  [ 'UnaryExpression', 'argument' ],
  [ 'UpdateExpression', 'argument' ],
  [ 'VariableDeclarator', 'init' ],
  [ 'WhileStatement', 'test' ],
  [ 'WithStatement', 'object' ],
  [ 'AssignmentPattern', 'right' ],
  [ 'ArrowFunctionExpression', 'body' ],
  [ 'ClassExpression', 'superClass' ],
  [ 'ClassDeclaration', 'superClass' ],
  [ 'ExportAllDeclaration', 'source' ],
  [ 'ExportDefaultDeclaration', 'declaration' ],
  [ 'ExportNamedDeclaration', 'source' ],
  [ 'ExportSpecifier', 'exported' ],
  [ 'ForOfStatement', 'right' ],
  [ 'ImportDeclaration', 'source' ],
  [ 'ImportSpecifier', 'imported' ],
  [ 'ClassMethod', 'key' ],
  [ 'ClassMethod', 'key' ],
  [ 'SpreadElement', 'argument' ],
  [ 'TaggedTemplateExpression', 'tag' ],
  [ 'YieldExpression', 'argument' ],
  [ 'AwaitExpression', 'argument' ],
  [ 'OptionalMemberExpression', 'object' ],
  [ 'OptionalMemberExpression', 'property' ],
  [ 'OptionalCallExpression', 'callee' ],
  [ 'TSPropertySignature', 'key' ],
  [ 'TSPropertySignature', 'initializer' ],
  [ 'TSMethodSignature', 'key' ],
  [ 'TSLiteralType', 'literal' ],
  [ 'TSAsExpression', 'expression' ],
  [ 'TSTypeAssertion', 'expression' ],
  [ 'TSEnumDeclaration', 'initializer' ],
  [ 'TSEnumMember', 'id' ],
  [ 'TSEnumMember', 'initializer' ],
  [ 'TSModuleDeclaration', 'id' ],
  [ 'TSImportType', 'argument' ],
  [ 'TSExternalModuleReference', 'expression' ],
  [ 'TSNonNullExpression', 'expression' ],
  [ 'TSExportAssignment', 'expression' ],
  [ 'JSXAttribute', 'value' ],
  [ 'JSXExpressionContainer', 'expression' ],
  [ 'JSXSpreadChild', 'expression' ],
  [ 'JSXSpreadAttribute', 'argument' ],
  [ 'DeclareModule', 'id' ],
  [ 'DeclareExportDeclaration', 'source' ],
  [ 'DeclareExportAllDeclaration', 'source' ],
  [ 'ObjectTypeProperty', 'key' ],
  [ 'TypeCastExpression', 'expression' ],
  [ 'EnumStringMember', 'init' ],
  [ 'BindExpression', 'object' ],
  [ 'BindExpression', 'callee' ],
  [ 'ClassProperty', 'value' ],
  [ 'PipelineTopicExpression', 'expression' ],
  [ 'PipelineBareFunction', 'callee' ],
  [ 'ClassPrivateProperty', 'value' ],
  [ 'ImportAttribute', 'key' ],
  [ 'ImportAttribute', 'value' ],
  [ 'Decorator', 'expression' ],
  [ 'ArrayExpression', 'elements' ],
  [ 'CallExpression', 'arguments' ],
  [ 'NewExpression', 'arguments' ],
  [ 'SequenceExpression', 'expressions' ],
  [ 'TemplateLiteral', 'expressions' ],
  [ 'OptionalCallExpression', 'arguments' ],
  [ 'TupleExpression', 'elements' ]
]

# cat tst.js 

function tst() {
    let a = {s:"mnk"}
    a.s = a.s + 'ffff'              //BinaryExpression/right
    a["s"] = "ffff"                 //AssignmentExpression/right
    return(a)
}

# nv_rplc_strlit  -i tst.js -r "fff" -t Assign -w 'FFFF'

function tst() {
  let a = {
    s: "mnk"
  };
  a.s = a.s + 'ffff';
  a["s"] = "FFFF";                // only AssignmentExpression-parent witch match -t Assign  be replaced
  return a;
} 

LICENSE

  • ISC