diff --git a/builder/src/Build.hs b/builder/src/Build.hs index 78d778a75..f05486afa 100644 --- a/builder/src/Build.hs +++ b/builder/src/Build.hs @@ -1265,7 +1265,7 @@ source directories when compiling the Lamdera Live harness module -} lamderaIsLiveHarnessModule :: Src.Module -> Bool lamderaIsLiveHarnessModule modul = - Src.getName modul == "LocalDev" + Src.getName modul == "Lamdera.Live" lamderaLiveHarnessEnv :: Env -> Env diff --git a/extra/Lamdera/CLI/Live.hs b/extra/Lamdera/CLI/Live.hs index cf268895f..034140eef 100644 --- a/extra/Lamdera/CLI/Live.hs +++ b/extra/Lamdera/CLI/Live.hs @@ -113,14 +113,14 @@ directoryConfig = -- So that Elm's Navigation routing can work on any URL, serve any unmatched --- non-extensioned paths to the "index" (in this case the src/LocalDev.elm +-- non-extensioned paths to the "index" (in this case the Lamdera/Live.elm -- harness as we're local in the reactor). Extensioned paths will continue to -- the next handler, namely `error404` (see `run` fn at top of file) serveUnmatchedUrlsToIndex :: FilePath -> (FilePath -> Snap()) -> Snap () serveUnmatchedUrlsToIndex root serveElm = do file <- getSafePath guard (takeExtension file == "") - serveElm (lamderaCache root "LocalDev.elm") + serveElm (lamderaCache root "Lamdera" "Live.elm") prepareLocalDev :: FilePath -> IO FilePath @@ -136,7 +136,7 @@ prepareLocalDev root = do let cache = lamderaCache root - harnessPath = "LocalDev.elm" + harnessPath = "Lamdera" "Live.elm" patchedContent path content = if path == harnessPath @@ -154,19 +154,19 @@ prepareLocalDev root = do replaceVersionMarker :: Text -> Text -replaceVersionMarker localdev = do +replaceVersionMarker lamderaLive = do let (m,mi,p) = Lamdera.Version.raw - localdev & T.replace + lamderaLive & T.replace "( 0, 0, 0 )" (T.concat ["( ", show_ m , ", ", show_ mi , ", ", show_ p , " )"]) replaceRpcMarker :: Bool -> Text -> Text -replaceRpcMarker shouldReplace localdev = +replaceRpcMarker shouldReplace lamderaLive = if not shouldReplace - then localdev + then lamderaLive else - localdev + lamderaLive & T.replace "-- MKRRI" "import RPC\n\ diff --git a/extra/Lamdera/Injection.hs b/extra/Lamdera/Injection.hs index 373c7ad8a..a90842910 100644 --- a/extra/Lamdera/Injection.hs +++ b/extra/Lamdera/Injection.hs @@ -41,7 +41,7 @@ type Mains = Map.Map ModuleName.Canonical Opt.Main graphModifications :: Mode.Mode -> Mains -> Map.Map Opt.Global Opt.Node -> Map.Map Opt.Global Opt.Node graphModifications mode mains graph = do - if mains & mainsInclude ["LocalDev"] + if mains & mainsInclude ["Lamdera.Live"] then graph & Map.mapWithKey (modify $ isOptimizedMode mode) -- & inspect else graph @@ -161,7 +161,7 @@ source mode mains = LamderaBackend else if mains & mainsInclude ["Frontend", "LFR"] then LamderaFrontend - else if mains & mainsInclude ["LocalDev"] then + else if mains & mainsInclude ["Lamdera.Live"] then LamderaLive else NotLamdera @@ -477,7 +477,7 @@ injections outputType mode = shouldProxy = onlyIf (outputType == LamderaLive) [text| - shouldProxy = $$author$$project$$LocalDev$$shouldProxy(msg) + shouldProxy = $$author$$project$$Lamdera$$Live$$shouldProxy(msg) |] in [text| diff --git a/extra/Lamdera/UiSourceMap.hs b/extra/Lamdera/UiSourceMap.hs index 8de7f6b0f..3ed4e4faf 100644 --- a/extra/Lamdera/UiSourceMap.hs +++ b/extra/Lamdera/UiSourceMap.hs @@ -28,7 +28,7 @@ import StandaloneInstances updateDecls :: Module.Canonical -> Can.Decls -> Can.Decls updateDecls fileName decls = case fileName of - Module.Canonical (Name "author" "project") "LocalDev" -> + Module.Canonical (Name "author" "project") "Lamdera.Live" -> decls Module.Canonical (Name "author" "project") _ -> diff --git a/extra/LocalDev/elmjutsu-config.json b/extra/LocalDev/elmjutsu-config.json index 611deb994..a3f0ce2c5 100644 --- a/extra/LocalDev/elmjutsu-config.json +++ b/extra/LocalDev/elmjutsu-config.json @@ -1 +1 @@ -{"mainPaths":["runtime-src/LocalDev.elm"]} +{"mainPaths":["runtime-src/Lamdera/Live.elm"]} diff --git a/extra/LocalDev/readme.md b/extra/LocalDev/readme.md index 0d76b0b9d..e1c9fe1ac 100644 --- a/extra/LocalDev/readme.md +++ b/extra/LocalDev/readme.md @@ -1,6 +1,6 @@ -The runtime-src/LocalDev.elm file is what gets paged in as the entry point for `lamdera live`. +The runtime-src/Lamdera/Live.elm file is what gets paged in as the entry point for `lamdera live`. It may import other files from the runtime-src directory. The files in tooling-src are not used in the final compiler build, they are only here -to assist editor tooling when developing runtime-src/LocalDev.elm. +to assist editor tooling when developing runtime-src/Lamdera/Live.elm. diff --git a/extra/LocalDev/runtime-src/LocalDev.elm b/extra/LocalDev/runtime-src/Lamdera/Live.elm similarity index 99% rename from extra/LocalDev/runtime-src/LocalDev.elm rename to extra/LocalDev/runtime-src/Lamdera/Live.elm index 7bac6a97b..2db3a95e3 100644 --- a/extra/LocalDev/runtime-src/LocalDev.elm +++ b/extra/LocalDev/runtime-src/Lamdera/Live.elm @@ -1,4 +1,4 @@ -port module LocalDev exposing (main) +port module Lamdera.Live exposing (main) {- diff --git a/extra/dist/live.js b/extra/dist/live.js index d4cd3b5c6..b4143b3b9 100644 --- a/extra/dist/live.js +++ b/extra/dist/live.js @@ -1,4 +1,4 @@ -(()=>{var F=Object.create;var E=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Z=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $(t))!V.call(e,n)&&n!==i&&E(e,n,{get:()=>t[n],enumerable:!(r=P(t,n))||r.enumerable});return e};var q=(e,t,i)=>(i=e!=null?F(H(e)):{},Z(t||!e||!e.__esModule?E(i,"default",{value:e,enumerable:!0}):i,e));var D=W((L,_)=>{(function(e){var t;if(typeof define=="function"&&define.amd&&(define(e),t=!0),typeof L=="object"&&(_.exports=e(),t=!0),!t){var i=window.Cookies,r=window.Cookies=e();r.noConflict=function(){return window.Cookies=i,r}}})(function(){function e(){for(var r=0,n={};r"u")){f=e({path:"/"},n.defaults,f),typeof f.expires=="number"&&(f.expires=new Date(new Date*1+f.expires*864e5)),f.expires=f.expires?f.expires.toUTCString():"";try{var m=JSON.stringify(c);/^[\{\[]/.test(m)&&(c=m)}catch(h){}c=r.write?r.write(c,o):encodeURIComponent(String(c)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),o=encodeURIComponent(String(o)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var a="";for(var l in f)f[l]&&(a+="; "+l,f[l]!==!0&&(a+="="+f[l].split(";")[0]));return document.cookie=o+"="+c+a}}function u(o,c){if(!(typeof document>"u")){for(var f={},m=document.cookie?document.cookie.split("; "):[],a=0;a{p!==""&&(g=!0,v!==null&&v-new Date<-1e4&&window.location.reload(),v=null),s!==null&&s.ports.setLiveStatus.send(g),N()},onmessage:e=>{M(e),p!==""&&g===!1&&(g=!0,N())},onreconnect:e=>{},onmaximum:e=>{},onclose:e=>{g=!1,v=v||new Date,s!==null&&s.ports.setLiveStatus.send(g)},onerror:e=>{g=!1,v=v||new Date,s!==null&&s.ports.setLiveStatus.send(g)}}),N=function(){if(g)for(;B.length>0;){var e=B.pop();e.t=="ToBackend"&&(e.c=p),R.json(e)}},T=function(e){g?R.json(e):B.unshift(e)},G=function(){if(s!==null)for(;C.length>0;){var e=C.pop();s.ports[e.n].send(e.a)}},J=function(e,t){s!==null?s.ports[e].send(t):C.unshift({n:e,a:t})};window.setupApp=function(e,t){function i(){if(s===null){if(e!=="LocalDev"){console.warn("Not a Lamdera app, loading as normal Elm."),s=e.split(".").reduce((r,n)=>r[n],Elm).init({node:document.getElementById(t)}),document.getElementById(t)&&(document.getElementById(t).innerText="This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console.");return}s=Elm[e].init({node:document.getElementById(t),flags:{c:p,s:x,nt:y,b:U}}),document.getElementById(t)&&(document.getElementById(t).innerText="This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console."),s.ports.send_ToFrontend.subscribe(function(r){r.b!==null&&(r.b=A(r.b)),T(r)}),s.ports.save_BackendModel.subscribe(function(r){r.b=A(r.b),r.f=r.f?"force":"",T(r)}),s.ports.send_EnvMode.subscribe(function(r){T(r)}),s.ports.send_ToBackend.subscribe(function(r){var n=A(r);T({t:"ToBackend",s:x,c:p,b:n})}),typeof elmPkgJsIncludes<"u"&&elmPkgJsIncludes.init(s),G()}}M=function(r){let n=null;try{n=JSON.parse(r.data)}catch(o){console.log(o,r.data);return}switch(n.t){case"r":document.location.reload();break;case"s":p=n.c,s!==null&&s.ports.setClientId.send(p),I=n.l,p==I?(y="l",s!==null&&s.ports.setNodeTypeLeader.send(!0)):(y="f",s!==null&&s.ports.setNodeTypeLeader.send(!1)),i();break;case"e":I=n.l,p==I?(y="l",s!==null&&s.ports.setNodeTypeLeader.send(!0)):(y="f",s!==null&&s.ports.setNodeTypeLeader.send(!1));break;case"ToBackend":s.ports.receive_ToBackend.send([n.s,n.c,k(n.b)]);break;case"ToFrontend":(n.c==p||n.c==x||n.c=="b")&&(n.c=p,n.b!==null&&(n.b=k(n.b)),s.ports.receive_ToFrontend.send(n));break;case"p":s===null?U=k(n.b):s.ports.receive_BackendModel.send(k(n.b));break;case"q":try{var d=!1,u=null;let o=function(c){c.r===n.r&&(u=c,d=!0)};s.ports.rpcOut.subscribe(o),n.i&&(n.i=JSON.parse(n.i)),n.j&&(n.j=JSON.parse(n.j)),s.ports.rpcIn.send(n),ee(()=>d,1e4).then(c=>{s.ports.rpcOut.unsubscribe(o),T(u)}).catch(c=>{console.log(c),s.ports.rpcOut.unsubscribe(o)})}catch(o){console.log(o),console.log(n)}break;case"c":J("onConnection",{s:n.s,c:n.c});break;case"d":J("onDisconnection",{s:n.s,c:n.c});break;case"x":break;default:console.warn("unexpected msg",n)}}};function K(e,t=0){return Math.abs(Math.floor(Math.random()*Math.floor(e))-t)}function Q(){let e=S.get("sid");if(typeof e>"u"){let t=K(1e6,1e4).toString().padEnd(40,"c04b8f7b594cdeedebc2a8029b82943b0a620815");return S.set("sid",t,{sameSite:"lax"}),t}else return e}var X=50,Y=5e3;function ee(e,t,i){var r=i||X,n=t||Y;return new Promise(function(u,o){var c,f,m,a;m=function(){clearTimeout(f),clearInterval(c)},a=function(){var h;try{h=e(),h?(m(),u(h)):c=setTimeout(a,r)}catch(w){m(),o(w)}},c=setTimeout(a,r),f=setTimeout(function(){m(),o(new Error("Timed out after waiting for "+n+"ms"))},n)})}function A(e){let t="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=new Uint8Array(e.buffer),n=r.byteLength,d=n%3,u=n-d,o,c,f,m,a;for(let l=0;l>18,c=(a&258048)>>12,f=(a&4032)>>6,m=a&63,t+=i[o]+i[c]+i[f]+i[m];return d===1?(a=r[u],o=(a&252)>>2,c=(a&3)<<4,t+="".concat(i[o]).concat(i[c],"==")):d===2&&(a=r[u]<<8|r[u+1],o=(a&64512)>>10,c=(a&1008)>>4,f=(a&15)<<2,t+="".concat(i[o]).concat(i[c]).concat(i[f],"=")),t}function k(e){return new DataView(ne.decodeArrayBuffer(e))}var ne={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",decodeArrayBuffer:function(e){e=this.removePaddingChars(e);var t=e.length/4*3,i=new ArrayBuffer(t);return this.decode(e,i),i},removePaddingChars:function(e){var t=this._keyStr.indexOf(e.charAt(e.length-1)),i=this._keyStr.indexOf(e.charAt(e.length-2));return i==64&&t==64?e.substring(0,e.length-2):t==64?e.substring(0,e.length-1):e},decode:function(e,t){var i=parseInt(e.length/4*3,10),r,n,d,u,o,c,f,m,a=0,l=0;for(t?r=new Uint8Array(t):r=new Uint8Array(i),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),a=0;a>4,d=(c&15)<<4|f>>2,u=(f&3)<<6|m,r[a]=n,f!=64&&(r[a+1]=d),m!=64&&(r[a+2]=u);return r}};})(); +(()=>{var F=Object.create;var E=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var W=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var Z=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of $(t))!V.call(n,e)&&e!==i&&E(n,e,{get:()=>t[e],enumerable:!(o=P(t,e))||o.enumerable});return n};var q=(n,t,i)=>(i=n!=null?F(H(n)):{},Z(t||!n||!n.__esModule?E(i,"default",{value:n,enumerable:!0}):i,n));var U=W((L,_)=>{(function(n){var t;if(typeof define=="function"&&define.amd&&(define(n),t=!0),typeof L=="object"&&(_.exports=n(),t=!0),!t){var i=window.Cookies,o=window.Cookies=n();o.noConflict=function(){return window.Cookies=i,o}}})(function(){function n(){for(var o=0,e={};o"u")){d=n({path:"/"},e.defaults,d),typeof d.expires=="number"&&(d.expires=new Date(new Date*1+d.expires*864e5)),d.expires=d.expires?d.expires.toUTCString():"";try{var m=JSON.stringify(c);/^[\{\[]/.test(m)&&(c=m)}catch(h){}c=o.write?o.write(c,r):encodeURIComponent(String(c)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),r=encodeURIComponent(String(r)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var l in d)d[l]&&(f+="; "+l,d[l]!==!0&&(f+="="+d[l].split(";")[0]));return document.cookie=r+"="+c+f}}function u(r,c){if(!(typeof document>"u")){for(var d={},m=document.cookie?document.cookie.split("; "):[],f=0;f{p!==""&&(g=!0,v!==null&&v-new Date<-1e4&&window.location.reload(),v=null),s!==null&&s.ports.setLiveStatus.send(g),N()},onmessage:n=>{M(n),p!==""&&g===!1&&(g=!0,N())},onreconnect:n=>{},onmaximum:n=>{},onclose:n=>{g=!1,v=v||new Date,s!==null&&s.ports.setLiveStatus.send(g)},onerror:n=>{g=!1,v=v||new Date,s!==null&&s.ports.setLiveStatus.send(g)}}),N=function(){if(g)for(;B.length>0;){var n=B.pop();n.t=="ToBackend"&&(n.c=p),R.json(n)}},T=function(n){g?R.json(n):B.unshift(n)},G=function(){if(s!==null)for(;C.length>0;){var n=C.pop();s.ports[n.n].send(n.a)}},J=function(n,t){s!==null?s.ports[n].send(t):C.unshift({n,a:t})};window.setupApp=function(n,t){function i(){if(s!==null)return;let o=n.split(".").reduce((e,a)=>e[a],Elm);if(n!=="Lamdera.Live"){console.warn("Not a Lamdera app, loading as normal Elm."),s=o.init({node:document.getElementById(t)}),document.getElementById(t)&&(document.getElementById(t).innerText="This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console.");return}s=o.init({node:document.getElementById(t),flags:{c:p,s:x,nt:y,b:D}}),document.getElementById(t)&&(document.getElementById(t).innerText="This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console."),s.ports.send_ToFrontend.subscribe(function(e){e.b!==null&&(e.b=A(e.b)),T(e)}),s.ports.save_BackendModel.subscribe(function(e){e.b=A(e.b),e.f=e.f?"force":"",T(e)}),s.ports.send_EnvMode.subscribe(function(e){T(e)}),s.ports.send_ToBackend.subscribe(function(e){var a=A(e);T({t:"ToBackend",s:x,c:p,b:a})}),typeof elmPkgJsIncludes<"u"&&elmPkgJsIncludes.init(s),G()}M=function(o){let e=null;try{e=JSON.parse(o.data)}catch(r){console.log(r,o.data);return}switch(e.t){case"r":document.location.reload();break;case"s":p=e.c,s!==null&&s.ports.setClientId.send(p),I=e.l,p==I?(y="l",s!==null&&s.ports.setNodeTypeLeader.send(!0)):(y="f",s!==null&&s.ports.setNodeTypeLeader.send(!1)),i();break;case"e":I=e.l,p==I?(y="l",s!==null&&s.ports.setNodeTypeLeader.send(!0)):(y="f",s!==null&&s.ports.setNodeTypeLeader.send(!1));break;case"ToBackend":s.ports.receive_ToBackend.send([e.s,e.c,k(e.b)]);break;case"ToFrontend":(e.c==p||e.c==x||e.c=="b")&&(e.c=p,e.b!==null&&(e.b=k(e.b)),s.ports.receive_ToFrontend.send(e));break;case"p":s===null?D=k(e.b):s.ports.receive_BackendModel.send(k(e.b));break;case"q":try{var a=!1,u=null;let r=function(c){c.r===e.r&&(u=c,a=!0)};s.ports.rpcOut.subscribe(r),e.i&&(e.i=JSON.parse(e.i)),e.j&&(e.j=JSON.parse(e.j)),s.ports.rpcIn.send(e),ee(()=>a,1e4).then(c=>{s.ports.rpcOut.unsubscribe(r),T(u)}).catch(c=>{console.log(c),s.ports.rpcOut.unsubscribe(r)})}catch(r){console.log(r),console.log(e)}break;case"c":J("onConnection",{s:e.s,c:e.c});break;case"d":J("onDisconnection",{s:e.s,c:e.c});break;case"x":break;default:console.warn("unexpected msg",e)}}};function K(n,t=0){return Math.abs(Math.floor(Math.random()*Math.floor(n))-t)}function Q(){let n=S.get("sid");if(typeof n>"u"){let t=K(1e6,1e4).toString().padEnd(40,"c04b8f7b594cdeedebc2a8029b82943b0a620815");return S.set("sid",t,{sameSite:"lax"}),t}else return n}var X=50,Y=5e3;function ee(n,t,i){var o=i||X,e=t||Y;return new Promise(function(u,r){var c,d,m,f;m=function(){clearTimeout(d),clearInterval(c)},f=function(){var h;try{h=n(),h?(m(),u(h)):c=setTimeout(f,o)}catch(w){m(),r(w)}},c=setTimeout(f,o),d=setTimeout(function(){m(),r(new Error("Timed out after waiting for "+e+"ms"))},e)})}function A(n){let t="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(n.buffer),e=o.byteLength,a=e%3,u=e-a,r,c,d,m,f;for(let l=0;l>18,c=(f&258048)>>12,d=(f&4032)>>6,m=f&63,t+=i[r]+i[c]+i[d]+i[m];return a===1?(f=o[u],r=(f&252)>>2,c=(f&3)<<4,t+="".concat(i[r]).concat(i[c],"==")):a===2&&(f=o[u]<<8|o[u+1],r=(f&64512)>>10,c=(f&1008)>>4,d=(f&15)<<2,t+="".concat(i[r]).concat(i[c]).concat(i[d],"=")),t}function k(n){return new DataView(ne.decodeArrayBuffer(n))}var ne={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",decodeArrayBuffer:function(n){n=this.removePaddingChars(n);var t=n.length/4*3,i=new ArrayBuffer(t);return this.decode(n,i),i},removePaddingChars:function(n){var t=this._keyStr.indexOf(n.charAt(n.length-1)),i=this._keyStr.indexOf(n.charAt(n.length-2));return i==64&&t==64?n.substring(0,n.length-2):t==64?n.substring(0,n.length-1):n},decode:function(n,t){var i=parseInt(n.length/4*3,10),o,e,a,u,r,c,d,m,f=0,l=0;for(t?o=new Uint8Array(t):o=new Uint8Array(i),n=n.replace(/[^A-Za-z0-9\+\/\=]/g,""),f=0;f>4,a=(c&15)<<4|d>>2,u=(d&3)<<6|m,o[f]=e,d!=64&&(o[f+1]=a),m!=64&&(o[f+2]=u);return o}};})(); /*! Bundled license information: js-cookie/src/js.cookie.js: diff --git a/extra/live.js b/extra/live.js index 53f229548..fd2b38952 100644 --- a/extra/live.js +++ b/extra/live.js @@ -108,16 +108,17 @@ window.setupApp = function(name, elid) { if (app !== null) { return } // Don't init when already initialised // console.log(`booting with`, { c: clientId, s: sessionId, nt: nodeType, b: initBackendModel }) - if (name !== "LocalDev") { + const elm = name.split('.').reduce((o,i)=> o[i], Elm) + if (name !== "Lamdera.Live") { console.warn('Not a Lamdera app, loading as normal Elm.') - app = name.split('.').reduce((o,i)=> o[i], Elm).init({ node: document.getElementById(elid) }) + app = elm.init({ node: document.getElementById(elid) }) if (document.getElementById(elid)) { document.getElementById(elid).innerText = 'This is a headless program, meaning there is nothing to show here.\n\nI started the program anyway though, and you can access it as `app` in the developer console.' } return; } - app = Elm[name].init({ + app = elm.init({ node: document.getElementById(elid), flags: { c: clientId, s: sessionId, nt: nodeType, b: initBackendModel } }) diff --git a/terminal/src/Develop.hs b/terminal/src/Develop.hs index 6afc9ae52..8464b9531 100644 --- a/terminal/src/Develop.hs +++ b/terminal/src/Develop.hs @@ -136,7 +136,7 @@ runWithRoot root (Flags maybePort) = <|> Live.openEditorHandler root <|> Live.serveExperimental root <|> serveAssets -- Compiler packaged static files - <|> Live.serveUnmatchedUrlsToIndex root (serveElm sentryCache) -- Everything else without extensions goes to Lamdera LocalDev harness + <|> Live.serveUnmatchedUrlsToIndex root (serveElm sentryCache) -- Everything else without extensions goes to Lamdera.Live harness <|> error404 -- Will get hit for any non-matching extensioned paths i.e. /hello.blah