@dmno/nextjs-integration
Version:
tools for integrating dmno into nextjs
1 lines • 2.45 kB
Source Map (JSON)
{"version":3,"sources":["../src/inject-dmno-client.ts"],"names":[],"mappings":";;;AAAA,OAAA,CAAQ,IAAI,gCAAgC,CAAA,CAAA;AAE5C,MAAA,CAAO,WAAc,GAAA,IAAI,KAAM,CAAA,EAAI,EAAA;AAAA,EACjC,GAAA,CAAI,GAAG,GAAK,EAAA;AACV,IAAA,MAAM,IAAI,KAAM,CAAA,CAAA,oFAAA,EAAgF,GAAI,CAAA,QAAA,EAAU,CAAY,UAAA,CAAA,CAAA,CAAA;AAAA,GAC5H;AACF,CAAC,CAAA,CAAA;AAMD,MAAA,CAAO,kBAAqB,GAAA,IAAI,KAAM,CAAA,EAAI,EAAA;AAAA,EACxC,GAAA,CAAI,GAAG,GAAK,EAAA;AAGV,IAAI,IAAA,CAAC,OAAO,2BAA6B,EAAA;AACvC,MAAM,MAAA,OAAA,GAAU,IAAI,cAAe,EAAA,CAAA;AACnC,MAAQ,OAAA,CAAA,IAAA,CAAK,KAAO,EAAA,kCAAA,EAAoC,KAAK,CAAA,CAAA;AAC7D,MAAA,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAEjB,MAAI,IAAA,OAAA,CAAQ,WAAW,GAAK,EAAA;AAC1B,QAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA,CAAA;AAAA,OACxD;AACA,MAAA,MAAA,CAAO,2BAA8B,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,CAAQ,YAAY,CAAA,CAAA;AAEpE,MAAQ,OAAA,CAAA,GAAA,CAAI,8BAAgC,EAAA,MAAA,CAAO,2BAA2B,CAAA,CAAA;AAAA,KAChF;AAGA,IAAI,IAAA,GAAA,IAAO,OAAO,2BAA6B,EAAA;AAC7C,MAAO,OAAA,MAAA,CAAO,4BAA4B,GAAG,CAAA,CAAA;AAAA,KAC/C;AAEA,IAAA,MAAM,IAAI,KAAM,CAAA,CAAA,+BAAA,EAA2B,GAAI,CAAA,QAAA,EAAU,CAAuD,qDAAA,CAAA,CAAA,CAAA;AAAA,GAClH;AACF,CAAC,CAAA","file":"inject-dmno-client.cjs","sourcesContent":["console.log('injected DMNO into client code');\n\nwindow.DMNO_CONFIG = new Proxy({}, {\n get(o, key) {\n throw new Error(`💥 \\`DMNO_CONFIG\\` is not accessible on the client, use \\`DMNO_PUBLIC_CONFIG.${key.toString()}\\` instead`);\n },\n});\n\n\ndeclare const window: any;\ndeclare const XMLHttpRequest: any;\n\nwindow.DMNO_PUBLIC_CONFIG = new Proxy({}, {\n get(o, key) {\n // TODO: let user opt-in/out\n // TODO: some smarter caching?\n if (!window._DMNO_DYNAMIC_PUBLIC_CONFIG) {\n const request = new XMLHttpRequest();\n request.open('GET', '/api/fetch-dynamic-public-config', false); // false means sync/blocking!\n request.send(null);\n\n if (request.status !== 200) {\n throw new Error('Failed to load public dynamic config');\n }\n window._DMNO_PUBLIC_DYNAMIC_CONFIG = JSON.parse(request.responseText);\n\n console.log('loaded public dynamic config', window._DMNO_PUBLIC_DYNAMIC_CONFIG);\n }\n\n // TODO: probably should handle config items that are defined but have a value of undefined\n if (key in window._DMNO_PUBLIC_DYNAMIC_CONFIG) {\n return window._DMNO_PUBLIC_DYNAMIC_CONFIG[key];\n }\n\n throw new Error(`💥 \\`DMNO_PUBLIC_CONFIG.${key.toString()}\\` does not exist in your config, or it is sensitive `);\n },\n});\n"]}