@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',

  // Server route to GET uploads from.
  publicRoute: '/uploads',
}

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, _context)

Validates the provided configuration for required entries.

Kind: static method of MulterUpload

Param Type Description
config object A configuration object.
config.configKey object A configuration object specifically for this plugin.
_context object Unused.

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(context) ⇒ function

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

Kind: static method of MulterUpload
Returns: function - - The function to pass to Express.

Param Type Description
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.upload(context)(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