{"version":3,"sources":["lib/appContext/simpleLoader.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAa,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGlF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAEjE;AAED,eAAO,MAAM,YAAY,kEAAkE,CAAC;AAU5F,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CAMvD","file":"../../../lib/appContext/simpleLoader.d.ts","sourcesContent":["import AppContext, { Dictionary } from '../../common/appContext/appContext.js';\nimport { aliasName, SimpleLoader } from '../../common/appContext/simpleLoader.js';\nimport { Provider, singletonProvider } from '../../common/provider.js';\n\n/**\n * Simple loader for loading local files or fetching\n * from the network.\n * TODO: extend with support for local/session storage ...\n *\n * @param path treated as simple path if does not start with\n *           file:/// or https?://\n * @return text string - caller must convert to json\n *        if necessary via JSON.parse() or whatever\n */\nexport function loadConfig(path: string): Promise<Dictionary<any>> {\n  return fetch(path).then((res) => res.json());\n}\n\nexport const providerName = 'driver/littleware/little-elements/lib/appContext/simpleLoader';\n\nAppContext.get().then(\n  (cx) => {\n    const provider: Provider<SimpleLoader> = singletonProvider(() => ({ loadConfig }));\n    cx.putProvider(providerName, {}, () => provider);\n    cx.putAlias(aliasName, providerName);\n  },\n);\n\nexport async function getLoader(): Promise<SimpleLoader> {\n  return AppContext.get().then(\n    (cx) => cx.getProvider(providerName),\n  ).then(\n    (provider: Provider<SimpleLoader>) => provider.get(),\n  );\n}\n"]}