npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jsql-official

v3.3.19

Published

A persistent SQL database.

Downloads

23

Readme

jSQL Logo

jSQL (Official) - Version 3.3.19 - Now available without a prescription!

npm version Build Status Inline docs Coverage Status

jSQL is a state and data management tool as well as a robust SQL engine for both Node and the browser. For complete documentation, please see the jSQL Wiki. For plugins, live demos and other information see the official website.

jSQL Layers

Under the hood, jSQL has 3 layers...

  • At the Lowest level, jSQL automatically chooses the best method of storage to save state and interacts directly with it. This layer exposes a persistence method, jSQL.commit(), which is called to serialize and store all data currently in the jSQL database on the user's hard drive. While the app is open and loaded in the browser, this data is serialized and stored within reach in the jSQL.tables object where the library is able to perform operations on it.

  • In the middle, a set of methods are used to build jSQLQuery objects which execute CRUD commands on the jSQL database and it's tables. (See: jSQL.createTable(), jSQL.select(), jSQL.insertInto(), jSQL.dropTable(), jSQL.update(), and jSQL.deleteFrom())

  • At the highest level, jSQL is an SQL engine (hence the name: Javascript Query Language) which understands a subset of MySQL passed to the jSQL.query() method, which parses a jSQL statement and uses the above methods to create jSQLQuery objects to perform operations on the database.

jSQL is written with flexibility, ease of use, and efficiency in mind. It supports prepared statements, column typing, and can store any kind of data you need it to, including functions and instances of custom objects. It's applications include caching server-sourced data, state persistence, data management and querying and more.

Quick Start

jSQL is implemented in a single JavaScript file. You only need either the jSQL.js file or the minified jSQL.min.js file. Feel free to download them directly or use npm:

npm install jsql-official

If you're running jSQL in a browser, include it in a script tag.

<script src='jSQL.js'></script>

Or use the one hosted on the github.io site:

http://pamblam.github.io/jSQL/scripts/jSQL.min.js

If you're running jSQL in Node, require the jSQL module.

var jSQL = require("jSQL.js");

Create a table

When the database has loaded into memory, you'll want to make sure you have a table to work with. Any database operations that are to be made immediately when the app loads should be called from within the jSQL.load() callback.

jSQL.load(function(){
    var sql = "create table if not exists users (name varchar(25), age int)";
    jSQL.query(sql).execute();
});

Insert into table

At some point, you might want to put some data in that table.

jSQL.query("insert into users ('bob', 34)").execute();

Prefer prepared statements? Just replace values with question marks and pass the values to the execute method in an array.

jSQL.query("insert into users (?, ?)").execute(['bob', 34]);

Select from table

Once you've got the data in there, you're probably going to want to get it back out.

var users = jSQL.query("select * from users where name like '%ob'").execute().fetchAll("ASSOC");

Persisting changes in the browser

When you've made changes or additions to the database, call jSQL.commit() to commit your changes.

For more information and to read about other update, delete and other operations, see the jSQL Wiki.

Documentation & Examples

jSQL is fully documented in the jSQL Wiki, which even includes more simple usage examples. You may also refer to the package's tests for more complete and complex examples. There is also a live demo available on the official website.

Browser Support

Works in basically all browsers. jSQL degrades gracefully because it falls back on cookies for persistence if localStorage, IndexedDB and WebSQL are not available.

While jSQL will work in basically all browsers, these ones are preferred:

| FireFox | Android | Safari | Chrome | Samsung | Blackberry | IE | Opera | Edge | |-------------|-------------|------------|------------|-------------|----------------|--------|-----------|----------| | 2+ | 2.1+ | 3.1+ | 4+ | 4+ | 7+ | 8+ | 11.5+ | 12+ |

It's Official

In the same way Fedex is Federal.

Thanks to

:us: