GithubHelp home page GithubHelp logo

pannh / swift-database Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 12 KB

A light-weight module to interact with your local JSON database.

Home Page: https://www.npmjs.com/package/swift-database

License: MIT License

database json nosql

swift-database's Introduction

npm version Downloads

๐Ÿ—ƒ swift-database

swift-database is a module that allows you to interact easily with your local JSON file.

๐Ÿ”ฐ Getting started

  1. Install the module
 npm install swift-database
  1. Initialize the database class
const { default: JSONDatabase } = require('swift-database');

const database = new Database({
   filePath: 'path/to/file.json'
});
  1. Create your first table and load it
database.createTable('users');

const users = database.table('users');
  1. Interact with that table
users.createOne({
   fullName: 'John Doe',
   hobbies: ['programming', 'sport']
});

const userDocument = users.findOne(
   (userDocument) => userDocument.value.fullName === 'John Doe'
);

users.deleteOne(userDocument.id);

๐Ÿ“– Documentation

JSONDatabase

Represents the database.

Constructor
Parameter Type Required Default Description
options { filePath: string } โœ“ None The database options.

Example :

const database = new JSONDatabase({
   filePath: 'path/to/file.json'
});
JSONDatabase.tables

Returns an array of each table's name.

Type: string[]

JSONDatabase.table(name)

Loads a table from the database.

Parameter Type Required Default Description
name string โœ“ None The name of the table you want to load.

Returns: DatabaseTable

Example :

const users = database.table('users');
JSONDatabase.createTable(name)

Creates a new table into the database.

Parameter Type Required Default Description
name string โœ“ None The name of the table you want to create.

Returns: DatabaseTable

Example :

const users = database.createTable('users');
JSONDatabase.deleteTable(name)

Delete an existing table from the database.

Parameter Type Required Default Description
name string โœ“ None The name of the table you want to delete.

Returns: void

Example :

database.deleteTable('users');

DatabaseTable

Represents a database table.

DatabaseTable.size

Returns the amount of documents inside the table.

Type: number

DatabaseTable.all

Returns an array of every table documents.

Type: TableDocument[]

DatabaseTable.getById(documentId)

Returns the table document that matches the specified id.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to get.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

const userDocument = users.getById(DOCUMENT_ID);
DatabaseTable.findOne(predicate)

Returns the first table document that matches the predicate.

Parameter Type Required Default Description
predicate PredicateFunction โœ“ None The predicate function you want to filter the documents by.

๐Ÿ’ก PredicateFunction = (document: TableDocument, index: number, table: object[]) => boolean

Returns: TableDocument

Example :

const userDocument = users.findOne(
   (userDocument) => userDocument.value.fullName === 'John Doe'
);
DatabaseTable.findMany(predicate)

Returns every documents that match the predicate.

Parameter Type Required Default Description
predicate PredicateFunction โœ“ None The predicate function you want to filter the documents by.

๐Ÿ’ก PredicateFunction = (document: TableDocument, index: number, table: object[]) => boolean

Returns: TableDocument[]

Example :

const userDocuments = users.findMany((userDocument) =>
   userDocument.value.hobbies.includes('programming')
);
DatabaseTable.createOne(data)

Creates a new table document and returns it.

Parameter Type Required Default Description
data object โœ“ None The document's data.

Returns: TableDocument

Example :

const createdUserDocument = users.createOne({
   fullName: 'John Doe',
   hobbies: ['programming', 'sport']
});
DatabaseTable.createMany(...data)

Creates many table documents and returns them.

Parameter Type Required Default Description
data object[] โœ“ None An array of each document's data.

Returns: TableDocument[]

Example :

const createdUserDocuments = users.createMany(
   {
      fullName: 'John Doe',
      hobbies: ['programming', 'sport']
   },
   {
      fullName: 'Alice Doe',
      hobbies: ['studying', 'videogames']
   }
);
DatabaseTable.deleteOne(documentId)

Deletes a table document.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to delete.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

