
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
$ npm i --save xtorage
This is a tiny, yet powerful framework-agnostic wrapper for the web storage.
You shouldn't keep parsing strings/arrays/numbers/objects left and right to save/retrieve stuff into and from the storage.
Just call save(), saveInFirstPosition(), remove(), removeLast() and so on.
You can use it pretty much everywhere that is javascript in the client; So, it'll work for: angular, aurelia, vue, electron, etc.
new Xtorage(storage: 'localStorage' | 'sessionStorage', unique: boolean)
let _x1 = new Xtorage('localStorage');
_x1.save('k', 1); // saves 1, with the key 'k' in the localStorage
let _x2 = new Xtorage('sessionStorage');
_x2.save('k', 2); // saves 1, with the key 'k' in the sessionStorage
let _x3 = new Xtorage();
_x3.save('k', 3); // saves 1, with the key 'k' in the localStorage - which is the default
let _x4 = new Xtorage(undefined, true);
_x4.saveInFirstPosition('k', 1); // array length is 1
_x4.saveInFirstPosition('k', 1); // array length is still 1, unique is set to true
let _x5 = new Xtorage(undefined, false);
_x5.saveInFirstPosition('k', 1); // array length is 1
_x5.saveInFirstPosition('k', 1); // array length is 2, unique is set to false
let _x6 = new Xtorage();
_x6.saveInFirstPosition('k', 1); // array length is 1
_x6.saveInFirstPosition('k', 1); // array length is 2, unique, by default, is false
save(key:string, info:any):void
let _x = new Xtorage();
_x.save('k', {a: 1});
console.log(_x.get('k')); // {a: 1}
saveInFirstPosition(key:string, info:any):void
let _x = new Xtorage();
_x.saveInFirstPosition('k', {a: 1});
console.log(_x.get('k')); // [{a: 1}]
_x.saveInFirstPosition('k', {b: 2});
console.log(_x.get('k')); // [{b: 2}, {a: 1}]
saveInLastPosition(key:string, info:any):void
let _x = new Xtorage();
_x.saveInLastPosition('k', {a: 1});
console.log(_x.get('k')); // [{a: 1}]
_x.saveInLastPosition('k', {b: 2});
console.log(_x.get('k')); // [{a: 1}, {b: 2}]
get(key:string):any
let _x = new Xtorage();
_x.save('k', [1, true, {a: 1}, [{c: 'abc'}]);
console.log(_x.get('k')); // [1, true, {a: 1}, [{c: 'abc'}]
getFirst(key:string):void
let _x = new Xtorage();
_x.saveInLastPosition('k', {a: 1});
console.log(_x.getFirst('k')); // {a: 1}
_x.saveInLastPosition('k', {b: 2});
console.log(_x.get('k')); // {a: 1}
getLast(key:string):void
let _x = new Xtorage();
_x.saveInLastPosition('k', {a: 1});
console.log(_x.getFirst('k')); // {a: 1}
_x.saveInLastPosition('k', {b: 2});
console.log(_x.get('k')); // {b: 2}
remove(key:string):void
let _x = new Xtorage();
_x.save('k', {a: 1});
console.log(_x.getFirst('k')); // {a: 1}
_x.remove('k');
console.log(_x.get('k')); // undefined
removeAll():void
let _x = new Xtorage();
_x.save('k', {a: 1});
_x.save('y', [{somethingElse: true}]);
console.log(_x.get('k')); // {a: 1}
console.log(_x.get('y')); // [{somethingElse: true}]
_x.removeAll();
console.log(_x.get('k')); // undefined
console.log(_x.get('y')); // undefined
removeFirst(key:string):void
let _x = new Xtorage();
_x.saveInFirstPosition('k', {a: 1});
_x.saveInLastPosition('k', {b: 2});
console.log(_x.get('k')); // [{a: 1}, {b: 2}]
_x.removeFirst('k');
console.log(_x.get('k')); // [{b: 2}]
removeLast(key:string):void
let _x = new Xtorage();
_x.saveInFirstPosition('k', {a: 1});
_x.saveInLastPosition('k', {b: 2});
console.log(_x.get('k')); // [{a: 1}, {b: 2}]
_x.removeLast('k');
console.log(_x.get('k')); // [{a: 1}]
FAQs
Web Storage made simple and more powerful.
The npm package xtorage receives a total of 5 weekly downloads. As such, xtorage popularity was classified as not popular.
We found that xtorage 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.