baucis-decorator-file

1.0.2 • Public • Published

baucis-decorator-file

Allows properties to be exposed as files.

Install

npm install baucis-decorators baucis-decorator-file --save

Usage

Add the decorator and it will add the functionality to any properties containing a file field set to some mime-type. For the following example, you could GET the jsx as a file via something like /api/components/123.jsx or /api/components/my-component.123.jsx.

Example

controllers/Component.js

var baucis = require('baucis');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
 
var extend = require('deep-extend');
var ResourceProps = require('../props/Resource.js');
var ResourceController = require('../controllers/Resource.js');
 
var ComponentProps = extend({}, ResourceProps);
 
ComponentProps.jsx = {
  type: String,
  file: 'text/jsx'
};
 
var ComponentSchema = new Schema(ComponentProps);
var ComponentModel = mongoose.model('Component', ComponentSchema);
var ComponentController = baucis.rest('Component');
 
var decorators = require('baucis-decorators');
 
// decorate controller
decorators.add.call(ComponentController, [
  'baucis-decorator-file',  // checks each property for any `file` fields and adds functionality accordingly
  ResourceController        // `ComponentController` will inherit all of `ResourceController`'s decorators
]);
 
/**
 * Expose controller.
 */
module.exports = ComponentController;

Package Sidebar

Install

npm i baucis-decorator-file

Weekly Downloads

0

Version

1.0.2

License

MIT

Last publish

Collaborators

  • timbur