{"version":3,"file":"ngsantha-configuration.mjs","sources":["../../src/lib/tokens.ts","../../src/lib/app-configuration.ts","../../src/lib/fetch-loader.ts","../../src/public-api.ts","../../src/ngsantha-configuration.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Token representing raw JSON configuration file.\n */\nexport const CONFIG_SOURCE = new InjectionToken<object>('CONFIG_SOURCE');\n","import { Inject, Injectable } from '@angular/core';\nimport { CONFIG_SOURCE } from './tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class AppConfiguration {\n\n  constructor(@Inject(CONFIG_SOURCE) private readonly config: any) {}\n\n  /**\n   * Returns value from a config file.\n   * Optionally returns the provided fallback value\n   * when the path is not defined in the config file.\n   *\n   * @example\n   * CONFIG_SOURCE: {\n   *   debug: false,\n   *   api: { endpoint: 'http://localhost:5000 }\n   * }\n   *\n   * get<boolean>('debug') // false\n   * get<string>('api.endpoint') // 'http://localhost:5000'\n   * get<string>('some.undefined.path', 'fallbackValue') // 'fallbackValue'\n   */\n  get<T>(key: string, fallback?: T): T {\n    const path = key.split('.');\n    let target = this.config;\n\n    for (const key of path) {\n      target = target[key];\n\n      if (target == null) {\n        break;\n      }\n    }\n\n    return target ?? fallback;\n  }\n}\n","import { StaticProvider } from '@angular/core';\nimport { CONFIG_SOURCE } from './tokens';\n\nexport function fetchConfiguration(uri: string): Promise<StaticProvider> {\n  return fetch(uri)\n    .then(body => body.json())\n    .then(useValue => ({\n      provide: CONFIG_SOURCE,\n      useValue\n    }));\n}\n","/*\n * Public API Surface of configuration\n */\n\nexport * from './lib/app-configuration';\nexport * from './lib/tokens';\nexport * from './lib/fetch-loader';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAEA;;;MAGa,aAAa,GAAG,IAAI,cAAc,CAAS,eAAe;;MCD1D,gBAAgB;IAE3B,YAAoD,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;KAAI;;;;;;;;;;;;;;;;IAiBnE,GAAG,CAAI,GAAW,EAAE,QAAY;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAErB,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM;aACP;SACF;QAED,OAAO,MAAM,IAAI,QAAQ,CAAC;KAC3B;;6GAhCU,gBAAgB,kBAEP,aAAa;iHAFtB,gBAAgB,cADH,MAAM;2FACnB,gBAAgB;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAGnB,MAAM;2BAAC,aAAa;;;SCHnB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC;SACd,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,QAAQ,KAAK;QACjB,OAAO,EAAE,aAAa;QACtB,QAAQ;KACT,CAAC,CAAC,CAAC;AACR;;ACVA;;;;ACAA;;;;;;"}