uttori-plugin-upload-multer

Uttori upload provider using Multer.

Usage no npm install needed!

<script type="module">
  import uttoriPluginUploadMulter from 'https://cdn.skypack.dev/uttori-plugin-upload-multer';
</script>

README

view on npm npm module downloads Build Status Dependency Status Coverage Status

Uttori Plugin - Multer Upload

A plugin to add file uploading using Multer.

Install

npm install --save uttori-plugin-upload-multer

Config

{
  // Registration Events
  events: {
    bindRoutes: ['bind-routes'],
  },

  // Directory files will be uploaded to.
  directory: 'uploads',

  // Server route to POST uploads to.
  route: '/upload',
}

API Reference

MulterUpload

Uttori Multer Upload

Kind: global class

MulterUpload.configKey ⇒ String

The configuration key for plugin to look for in the provided configuration.

Kind: static property of MulterUpload
Returns: String - The configuration key.
Example (MulterUpload.configKey)

const config = { ...MulterUpload.defaultConfig(), ...context.config[MulterUpload.configKey] };

MulterUpload.defaultConfig() ⇒ Object

The default configuration.

Kind: static method of MulterUpload
Returns: Object - The configuration.
Example (MulterUpload.defaultConfig())

const config = { ...MulterUpload.defaultConfig(), ...context.config[MulterUpload.configKey] };

MulterUpload.validateConfig(config)

Validates the provided configuration for required entries.

Kind: static method of MulterUpload

Param Type Description
config Object A configuration object.
config[MulterUpload.configKey Object A configuration object specifically for this plugin.

Example (MulterUpload.validateConfig(config, _context))

MulterUpload.validateConfig({ ... });

MulterUpload.register(context)

Register the plugin with a provided set of events on a provided Hook system.

Kind: static method of MulterUpload

Param Type Description
context Object A Uttori-like context.
context.hooks Object An event system / hook system to use.
context.hooks.on function An event registration function.
context.config Object A provided configuration to use.
context.config.events Object An object whose keys correspong to methods, and contents are events to listen for.

Example (MulterUpload.register(context))

const context = {
  hooks: {
    on: (event, callback) => { ... },
  },
  config: {
    [MulterUpload.configKey]: {
      ...,
      events: {
        bindRoutes: ['bind-routes'],
      },
    },
  },
};
MulterUpload.register(context);

MulterUpload.bindRoutes(server, context)

Add the upload route to the server object.

Kind: static method of MulterUpload

Param Type Description
server Object An Express server instance.
server.post function Function to register route.
server.use function Function to register middleware.
context Object A Uttori-like context.
context.config Object A provided configuration to use.
context.config.directory String The file path to save files into.
context.config.route String The URL to POST files to.

Example (MulterUpload.bindRoutes(server, context))

const context = {
  config: {
    [MulterUpload.configKey]: {
      directory: 'uploads',
      route: '/upload',
    },
  },
};
MulterUpload.bindRoutes(server, context);

MulterUpload.upload(request, response, next)

The Express route method to process the upload request and provide a response.

Kind: static method of MulterUpload

Param Type Description
request Object An Express request object.
request.file Object The uploaded file.
request.file.filename String The uploaded file's filename.
response Object An Express response object.
next Object An Express next function.

Example (MulterUpload.upload(request, response, _next))

server.post('/upload', MulterUpload.upload);

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License