* setup bskycard * quick proof of concept for png card generation * bskycard: use jsx * bskycard: 3x5 profile layout * bskycard: add butterfly overlay * bskycard: tidy * bskycard: separate and reorganize * bskycard: tidy * bskycard: tidy * bskycard: tidy * bskycard: poc of transparent overlay and box shadow * bskycard: reorg impl into src/ directory * bskycard: use more standard app structure * bskycard: setup dockerfile, fix build * bskycard: support for x-origin-verify * bskycard: card layout, filter images based on labels * bskycard: tidy * bskycard: support cluster mode * bskycard: handle error fetching starter pack info * bskycard: tidy * bskycard: fix leak on failed image fetch * bskycard: build workflow * bskyogcard: rename from bskycard * bskyogcard: fix some express plumbing * bskyogcard: add cdn tags, tidy
40 lines
833 B
TypeScript
40 lines
833 B
TypeScript
import {envInt, envStr} from '@atproto/common'
|
|
|
|
export type Config = {
|
|
service: ServiceConfig
|
|
}
|
|
|
|
export type ServiceConfig = {
|
|
port: number
|
|
version?: string
|
|
appviewUrl: string
|
|
originVerify?: string
|
|
}
|
|
|
|
export type Environment = {
|
|
port?: number
|
|
version?: string
|
|
appviewUrl?: string
|
|
originVerify?: string
|
|
}
|
|
|
|
export const readEnv = (): Environment => {
|
|
return {
|
|
port: envInt('CARD_PORT'),
|
|
version: envStr('CARD_VERSION'),
|
|
appviewUrl: envStr('CARD_APPVIEW_URL'),
|
|
originVerify: envStr('CARD_ORIGIN_VERIFY'),
|
|
}
|
|
}
|
|
|
|
export const envToCfg = (env: Environment): Config => {
|
|
const serviceCfg: ServiceConfig = {
|
|
port: env.port ?? 3000,
|
|
version: env.version,
|
|
appviewUrl: env.appviewUrl ?? 'https://api.bsky.app',
|
|
originVerify: env.originVerify,
|
|
}
|
|
return {
|
|
service: serviceCfg,
|
|
}
|
|
}
|