StringAlter.js
Alters a string by replacing multiple range fragments in one fast pass. Works in node and browsers.
Usage
var StringAlter = ; var string = 'let x = (a, b, c = 998) =>' + 'a + b + c;console.log(x(1, 1) === 1000)' + '\n' + 'console.log(((function(){return (a)=>a*22.032})())("321") === "321"*22.032)' ; var alter = string; alter //'let' //'function ' + "(a, b" //', c = 998' //' =>' //'return ' + "a + b + c;" //'function ' + "(a)" //'=>' //'return ' + "a*22.032" ; var result = alter; result === 'var x = function(a, b)' + '{var c = arguments[2];if(c === void 0)c = 998;return a + b + c};console.log(x(1, 1) === 1000)' + '\n' + 'console.log(((function(){return function(a){return a*22.032}})())("321") === "321"*22.032)' ;
The fragments does not need to be sorted but must not overlap. More examples in test
API
var alter = source: string options: Object?);// options is optional. See 'StringAlter options'
alter: StringAlter
Replace substring from between "from" and "to" positions to given one "str"
alter: StringAlter
Insert substring to "pos" position
alter: StringAlter
Insert "begin" string to "from" position and "end" string to "to" position
alter: StringAlter
Remove substring
alter: Object
Get substring from original string wrapped in special object with toString function
alter: string
Apply changes. Return result string
StringAlter options
policy: {}// see 'Changes policy'
Changes policy
"ruleName": resolve//resolve should be "allow" or "exclude", or any other value which will be interpreted as "error"
This is a set of rules that can allow
or exclude
some unobvious changes
fromMoreThanTo
(default: 'error') - when changes start position is is larger than end positionunUniqueRemove
(default: 'error') - secondremove
call for already removed fragment (with the same method parameter values)eraseInErase
(default: 'allow') -remove
orreplace
inside anotherremove
orreplace
Installation
Node
Install using npm
npm install string-alter
var StringAlter = ;
Browser
Clone the repo and include it in a script tag
git clone https://github.com/termi/StringAlter.git
LICENSE
MIT