UNPKG

turborepo-remote-cache

Version:
68 lines 5.63 kB
import * as fs from 'node:fs'; import { isBoom } from '@hapi/boom'; import Fastify from 'fastify'; import hyperid from 'hyperid'; import { env } from './env.js'; import { logger } from './logger.js'; import config from './plugins/config.js'; import remoteCache from './plugins/remote-cache/index.js'; const uuid = hyperid({ urlSafe: true }); export function createApp(options = {}) { const SSL_CERT_PATH = env.get().SSL_CERT_PATH; const SSL_KEY_PATH = env.get().SSL_KEY_PATH; const isHttps = SSL_CERT_PATH && SSL_KEY_PATH && fs.existsSync(SSL_CERT_PATH) && fs.existsSync(SSL_KEY_PATH); const fastifyOptions = { ...options, ...(env.get().HTTP2 ? { http2: true } : {}), ...(isHttps ? { https: { key: fs.readFileSync(SSL_KEY_PATH), cert: fs.readFileSync(SSL_CERT_PATH), }, } : {}), }; const hasConfiguredLogger = 'logger' in fastifyOptions || 'loggerInstance' in fastifyOptions; if (!hasConfiguredLogger) { fastifyOptions.loggerInstance = logger; } const app = Fastify({ genReqId: () => uuid(), ...fastifyOptions, }); app.register(config, { overrides: options.configOverrides }).after(() => { app.register(remoteCache, { provider: app.config.STORAGE_PROVIDER, }); }); app.get('/favicon.ico', { logLevel: 'silent', handler: (request, reply) => { reply.code(204).send(); }, }); app.setErrorHandler((err, request, reply) => { if (err.validation) { reply.log.warn(err); reply.code(400).send({ message: err.message }); } else if (isBoom(err)) { reply.log.warn(err); reply .code(err.output.statusCode) .send(err.data != null ? { message: err.message, ...err.data } : { message: err.output.payload.message }); } else { request.log.error(err); reply.code(500).send({ message: err.message }); } }); return app; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sT0FBa0QsTUFBTSxTQUFTLENBQUE7QUFDeEUsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNwQyxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQTtBQUN4QyxPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQTtBQUV6RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUV2QyxNQUFNLFVBQVUsU0FBUyxDQUN2QixVQUF3RSxFQUFFO0lBRTFFLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUE7SUFDN0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQTtJQUMzQyxNQUFNLE9BQU8sR0FDWCxhQUFhO1FBQ2IsWUFBWTtRQUNaLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFN0IsTUFBTSxjQUFjLEdBQXlCO1FBQzNDLEdBQUcsT0FBTztRQUNWLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDO2dCQUNF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