1.0.1 • Published 4 years ago

rest-schema-event v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

requirement

  • rest-schema ^1.0.3

features

  • add events for rest schema as global or specific schema model
  • create event for all available routes on schema
  • simple and light

installation

add it to your project with npm npm install rest-schema-event or with yarn yarn add rest-schema-event

usage

first register plugin on schema as schema plugin or global plugin

global:

// global
const restSchema = require('rest-schema')
const restSchemaEvent = require('rest-schema-event')
const event = restSchemaEvent.event

restSchema.use(restSchemaEvent())

// using
// modelName is name of your model
event.on("modelName.create" , (response , restSchemaContext) => {
    console.log('modelName created')
})

or specific schema model

// specific schema model
const restSchema = require('rest-schema')
const myModel = require('./myModel')
const restSchemaEvent = require('rest-schema-event')

const schema = restSchema.schema(myModel , {
    // my fields
})
schema.use(restSchemaEvent())

// using
// we do not need model name here ( can be customized in options )
event.on("create" , (response , restSchemaContext) => {
    console.log('created')
})

NOTE: remember that if you register rest-schema-event plugin globally all events will be emitted with a prefix (by default modelName.) but you can change this behavior in options

options

object of options that is optional

event

custom event emitter. by default if you register plugin globally, plugin will use a global event that is access able as require('rest-schema-event').event

useGlobalEvent

  • optional
  • type: boolean
  • default: true

if you do not send any event and set this to false, plugin creates a custom event emitter foreach use()

prefix

  • optional
  • type: boolean|string
  • default: null

if set an string every event will emitted with that prefix. by default if you dont set it (define null) and register plugin globally this will be setted true automaticly if useGlobalEvent was true if this was a true boolean plugin will prefix it with a modelname and devider for example if your model name was users this will prefix users + divider to every event

divider

  • optional
  • type: string
  • default: . divider between prefix and event name

routes

hooks

  • optional
  • type: string[]
  • default: 'after' list of hooks by defualt is just after

license

MIT license