UNPKG

sparnatural

Version:

Visual client-side SPARQL query builder and knowledge graph exploration tool

63 lines (59 loc) 2.1 kB
import ISettings from "./ISettings"; // Configuration par défaut export const defaultSettings: ISettings = { src: null, // Aucun src par défaut language: "en", // Langue par défaut en anglais defaultLanguage: "en", // Langue par défaut en anglais query: "", // Requête vide par défaut form: "", // Formulaire vide par défaut limit: -1, debug: false, typePredicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>", // Type prédicat par défaut endpoints: [], // Aucun endpoint par défaut submitButton: true, sparqlPrefixes: { rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", rdfs: "http://www.w3.org/2000/01/rdf-schema#", xsd: "http://www.w3.org/2001/XMLSchema#", }, customization: { headers: new Map(), // Pas de headers par défaut autocomplete: {}, // Configuration autocomplete vide par défaut list: {}, // Configuration liste vide par défaut tree: {}, // Configuration arbre vide par défaut number: {}, // Configuration nombre vide par défaut map: {}, // Configuration carte vide par défaut }, catalog: null, localCacheDataTtl: 1000 * 60 * 60 * 24, // 24 hours in mimmiseconds }; // Fonction pour étendre les objets en profondeur export const extend = ( deep: boolean, target: { [key: string]: any }, ...src: Array<{ [key: string]: any }> ) => { if (target === undefined) target = {}; // Fonction de fusion var merge = function (obj: { [key: string]: any }) { for (const [key, value] of Object.entries(obj)) { if (value === undefined) continue; if (Object.prototype.hasOwnProperty.call(obj, key)) { // Si fusion profonde et que la propriété est un objet, fusionner les propriétés if ( deep && Object.prototype.toString.call(value) === "[object Object]" ) { target[key] = extend(true, target[key], obj[key]); } else { target[key] = obj[key]; } } } }; // Boucler à travers chaque objet et effectuer une fusion src.forEach((o) => { merge(o); }); return target; };