0.0.2 • Published 6 years ago

immutable-db v0.0.2

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

immutable-db npm version

An simple immutable relational database

This package is not production ready

Install

Install package

npm i immutable-db --save

Usage

Import library

import Database, {Table} from 'immutable-db';

Create some data

const database = new Database();
const questionsTable = new Table('questions', [
	'id', 'name'
], [{
	hasMany: 'answers',
}]);
const answersTable = new Table('answers', [
	'id', 'name'
], [{
	belongsTo: 'question',
}]);

database.addTable(questionsTable);
database.addTable(answersTable);
let answers = [];
let questions = [];

questions.push(questionsTable.create({
	id: 1,
	name: "How are you?"
}));
answers.push(answersTable.create({
	id: 1,
	name: "Great!",
}));
questions[0].answers.add(answers[0]);
answers.push(answersTable.create({
	id: 2,
	name: "Good!",
}));
questions[0].answers.add(answers[1]);
answers.push(answersTable.create({
	id: 3,
	name: "FINE!",
}));
questions[0].answers.add(answers[2]);


questions.push(questionsTable.create({
	id: 2,
	name: "What is your favorite food?"
}));
answers.push(answersTable.create({
	id: 4,
	name: "Pizza!",
}));
questions[1].answers.add(answers[3]);
answers.push(answersTable.create({
	id: 5,
	name: "Hot Dogs!",
}));
questions[1].answers.add(answers[4]);
answers.push(answersTable.create({
	id: 6,
	name: "Spagetti!",
}));
questions[1].answers.add(answers[5]);
answers.push(answersTable.create({
	id: 7,
	name: "Potatoes!",
}));
questions[1].answers.add(answers[6]);

Query your data

database.questions.get(1);

database.questions.get(1).answers.get();