UNPKG

webappengine

Version:

A web application server that can host multiple web apps running with Node.js.

192 lines (168 loc) 5.6 kB
import path from 'path'; import pkg from '../../../package.json'; // Secret const secret = pkg.version; export default { // for server.listen(port[, host][, backlog][, callback]) // host and backlog are omitted by default port: process.env.PORT || 8000, host: '0.0.0.0', backlog: 511, routes: [ { type: 'server', route: '/', server: path.resolve(__dirname, '..', 'app.standalone') } ], verbosity: 0, // version from package.json version: pkg.version, route: '/', // with trailing slash cdn: { uri: '' }, // Express view engine view: { // Set html (w/o dot) as the default extension defaultExtension: 'html', // Format: <extension>: <template> engines: [ { // Hogan template with .html extension extension: 'html', template: 'hogan' }, { // Hogan template with .hbs extension extension: 'hbs', template: 'hogan' }, { // Hogan template with .hogan extension extension: 'hogan', template: 'hogan' } ] }, // Middleware (https://github.com/senchalabs/connect) middleware: { // https://github.com/expressjs/body-parser 'body-parser': { 'json': { // maximum request body size. (default: <100kb>) limit: '10mb' }, 'urlencoded': { extended: true, // maximum request body size. (default: <100kb>) limit: '10mb' } }, // https://github.com/mscdex/connect-busboy 'busboy': { highWaterMark: 2 * 1024 * 1024, limits: { fileSize: 20 * 1024 * 1024 // 20MB }, // immediate // false: no immediate parsing // true: immediately start reading from the request stream and parsing immediate: false }, // https://github.com/andrewrk/node-multiparty/ 'multiparty': { // Limits the amount of memory a field (not a file) can allocate in bytes. If this value is exceeded, an error event is emitted. The default size is 2MB. maxFieldsSize: 20 * 1024 * 1024, // 20MB // Limits the number of fields that will be parsed before emitting an error event. A file counts as a field in this case. Defaults to 1000. maxFields: 1000 }, // https://github.com/expressjs/morgan 'morgan': { // The ':id' token is defined at app.js format: ':id \x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m \x1b[34m:status\x1b[0m :response-time ms' }, // https://github.com/expressjs/compression 'compression': { // response is only compressed if the byte size is at or above this threshold. threshold: 512 }, // https://github.com/expressjs/session 'session': { // https://github.com/expressjs/session#resave resave: true, // https://github.com/expressjs/session#saveuninitialized saveUninitialized: true, // https://github.com/expressjs/session#secret secret: secret } }, // Supported languages supportedLngs: [ 'en', // default language 'de', 'es', 'fr', 'it', 'ja', 'zh-cn', 'zh-tw' ], siofu: { // SocketIOFileUploader dir: './tmp/siofu' }, i18next: { lowerCaseLng: true, // logs out more info (console) debug: false, // language to lookup key if not found on set language fallbackLng: 'en', // string or array of namespaces ns: [ 'config', 'resource' // default ], // default namespace used if not passed to translation function defaultNS: 'resource', whitelist: [ 'en', // default language 'de', 'es', 'fr', 'it', 'ja', 'zh-cn', 'zh-tw' ], // array of languages to preload preload: [], // language codes to lookup, given set language is 'en-US': // 'all' --> ['en-US', 'en', 'dev'] // 'currentOnly' --> 'en-US' // 'languageOnly' --> 'en' load: 'currentOnly', // char to separate keys keySeparator: '.', // char to split namespace from key nsSeparator: ':', interpolation: { prefix: '{{', suffix: '}}' }, detection: { // order and from where user language should be detected order: ['session', 'querystring', 'cookie', 'header'], // keys or params to lookup language from lookupQuerystring: 'lang', lookupCookie: 'lang', lookupSession: 'lang', // cache user language caches: ['cookie'] }, backend: { // path where resources get loaded from loadPath: path.resolve(__dirname, '..', 'i18n', '{{lng}}', '{{ns}}.json'), // path to post missing resources addPath: path.resolve(__dirname, '..', 'i18n', '{{lng}}', '{{ns}}.savedMissing.json'), // jsonIndent to use when storing json files jsonIndent: 4 } } };