Skip to content
Snippets Groups Projects
Select Git revision
  • 2feb73403313c9047d998167ce6719bc4229ca7c
  • master default protected
2 results

06-circular-dependency.cpp

Blame
  • jsonld.js 9.54 KiB
    import {send as notify} from './notification';
    import * as utils from "./utils";
    import {createInstance} from "./src/i18n";
    
    export default class JSONLD {
        constructor(baseApiUrl, entities) {
            this.entities = entities;
            this.baseApiUrl = baseApiUrl;
    
            let idToEntityNameMatchList = {};
            for (const entityName in entities) {
                const id = entities[entityName]["@id"];
                idToEntityNameMatchList[id] = entityName;
            }
    
            this.idToEntityNameMatchList = idToEntityNameMatchList;
        }
    
        static async getInstance(apiUrl, lang = 'de') {
            let promise = JSONLD.promises[apiUrl];
            if (promise === undefined) {
                promise = new Promise((resolve, reject) => {
                    JSONLD._initialize(
                        apiUrl,
                        (instance) => resolve(instance),
                        (error) => reject(error),
                        lang
                    );
                });
                JSONLD.promises[apiUrl] = promise;
            }
            return promise;
        }
    
        static initialize(apiUrl, successFnc, failureFnc, lang = 'de') {
            console.warn('DEPRECATED: JSONLD.initialize(), use JSONLD.getInstance() instead');
            JSONLD._initialize(apiUrl, successFnc, failureFnc, lang);
        }
    
        static doInitializationOnce(apiUrl) {
            // No longer needed, remove any calls
            console.warn('DEPRECATED: JSONLD.doInitializationOnce() calls can be removed');
        }
    
        static _initialize(apiUrl, successFnc, failureFnc, lang = 'de') {
            JSONLD._i18n.changeLanguage(lang);
    
            // if init api call was already successfully finished execute the success function
            if (JSONLD.instances[apiUrl] !== undefined) {
                if (typeof successFnc == 'function') successFnc(JSONLD.instances[apiUrl]);
    
                return;
            }
    
            // init the arrays
            if (JSONLD.successFunctions[apiUrl] === undefined) JSONLD.successFunctions[apiUrl] = [];
            if (JSONLD.failureFunctions[apiUrl] === undefined) JSONLD.failureFunctions[apiUrl] = [];
    
            // add success and failure functions
            if (typeof successFnc == 'function') JSONLD.successFunctions[apiUrl].push(successFnc);
            if (typeof failureFnc == 'function') JSONLD.failureFunctions[apiUrl].push(failureFnc);
    
            if (!apiUrl || JSONLD.initStarted[apiUrl] !== undefined) {
                return;
            }
    
            JSONLD.initStarted[apiUrl] = true;
            JSONLD._doInitialization(apiUrl);
        }