1.0.1 • Published 4 years ago

js-tables v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

JSTables

Serverless data tables with JSON.

!!!! Please Note: This library is not meant to be used in production. My personal intent was for use in a hackathon (too lazy to setup Mongo). If you do use it in production (WTF), please consider the risks. !!!!

What is JSTables?

JSTables is a super-tiny library that creates a table-like data structure using JS objects. You can use it for temporary and permanent storage. For permanent storage, JSTables allows you to 'convert' a table into an encoded string to write to file, and then convert back.

Include JSTables:

Install the module:

npm i js-tables

Then, you can use it like this:

const Table = require('js-tables');

Or, if you don't want CommonJS (for whatever reason), you can use the following in HTML (you can't really use a backend though):

<script src="https://cdn.jsdelivr.net/gh/raghav-misra/json-tables/lib/json-tables.nomod.js"></script>

Regardless of which method you use, you should be able to access the Table class.

Creating/Modifying Tables:

Initialize a table:

const users = Table.create(
                     ["email",             "phone"], {
    "James Jeffrey": ["jj@james.io",       "+1 123-456-7890"],
    "Ramesh Mondo":  ["rm8976@g00gle.com", "+1 001-002-0012"]
});

Now you can visualizes users to look like this:

emailphone
James Jeffreyjj@james.io+1 123-456-7890
Ramesh Mondorm8976@g00gle.com+1 001-002-0012

Let's add a row:

users.append(
    "Joe Mama", ["hi@joe.bro", "888-777-1010"]
);

Now your table will look like this:

emailphone
James Jeffreyjj@james.io+1 123-456-7890
Ramesh Mondorm8976@g00gle.com+1 001-002-0012
Joe Mamahi@joe.bro888-777-1010

Ramesh deleted his account.

Remove his entry (row).

users.delete("Ramesh Mondo");

New data table:

emailphone
James Jeffreyjj@james.io+1 123-456-7890
Joe Mamahi@joe.bro888-777-1010

Joe forgot his phone #, let's help him out!

Get a specific field in the table.

const phoneNumber = users.read("Joe Mama", "phone");
console.log("Joe! We found your phone number: " + phoneNumber);

What if James' email changed? Let's make sure it's up-to-date.

Update a specific field in the table.

users.update(
    "James Jeffrey", "email", "email@lordjoe.cc"
);

Table looks like this:

emailphone
James Jeffreyemail@lordjoe.cc+1 123-456-7890
Ramesh Mondorm8976@g00gle.com+1 001-002-0012
Joe Mamahi@joe.bro888-777-1010

Permanent Data Storage:

How it works:

Basically, the Table.prototype.encode function allows you to convert a Table instance to an encoded string. Then, you can write this encoded string to file, or do whatever you want with it. Same goes for the opposite direction. You can read your encoded data from file, and use Table.decode to initialize a Table with it.

Encoding Table => string:

An example (never use fs.writeFileSync):

const fs = require('fs');

const writeData = users.encode();

fs.writeFileSync("./db", writeData);

Decoding string => Table:

Another example (never use fs.writeFileSync):

const readData = fs.readFileSync("./db", "utf8");

const newUsers = Table.decode(readData); // The new table

Good Luck!

You Finished the README! This is MIT licensed by the way.

1.0.1

4 years ago

1.0.0

4 years ago