0.0.2 • Published 7 years ago

riverboat v0.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Riverboat is a JavaScript data system that runs anywhere in the application stack. Code operating on data is written the exact same way whether it's running on the client or server.

Unlike a traditional ORM, Riverboat doesn't hinder try to abstract away the complexity of databases. Riverboat uses a composable adapter model to interface with any data source, as well as implement pluggable features like validation and data sanitation.

Riverboat is a work in progress and is being developed alongside an internal application.

Examples

Some of these examples use type annotations as found in TypeScript or Flow.

Creating a Model type

Models are strongly-typed in Riverboat, which allows for effective validation and sanitation of data.

ESNext (ES2015, class property initializers, decorators):

import { Model, Field, MemoryStorageAdapter } from "riverboat";

class BlogPost extends Model {
	@Field()
	title: string;

	constructor(title: string) {
		this.title = title;
	}
}

ES2015:

import { Model, addField, MemoryStorageAdapter } from "riverboat";

class BlogPost extends Model {
	constructor(title) {
		this.title = title;
	}
}

addField(BlogPost, {
	key: "title"
});

Saving Data

const adapter = new MemoryStorageAdapter();
const testPost = new BlogPost("A Test Blog Post");

BlogPost.save(adapter, testPost)
	.then(() => {
		console.log(`Saved with ID ${ testPost.id }!`);
	});

License

Riverboat is licensed under the MIT license. See the LICENSE file for more details.