Socket
Socket
Sign inDemoInstall

swift-database

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    swift-database

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


Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Install size
35.6 kB
Created
Weekly downloads
 

Readme

Source

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
ParameterTypeRequiredDefaultDescription
options{ filePath: string }NoneThe 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.

ParameterTypeRequiredDefaultDescription
namestringNoneThe 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.

ParameterTypeRequiredDefaultDescription
namestringNoneThe 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.

ParameterTypeRequiredDefaultDescription
namestringNoneThe 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe 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.

ParameterTypeRequiredDefaultDescription
predicatePredicateFunctionNoneThe 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.

ParameterTypeRequiredDefaultDescription
predicatePredicateFunctionNoneThe 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.

ParameterTypeRequiredDefaultDescription
dataobjectNoneThe 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.

ParameterTypeRequiredDefaultDescription
dataobject[]NoneAn 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe 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.

ParameterTypeRequiredDefaultDescription
documentIdsstring[]NoneAn 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to update.
dataobjectNoneThe 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
propertyKeystringNoneThe key of the property you want to increment.
valuestringX1The 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
propertyKeystringNoneThe key of the property you want to decrement.
valuestringX1The 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
propertyKeystringNoneThe key of the property you want to multiply.
valuestringNoneThe 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
propertyKeystringNoneThe key of the property you want to divide.
valuestringNoneThe 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.

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
keystringNoneThe 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;

ParameterTypeRequiredDefaultDescription
documentIdstringNoneThe id of the document you want to make changes on.
propertyKeystringNoneThe key to the array property you want to push the item to.
itemsany[]NoneThe 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

Keywords

FAQs

Last updated on 03 Jan 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc