nv-cli-rplc-strlit
v0.0.4
Published
cli tool replace string-lit in js/ts/json
Downloads
2
Readme
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