A Hapi plugin for image storage
$ npm install hapi-darwin
await server.register({
plugin: require('hapi-darwin'),
options: {
// Any uploader method options
dest: './path/to/destination',
formats: ['jpeg', 'png']
}
});
"use strict";
server.route({
method: "POST",
path: "/path/to/endpoint",
options: {
payload: {
allow: "multipart/form-data",
output: "stream"
}
},
handler: async ({ payload }, h) => {
const { uploader } = server.plugins["hapi-darwin"];
try {
return await uploader(payload.avatar, { names: "avatar" });
} catch (err) {
// ...
}
}
});
Returns a Promise for object
or object[]
or object[][]
with:
filename
(string) - corrected filenamepath
(string) - absolute path of uploaded version
Type: Readable
Readable[]
Type: object
Type: string
Default: ./images
Destination directory.
Type: string
string[]
Default: files.hapi.filename
.
Name(s) of input files to be used.
Type: boolean
Default: true
Whether replace new file with older exist or generate a unique filename.
Type: string[]
Default: ['jpeg', 'png', 'gif', 'webp']
File types that are allowed (it don't check extension).
Type: number
Default: 1
Maximum input files can be uploaded.
Type: number
Default: 1e2
Minimum pixels can be manipulated.
Type: number
Default: 1e6
Maximum pixels can be manipulated.
Type: object[]
Default: []
Define array
of version object
with:
width
(number) - pixels width the version image should be. Usenull
orundefined
to auto-scale the width to match the height.height
(number) - pixels height the version image should be. Usenull
orundefined
to auto-scale the height to match the width.enlargement
(boolean) - enlarge the output image if the input image width or height are already less than the required dimensions; default is false.suffix
(string) - suffix of version filename.
Example:
versions: [{ width: 128, height: 128 }, { width: 64, suffix: "thumbnail" }];
Type: boolean
Default: false
Whether adding the original input file to the destination directory or not.
MIT