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;

/baucis-decorator-file/

    Package Sidebar

    Install

    npm i baucis-decorator-file

    Weekly Downloads

    2

    Version

    1.0.2

    License

    MIT

    Last publish

    Collaborators

    • timbur