nodewrite-core-data

core data for nodewrite


Keywords
nodewrite, data, store, orm, odm
License
ISC
Install
npm install nodewrite-core-data@1.0.16

Documentation

Core Data

Build Status CodeClimate Coverage Status Dependency Status

Handles registering plugin data models and establishing connections with the database. Provides a datastore-agnostic JavaScript ORM designed for ease of use and peace of mind. Exposes a unified data API that works on both server and client.

Installation

npm install nodewrite-core-data --save

This is a core package and is installed by default.

Usage

Provides access to data store models that have been registered by plugins.

Plugins

When developing a plugin that depends on this package:

server.dependency(['nodewrite-core-data'], register);

Learn more about how to build a plugin.

Helper Methods

server.store()

Plugin models are each assigned to their own namespace within the store. The store contains a top-level namespace for both core and plugin packages.

// Get reference to data store.
const store = server.store();

// store.Core.[Package].[Model]
const User = store.Core.Users.User;

// store.Plugin.[Package].[Model]
const Post = store.Plugin.Posts.Post;

Learn more about how to use JSData models.

server.paginate(data)

The paginate method will return a standardized pagination object when given the total number of items, items per page and current page.

  • data - an object used for generating the pagination object.
    • total - total number of items in the data set.
    • limit - total number of items per page.
    • page - current page position.
const data = { total: 100, limit: 15, page: 3 };
const pagination = server.paginate(data);

Resulting pagination object:

{
  currentPage: 3,
  itemsPerPage: 15,
  nextPage: 4,
  previousPage: 2,
  totalItems: 100,
  totalPages: 7
}

server.registerPluginModels(path)

Registers plugin models with the data store. The models will be expected to be found within the plugin's /model directory. Registration of plugin models may become automatic in the future.

  • path - base directory of a plugin that has data models to be registered.
server.registerPluginModels(__dirname);

Getting Help

Open an issue on this repository!