From bf8f22cb00f16b5243980e5c78ee7a0f5f05a481 Mon Sep 17 00:00:00 2001 From: Ben Ashton Date: Tue, 2 Mar 2021 18:50:30 -0800 Subject: [PATCH] Added README --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..90ab477 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# PawSQLite WebSQL Adapter + +A WebSQL adapter for PawSQLite which offers many improvements over working with WebSQL natively. Most importantly, transactions do not commit automatically. This allows you to perform asynchronous operations during transactions and still guarantee data integrity. + +## Installation + +You can install using npm: + +```bash +npm install -s git+https://git.n0m.org/n0m/PawSQLite.git +npm install -s git+https://git.n0m.org/n0m/PawSQLite-WebSQL-Adapter.git +``` + +## Usage + +```javascript +const PawSQLite = require("pawsqlite"); +const PawSQLiteWebSQLAdapter = require("pawsqlite-websql-adapter"); + +PawSQLite.registerAdapter(PawSQLiteWebSQLAdapter) + +const db = await PawSQLite.open("test", { + adapter: 'PawSQLiteWebSQLAdapter' +}); + +await db.sql(` + CREATE TABLE contacts ( + contact_id INTEGER PRIMARY KEY, + first_name TEXT NOT NULL, + last_name TEXT NOT NULL + ); +`); + +const transaction = db.transaction(); + +console.log(await db.sql("SELECT * FROM contacts")); + +await transaction.sql( + "INSERT INTO contacts (first_name, last_name) VALUES (?, ?)", + "John", + "Lennon" +); + +await transaction.commit(); +``` + +## Contributing +Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. + +## License +[MIT](https://choosealicense.com/licenses/mit/) \ No newline at end of file