Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 1x 3x 1x 1x 3x 2x 2x 2x 2x 2x 2x | export default class Config { private static instance: Config; private context: string = ''; /** * * @param context * @returns Singleton instance */ public static getInstance(context: string) { if(!Config.instance) { Config.instance = new Config(); Config.instance.context = context; } return Config.instance; } /** * Build config object from desired environment * @param env * @returns AWS CDK configuration object of T */ public build<T>(env: string): T | {} { Iif(!env) { throw new Error(`[build] Missing "env" in argument`); } Iif(!this.context) { throw new Error(`[build] instance has no context value`); } const obj = this.tryParseJson<T>(this.context); return obj[env as keyof typeof obj] as T ?? {}; } /** * Try parse JSON string to object * @param str * @returns JSON object of type T or {} */ private tryParseJson<T>(str: string): T | {} { try { return JSON.parse(str); } catch(ex) { return {} } } } |