mirror of
https://github.com/abrendan/MicDropMessages.git
synced 2025-08-25 22:12:02 +02:00
Initial commit
This commit is contained in:
68
node_modules/server/plugins/express/index.js
generated
vendored
Normal file
68
node_modules/server/plugins/express/index.js
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
const express = require('express');
|
||||
|
||||
module.exports = {
|
||||
name: 'express',
|
||||
options: {
|
||||
// See these in-depth in https://expressjs.com/en/api.html#app.set
|
||||
'case sensitive routing': {},
|
||||
'env': {
|
||||
inherit: 'env'
|
||||
},
|
||||
'etag': {},
|
||||
'jsonp callback name': {},
|
||||
'json replacer': {},
|
||||
'json spaces': {},
|
||||
'query parser': {},
|
||||
'strict routing': {},
|
||||
'subdomain offset': {},
|
||||
'trust proxy': {},
|
||||
'views': {
|
||||
default: 'views',
|
||||
inherit: true,
|
||||
type: String,
|
||||
folder: true
|
||||
},
|
||||
'view cache': {},
|
||||
'view engine': {
|
||||
inherit: 'engine'
|
||||
},
|
||||
'x-powered-by': {}
|
||||
},
|
||||
init: ctx => {
|
||||
ctx.express = express;
|
||||
ctx.app = ctx.express();
|
||||
|
||||
// Go through all of the options and set the right ones
|
||||
for (let key in ctx.options.express) {
|
||||
let value = ctx.options.express[key];
|
||||
if (typeof value !== 'undefined') {
|
||||
ctx.app.set(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Accept HTML as a render extension
|
||||
ctx.app.engine('html', require('hbs').__express);
|
||||
|
||||
if (ctx.options.engine) {
|
||||
// If it's an object, expect a { engine: { engineName: engineFN } }
|
||||
if (typeof ctx.options.engine === 'object') {
|
||||
for (let name in ctx.options.engine) {
|
||||
ctx.app.engine(name, ctx.options.engine[name]);
|
||||
ctx.app.set('view engine', name);
|
||||
}
|
||||
} else { // Simple case like { engine: 'pug' }
|
||||
ctx.app.set('view engine', ctx.options.engine);
|
||||
}
|
||||
}
|
||||
},
|
||||
listen: ctx => new Promise((resolve, reject) => {
|
||||
ctx.server = ctx.app.listen(ctx.options.port, () => {
|
||||
ctx.log.debug(`Server started on http://localhost:${ctx.options.port}/`);
|
||||
resolve();
|
||||
});
|
||||
ctx.close = () => new Promise((res, rej) => {
|
||||
ctx.server.close(err => err ? rej(err) : res());
|
||||
});
|
||||
ctx.server.on('error', err => reject(err));
|
||||
})
|
||||
};
|
56
node_modules/server/plugins/express/integration.test.js
generated
vendored
Normal file
56
node_modules/server/plugins/express/integration.test.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
const server = require('../../server');
|
||||
const { status } = server.reply;
|
||||
|
||||
// Test runner:
|
||||
const run = require('server/test/run');
|
||||
|
||||
describe('express', () => {
|
||||
it('is defined', () => {
|
||||
server(parseInt(1000 + Math.random() * 10000)).then(ctx => {
|
||||
expect(ctx.app).toBeDefined();
|
||||
ctx.close();
|
||||
});
|
||||
});
|
||||
|
||||
it('accepts the options', async () => {
|
||||
|
||||
const options = {
|
||||
'case sensitive routing': true,
|
||||
'etag': 'strong',
|
||||
'jsonp callback name': 'abc',
|
||||
'subdomain offset': 1,
|
||||
'trust proxy': true,
|
||||
'view cache': true,
|
||||
'x-powered-by': false
|
||||
};
|
||||
|
||||
const res = await run({ express: options }, ctx => {
|
||||
for (let key in options) {
|
||||
expect(ctx.app.get(key)).toBe(options[key]);
|
||||
}
|
||||
return status(200);
|
||||
}).get('/');
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.body).toBe('');
|
||||
});
|
||||
|
||||
it('ignores the view engine (use .engine instead)', async () => {
|
||||
const res = await run({ express: { 'view engine': 'abc' } }, ctx => {
|
||||
expect(ctx.app.get('env')).toBe('test');
|
||||
expect(ctx.app.get('view engine')).toBe('pug');
|
||||
return status(200);
|
||||
}).get('/');
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.body).toBe('');
|
||||
});
|
||||
|
||||
it.skip('uses an engine', async () => {
|
||||
const res = run({
|
||||
express: { engine: {
|
||||
blabla: 'I do not know how to make an engine yet'
|
||||
}}
|
||||
}).get('/');
|
||||
expect(res.status).toBe(200);
|
||||
expect(res.body).toBe('');
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user