Skip to content

TheOneTheOnlyDavidBrown/crunchpow-model

Repository files navigation

crunchpow-model

travis build MIT License version

This is a microlibrary for better handling of models with schemas. Includes CRUD functions to alter the model on the backend without having to write the CRUD functions (promise returned) in your service.

Installation

npm install --save --save-exact crunchpow-model

or

yarn add -E crunchpow-model

or

Use a CDN: https://npmcdn.com/crunchpow-model/dist/index.umd.min.js but it's best to go to this in the browser and copy what it directs to because it will keep the correct version for you.

Model Usage:

  • Import package require('crunchpow-model').
  • Set up schema as const schema = {myProp: 'string', multipleTypes: 'string|number', user: {name:'string'}}. Type can be string|number|array|boolean.
  • let myModel = new CrunchPowModel('myModelName', schema);.
  • myModel.create([dataObj]). dataObj must be in a format that validates against the schema. This is for getting a model from the back-end and casting it as a crunchpow-model.
  • Use myModel.prop('myProp','new value') to set. Nested properties can be set by `myModel.prop('user.name', 'new value').
  • Use myModel.myProp to get property.

HTTP usage:

  • Default endpoints mimic the default Ruby on Rails routes.
  • Using myModel.save() saves the current model
  • Using myModel.destroy(id) destroys a model based on the passed in id. Probably will update this to have the id optional and delete the current model.
  • Using myModel.fetch([id]) gets the model if id is passed in. Otherwise, it returns a list of all models 'myModel'.
  • By using myModel.setBaseEndpoint(newBaseEndpoint) you can change the root endpoint. Default: /api/:modelName.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published