Select Git revision
-
Alexander Steinmaurer authoredAlexander Steinmaurer authored
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);
}