From a5dbc7519a70d427ec4d437010d21ca56fe9eef9 Mon Sep 17 00:00:00 2001 From: Daniel Sokil Date: Fri, 14 Sep 2018 18:39:41 -0400 Subject: [PATCH 1/3] Spelling and Docs update --- source/Http.mint | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/Http.mint b/source/Http.mint index d1941f5..8458207 100644 --- a/source/Http.mint +++ b/source/Http.mint @@ -22,7 +22,7 @@ record Http.ErrorResponse { /* Represents the possible failures of an HTTP request. */ enum Http.Error { - /* The request cannot be loaded because of a network faliure */ + /* The request cannot be loaded because of a network failure */ NetworkError /* The client (browser) aborted the request */ @@ -89,7 +89,7 @@ module Http { } /* - Creates a request record where the method is DELETE + Creates a request record where the method is GET request = Http.get("https://httpbin.org/get") @@ -103,7 +103,7 @@ module Http { } /* - Creates a request record where the method is DELETE + Creates a request record where the method is PUT request = Http.put("https://httpbin.org/put") @@ -117,7 +117,7 @@ module Http { } /* - Creates a request record where the method is DELETE + Creates a request record where the method is POST request = Http.post("https://httpbin.org/post") From 1088841ce93134ea7324bf15d3c323269937ad1a Mon Sep 17 00:00:00 2001 From: Daniel Sokil Date: Fri, 14 Sep 2018 20:29:22 -0400 Subject: [PATCH 2/3] Add Resource Module --- source/Resource.mint | 86 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 source/Resource.mint diff --git a/source/Resource.mint b/source/Resource.mint new file mode 100644 index 0000000..0be0970 --- /dev/null +++ b/source/Resource.mint @@ -0,0 +1,86 @@ +/* Functions for prebrowsing and resource hints. */ +module Resource { + /* + Pre-loads a given URL with a type of resource as soon as possible. + + Resource.preLoad("https://example.com/fonts/font.woff", "font") + + Resource Types: https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content#What_types_of_content_can_be_preloaded + */ + fun preLoad (url : String, type : String) : Promise(Never, Void) { + ` + (() => { + var preLoadLink = document.createElement("link"); + preLoadLink.href = url; + preLoadLink.rel = "preload"; + preLoadLink.as = type; + document.head.appendChild(preLoadLink); + })() + ` + } + + /* + Pre-fetches a given URL with a low priority. + + Resource.preFetch("page-2.html") + */ + fun preFetch (url : String) : Promise(Never, Void) { + ` + (() => { + var preFetchLink = document.createElement("link"); + preFetchLink.href = url; + preFetchLink.rel = "prefetch"; + document.head.appendChild(preFetchLink); + })() + ` + } + + /* + Pre-fetches DNS of a given URL in the background. + + Resource.preFetchDns("page-2.html") + */ + fun preFetchDns (url : String) : Promise(Never, Void) { + ` + (() => { + var preFetchDnsLink = document.createElement("link"); + preFetchDnsLink.href = url; + preFetchDnsLink.rel = "dns-prefetch"; + document.head.appendChild(preFetchDnsLink); + })() + ` + } + + /* + preRender tells the browser to download the entire page in the background. + + Resource.preRender("http://example.com/services.html") + */ + fun preRender (url : String) : Promise(Never, Void) { + ` + (() => { + var preRenderLink = document.createElement("link"); + preRenderLink.href = url; + preRenderLink.rel = "prerender"; + document.head.appendChild(preRenderLink); + })() + ` + } + + /* + Establish a connection with given URL removing DNS lookup, + TCP handshake, and TLS negotiation round-trip for HTTPS. + + Resource.preConnect("https://cdn.domain.com") + */ + fun preConnect (url : String) : Promise(Never, Void) { + ` + (() => { + var preConnectLink = document.createElement("link"); + preConnectLink.href = url; + preConnectLink.rel = "preconnect"; + document.head.appendChild(preConnectLink); + })() + ` + } +} From 03abeb405383f3490182447dea43ca4671463fc9 Mon Sep 17 00:00:00 2001 From: Daniel Sokil Date: Fri, 14 Sep 2018 20:35:52 -0400 Subject: [PATCH 3/3] Spelling Fixes --- source/Html.mint | 2 +- source/Map.mint | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/Html.mint b/source/Html.mint index f5d5c86..6c89ce1 100644 --- a/source/Html.mint +++ b/source/Html.mint @@ -1,6 +1,6 @@ module Html { /* - Returns an empty Html node. It is useful for example if you dont to + Returns an empty Html node. It is useful for example if you dont want to render something conditionally. if (Array.isEmpty(items)) { diff --git a/source/Map.mint b/source/Map.mint index 9b6dff5..b878168 100644 --- a/source/Map.mint +++ b/source/Map.mint @@ -6,7 +6,7 @@ module Map { } /* - Sets the given value to the kiven key in the map. + Sets the given value to the given key in the map. Map.empty() |> Map.set("key", "value") @@ -47,7 +47,7 @@ module Map { } /* - Merges two maps together where the second has the precendence. + Merges two maps together where the second has the precedence. a = Map.empty()