core/utils/ResponseWrapper.ts
Junseo Park 282fc0836b
Release v2.1 (#441)
* feat: added datadog

* fix(deps): update dependency yup-locales-ko to v1.2.0

* fix: prevent perm missing

* fix: invalid start script

* fix(deps): update dependency formik to v2.2.9 (#409)

* chore: changed some header

* deps: updated sentry

* feat: added datadog metrix

* fix: error causing at custom git url

* chore: removed key file

CHANGED KEY

* types: holding missing flag

* feat: cors header

* feat: updated api docs

* deps: updated deps for security

* ci: handling sentry release

* ci: handling sentry

* Bug Fixes (#438)

* fix: invalid sql

* fix: fixed formatting number for null

close: #433

* chore: added more margin for ad

* typo: fixed typo issue

* Improved Report and changed email address (#440)

* feat: added report page for bot

* feat: added report page for user

* feat: blocking user reporting self

* feat: changed emails

* refactor: changed category handler style

* release: version changed to v2.1

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2021-07-04 12:56:19 +09:00

26 lines
752 B
TypeScript

import http from 'http'
import { ResponseProps } from '@types'
import { ErrorText } from './Constants'
export default function ResponseWrapper<T = unknown>(
res: ApiResponse,
{ code = 200, message, version = 2, data, errors }: ResponseProps<T>
) {
if (!code) throw new Error('`code` is required.')
if (!http.STATUS_CODES[code]) throw new Error('Invalid http code.')
res.setHeader('Access-Control-Allow-Origin', process.env.KOREANBOTS_URL)
res.status(code)
res.json({
code,
data,
errors,
version,
...(message || !data ? { message: message || ErrorText[code] || http.STATUS_CODES[code] } : {}),
})
}
interface ApiResponse {
status(status: string|number): void
setHeader(key: string, value: string): void
json(json: unknown): void
}