Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
string-alter
Advanced tools
Readme
Alters a string by replacing multiple range fragments in one fast pass. Works in node and browsers.
var StringAlter = require("string-alter");
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 = new StringAlter(string);
alter
.replace(0, 3, "var")//'let'
.insert(8, "function")//'function ' + "(a, b"
.remove(13, 22)//', c = 998'
.remove(23, 26)//' =>'
.wrap(26, 35, "{", "}", {extend: true})
.insert(26,
"var " + alter.get(15, 16) + " = arguments[2];" //var c = arguments[2];
+ "if(" + alter.get(15, 16) + " === void 0)" //if(c === void 0)
+ alter.get(15, 16) + " = " + alter.get(19, 22) + ";"//c = 998;
)
.insert(26, "return ")//'return ' + "a + b + c;"
.insert(98, "function")//'function ' + "(a)"
.remove(101, 103)//'=>'
.wrap(103, 111, "{", "}", {extend: true})
.insert(103, "return ")//'return ' + "a*22.032"
;
var result = alter.apply();
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
var alter = new StringAlter(source: string, options: Object?);
// options is optional. See 'StringAlter options'
alter.replace(from: number, to: number, str: string): StringAlter
Replace substring from between "from" and "to" positions to given one "str"
alter.insert(pos: number, str: string): StringAlter
Insert substring to "pos" position
alter.wrap(from: number, to: number, begin: string, end: string): StringAlter
Insert "begin" string to "from" position and "end" string to "to" position
alter.remove(from: number, to: number): StringAlter
Remove substring
alter.get(from: number, to: number): Object
Get substring from original string wrapped in special object with toString function
alter.apply(): string
Apply changes. Return result string
{
policy: {}// see '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') - second remove
call for already removed fragment (with the same method parameter values)eraseInErase
(default: 'allow') - remove
or replace
inside another remove
or replace
Install using npm
npm install string-alter
var StringAlter = require("string-alter");
Clone the repo and include it in a script tag
git clone https://github.com/termi/StringAlter.git
<script src="StringAlter/dist/StringAlter.js"></script>
MIT
FAQs
String alter
The npm package string-alter receives a total of 149 weekly downloads. As such, string-alter popularity was classified as not popular.
We found that string-alter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.