a1d5d161dd
* Move concurrently dep upwards * Add express as explicit dependency * Accept just one HTTP method per endpoint * Fix endpoint option coalescing * Expressification of cloud functions * Nicer logging of API requests * Refactor web package.json * Add ts-node and nodemon to dev dependencies, bring back cors * Add scaffolding to point dev server at local functions * Enable emulator in dev server scaffolding * Fix up a little stuff I broke
25 lines
768 B
TypeScript
25 lines
768 B
TypeScript
import { ENV_CONFIG } from './envs/constants'
|
|
|
|
export class APIError extends Error {
|
|
code: number
|
|
details?: unknown
|
|
constructor(code: number, message: string, details?: unknown) {
|
|
super(message)
|
|
this.code = code
|
|
this.name = 'APIError'
|
|
this.details = details
|
|
}
|
|
}
|
|
|
|
export function getFunctionUrl(name: string) {
|
|
if (process.env.NEXT_PUBLIC_FUNCTIONS_URL) {
|
|
return `${process.env.NEXT_PUBLIC_FUNCTIONS_URL}/${name}`
|
|
} else if (process.env.NEXT_PUBLIC_FIREBASE_EMULATE) {
|
|
const { projectId, region } = ENV_CONFIG.firebaseConfig
|
|
return `http://localhost:5001/${projectId}/${region}/${name}`
|
|
} else {
|
|
const { cloudRunId, cloudRunRegion } = ENV_CONFIG
|
|
return `https://${name}-${cloudRunId}-${cloudRunRegion}.a.run.app`
|
|
}
|
|
}
|