const deletedUserDocument = users.deleteOne(DOCUMENT_ID);
DatabaseTable.deleteMany(...documentIds)

Deletes many table documents.

Parameter Type Required Default Description
documentIds string[] โœ“ None An array of each document's id you want to delete.

Returns: TableDocument[]

Example :

const DOCUMENT_IDS = [
   '0557f4db-5688-4d99-8f85-a83605cf8c1e',
   '2fe5a45e-1ffe-47ba-ab14-ac94ee26ec68'
];

const deletedUserDocuments = users.deleteMany(DOCUMENT_IDS);
DatabaseTable.update(documentId, data)

Updates a table document.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to update.
data object โœ“ None The data you want to update.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument { id: ..., value: { fullName: 'Alice Doe', ... } }
const updatedUserDocument = users.update(DOCUMENT_ID, {
   fullName: 'Alice Dart'
});
// After: TableDocument { id: ..., value: { fullName: 'Alice Dart', ... } }
DatabaseTable.increment(documentId, propertyKey, value)

Increments a document's property.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
propertyKey string โœ“ None The key of the property you want to increment.
value string X 1 The value you want to increment the property by.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument { id: ..., value: { age: 21, ... } }
const updatedUserDocument = users.increment(DOCUMENT_ID, 'age');
// After: TableDocument { id: ..., value: { age: 22, ... } }
DatabaseTable.decrement(documentId, propertyKey, value)

Decrements a document's property.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
propertyKey string โœ“ None The key of the property you want to decrement.
value string X 1 The value you want to decrement the property by.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument: { id: ..., value: { lives: 3, ... } }
const updatedUserDocument = users.decrement(DOCUMENT_ID, 'lives');
// After: TableDocument: { id: ..., value: { lives: 2, ... } }
DatabaseTable.multiply(documentId, propertyKey, value)

Multiplies a document's property.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
propertyKey string โœ“ None The key of the property you want to multiply.
value string โœ“ None The value you want to multiply the property by.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument: { id: ..., value: { chances: 10, ... } }
const updatedUserDocument = users.multiply(DOCUMENT_ID, 'chances', 1.5);
// After: TableDocument: { id: ..., value: { chances: 15, ... } }
DatabaseTable.divide(documentId, propertyKey, value)

Divides a document's property.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
propertyKey string โœ“ None The key of the property you want to divide.
value string โœ“ None The value you want to divide the property by.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument: { id: ..., value: { chances: 10, ... } }
const updatedUserDocument = users.divide(DOCUMENT_ID, 'chances', 2);
// Before: TableDocument: { id: ..., value: { chances: 5, ... } }
DatabaseTable.deleteProperty(documentId, key)

Deletes a document's property.

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
key string โœ“ None The key of the property you want to delete.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument: { id: ..., value: { fullName: 'John Doe', age: 21 } }
const updatedUserDocument = users.deleteProperty(DOCUMENT_ID, 'fullName');
// Before: TableDocument: { id: ..., value: { age: 21 } }
DatabaseTable.push(documentId, propertyKey, ...items)

Pushes items into an array document's property;

Parameter Type Required Default Description
documentId string โœ“ None The id of the document you want to make changes on.
propertyKey string โœ“ None The key to the array property you want to push the item to.
items any[] โœ“ None The items you want to push into the array.

Returns: TableDocument

Example :

const DOCUMENT_ID = '0557f4db-5688-4d99-8f85-a83605cf8c1e';

// Before: TableDocument: { id: ..., value: { hobbies: ['programming'], ... } }
const updatedUserDocument = users.push(DOCUMENT_ID, 'hobbies', 'tennis');
// Before: TableDocument: { id: ..., value: { hobbies: ['programming', 'tennis'], ... } }

TableDocument

Represents a table document.

TableDocument.id

Returns the document's id.

Type: string

TableDocument.value

Returns the document's data.

Type: object

swift-database's People

Contributors

pannh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.