/** * General loader class */ import FetchLoaderBackend from "./fetch-loader-backend"; import {LoaderBackend} from "./loader-backend"; export default class Loader { /** * Loader implementation - defaults to fetch */ private static _loaderBackend: LoaderBackend = new FetchLoaderBackend(); /** * Load a site JSON file * * @param path */ public static loadSiteJsonFile(path: any, singleInstance: boolean = false): Promise { return new Promise(done => { this._loaderBackend.loadJSONFile(path).then(result => { done(result); }).catch(error => { done(singleInstance ? {} : []); }); }); } /** * Set the loader implementation in use here * * @param value */ static set loaderBackend(value: LoaderBackend) { this._loaderBackend = value; } }