UNPKG

dcms

Version:

CMS library for Node.js

70 lines (59 loc) 2.08 kB
var _ = require('lodash'), EventEmitter = require('events').EventEmitter; var JqueryFileUploadMiddleware = function () { EventEmitter.call(this); // setting default options this.options = this.prepareOptions({}); }; require('util').inherits(JqueryFileUploadMiddleware, EventEmitter); JqueryFileUploadMiddleware.prototype.prepareOptions = function (options) { options = _.extend({ tmpDir: '/tmp', uploadDir: './public/files', uploadUrl: '/files', fileName: function(orgName, file) { return orgName; }, maxPostSize: 22020096, // 21MB minFileSize: 1, maxFileSize: 20971520, // 20MB acceptFileTypes: /.+/i, imageTypes: /\.(gif|jpe?g|png)$/i, imageVersions: { // thumbnail: { // width: 80, // height: 80 // } }, imageResize: null, accessControl: { allowOrigin: '*', allowMethods: 'OPTIONS, HEAD, GET, POST, PUT, DELETE' } }, options); _.each(['uploadDir', 'uploadUrl'], function (key) { if (!_.isFunction(options[key])) { var originalValue = options[key]; options[key] = function () { return originalValue; }; } }); return options; }; JqueryFileUploadMiddleware.prototype.configure = function (options) { this.options = this.prepareOptions(options); }; JqueryFileUploadMiddleware.prototype.fileHandler = function (options) { return require('./lib/filehandler')(this, this._options(options)); }; JqueryFileUploadMiddleware.prototype.uploadHandler = function (options) { return require('./lib/uploadhandler')(this._options(options)); }; JqueryFileUploadMiddleware.prototype.fileManager = function (options) { return require('./lib/filemanager')(this, this._options(options)); }; JqueryFileUploadMiddleware.prototype._options = function (options) { return this.prepareOptions(_.extend(this.options, options || {})); }; module.exports = new JqueryFileUploadMiddleware();