UNPKG

resume-client-socket.io

Version:

Resume Client API for Socket.IO and Node.JS - Medical Speech to Summarized Text

63 lines (49 loc) 1.44 kB
'use strict' const { format } = require('util') function build () { const codes = {} const emitted = new Map() function create (name, code, message) { if (!name) throw new Error('Fastify warning name must not be empty') if (!code) throw new Error('Fastify warning code must not be empty') if (!message) throw new Error('Fastify warning message must not be empty') code = code.toUpperCase() if (codes[code] !== undefined) { throw new Error(`The code '${code}' already exist`) } function buildWarnOpts (a, b, c) { // more performant than spread (...) operator let formatted if (a && b && c) { formatted = format(message, a, b, c) } else if (a && b) { formatted = format(message, a, b) } else if (a) { formatted = format(message, a) } else { formatted = message } return { code, name, message: formatted } } emitted.set(code, false) codes[code] = buildWarnOpts return codes[code] } function emit (code, a, b, c) { if (codes[code] === undefined) throw new Error(`The code '${code}' does not exist`) if (emitted.get(code) === true) return emitted.set(code, true) const warning = codes[code](a, b, c) process.emitWarning(warning.message, warning.name, warning.code) } return { create, emit, emitted } } module.exports = build