ORBIT-ENCODER is an utility library for Data Compression and Encoding. It can take whatever object you give him as argument and returns a compressed encoded string. It provides a decoding method too. It uses a modified version of LZString for UTF16 Compre
npm install orbit-encoderString, Arrays, JSON, Anything...] to a Compressed UTF16 String. You can also Decode that string back using The exposed Decode method.
Instanciation because all the methods are Static.
bash
installation with npm
npm install array-querier
or you may prefer
npm i --save array-querier
installation with yarn
yarn add array-querier
`
This SCRIPT relies on NOTHING SO YOU DON'T NEED ADDITIONNAL PACKAGES.
___
🤔 HOW IT WORKS ? 🤔
You only need to Import the OrbitEncoder Class from the Package and start using it !
$3
If you have a User object as follows ->
`json
const User = {
"name": "Orbit",
"age": 21,
"planet": {
"id": 4,
"codename" : "Shadow-Coders",
"galaxyName" : "Turner"
}
}
`
👇🏾 Let's Encode and Decode an Objects :
- ECMAScript Modules and Typescript
`typescript
import {OrbitEncoder} from 'orbit-encoder/lib/OrbitEncoder';
// Then Encode whatever you want
const encodedData = OrbitEncoder.encode(User);
console.log(encodedData);
/**
* 👇🏾 Output: 👇🏾
*
* ᓢ㰴䅼ী甤〦恩Ìߐዠᔣᣡ䂦TɈ〦⁐䰠ᘡ㐢〪僠㲪␠祶fĂ⓸Ǹ͚ࣣគⵉM䀼䀻什䁕㒘攈ᢸ吰ৣ乩厖亰æၩ䩴¸椮ࠢ昤怪挑䃒塐恬睂䤣&㉀PƘ䀠
*
* /
`
`typescript
...
const decodedData = OrbitEncoder.decode(encodedData);
console.log(decodedData);
/**
* 👇🏾 Output: 👇🏾
*
* {
name: 'Orbit',
age: 21,
planet: { id: 4, codename: 'Shadow-Coders', galaxyName: 'Turner' }
}
*
* /
`
🛑 ANGULAR & FRONTEND USERS ☢️
> Note: If you are using this in your frontend application you'll need to add the folowing line in your index.html 👇🏾:.
`html
`
> FIX COMING: We are working on Future updates that will try to fix this error [Uncaught ReferenceError: global is not defined].
- CommonJs and Vailla JS
`javascript
const orbit = require("orbit-encoder").OrbitEncoder;
const data = orbit.encode('Bodio Bodio Yei !!');
console.log(data); // 🚀 Output :ᅢ汇njࢀ甠瀼橪梸恕<Ұᡠ⢠ୀ
console.log(orbit.decode(data));
`
> ⚠ Note: ⚠ * You can do that : const orbit = require("orbit-encoder"); And use orbit.OrbitEncoder.encode() everywhere but for a more clean approach I did the code above.
$3
Sometimes you may want to pass some heavy and complex data or datastructure in a URL, so you can use the encodeWithURIsafe method. It produces ASCII strings representing the original string encoded in Base64 with a few tweaks to make these URI safe. Hence, you can send them to the server without thinking about URL encoding them.
This saves bandwidth and CPU.
- ECMAScript Modules and Typescript
`typescript
import {OrbitEncoder} from 'orbit-encoder/lib/OrbitEncoder';
const data = [['2021-03-02','2021-06-02'],['2022-05-05','2021-07-01']];
// Then Encode whatever you want
const encodedData = OrbitEncoder.encodeWithURIsafe(data);
console.log(dataForURI);
/**
* 👇🏾 Output: 👇🏾
*
* OoRgzglgsgVgggTygZQAwHcoI1CBJMPGPTGAUQBcoARATSurwgA1kAPAIyJNjwYFUBEADIBhPEkZthAFTgBmWXDZ4ANiAAmQA
*
* /
`
`typescript
...
const decodedData = OrbitEncoder.decodeURIsafe(encodedData);
console.log(decodedData);
/**
* 👇🏾 Output: 👇🏾
*
* [ [ '2021-03-02', '2021-06-02' ], [ '2022-05-05', '2021-07-01' ] ]
*
* /
`
- CommonJs and Vanilla JS
`javascript
const orbit = require("orbit-encoder").OrbitEncoder;
const dataForURI = orbit.encodeWithURIsafe([['2021-03-02','2021-06-02'],['2022-05-05','2021-07-01']]);
console.log(dataForURI) // 🚀 Output : OoRgzglgsgVgggTygZQAwHcoI1CBJMPGPTGAUQBcoARATSurwgA1kAPAIyJNjwYFUBEADIBhPEkZthAFTgBmWXDZ4ANiAAmQA
console.log(orbit.decodeURIsafe(dataForURI))
``