The mairie form needs an organiser, an email and the café defaults. Ship the defaults in the repo and let each volunteer override the personal bits in config.local.json (gitignored, optional: a fresh clone still works). config.js carries neither import nor export on purpose, so that it loads both as a classic script (content script, background) and as an ESM module. That is what lets presentation.js drop its duplicated café address. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
// Défauts committés de l'extension + fusion avec la surcharge locale.
|
|
//
|
|
// ⚠️ Ce fichier n'a NI `import` NI `export`, DÉLIBÉRÉMENT (ne pas « corriger ») :
|
|
// c'est ce qui le rend chargeable à la fois comme content script / script de
|
|
// background (scripts classiques : un `export` y lève une SyntaxError) et comme
|
|
// module ESM (`import "./config.js"` depuis presentation.js et bun test).
|
|
// Il communique donc par `globalThis`. Cf. DECISIONS.md 2026-07-17.
|
|
|
|
globalThis.EchoConfig = {
|
|
// Clé de storage : le background écrit, le content script lit.
|
|
CLE_CONFIG_LOCALE: "config-locale",
|
|
|
|
DEFAUTS: {
|
|
// Vides par défaut : sans config.local.json, on préfère un champ vide
|
|
// signalé dans le bandeau à un organisateur inventé.
|
|
organisateur: "",
|
|
email: "",
|
|
|
|
// RECHERCHE.md §3 : valeur exacte du dropdown #input_6_20.
|
|
themeDefaut: "Culture",
|
|
tarifs: "Gratuit",
|
|
|
|
// RECHERCHE.md §2. `input_18` se compose `${coords}|${adresse}`.
|
|
cafe: {
|
|
adresse: "8 Rue du Pré Vicinal 31270 Cugnaux",
|
|
coords: "43.53753132806989|1.342981890597508",
|
|
},
|
|
},
|
|
|
|
// Fusion de surface : la locale ne porte que des champs plats
|
|
// (organisateur, email…). Tolérante par nécessité — `config.local.json` est
|
|
// optionnel et éditable à la main : absent, `null` ou invalide → défauts nus,
|
|
// jamais d'exception.
|
|
fusionner(defauts, locale) {
|
|
const surcharge =
|
|
locale && typeof locale === "object" && !Array.isArray(locale) ? locale : {};
|
|
return { ...defauts, ...surcharge };
|
|
},
|
|
};
|