UNPKG

auspice

Version:

Web app for visualizing pathogen evolution

40 lines (32 loc) 1.08 kB
// TODO: Add typing for individual extensions. // See docs/customise-client/api.rst. type Extensions = { [key: string]: any } const registry: Extensions = ((): Extensions => { if (!process.env.EXTENSION_DATA) { // console.log("no EXTENSION_DATA found"); return {}; } const extensions: Extensions = typeof process.env.EXTENSION_DATA === "string" ? JSON.parse(process.env.EXTENSION_DATA) : process.env.EXTENSION_DATA; Object.keys(extensions).forEach((key: string) => { if (key.endsWith("Component")) { // console.log("loading component", key); /* "@extensions" is a webpack alias */ extensions[key] = require(`@extensions/${extensions[key]}`).default; } }); // console.log("extensions", extensions); return extensions; })(); export const getExtension = (what: string): any | false => { if (registry[what]) { return registry[what]; } console.error("Requested non-existing extension", what); return false; }; export const hasExtension = (what: string): boolean => { return Object.keys(registry).includes(what); };