Replace <> with interpolate QQ
This commit is contained in:
parent
ce43317eeb
commit
a50d36c786
4 changed files with 52 additions and 42 deletions
|
@ -42,6 +42,7 @@ library
|
|||
, lens >= 4
|
||||
, servant == 0.4.*
|
||||
, text
|
||||
, interpolate
|
||||
hs-source-dirs: src
|
||||
default-language: Haskell2010
|
||||
ghc-options: -Wall
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{-# LANGUAGE QuasiQuotes #-}
|
||||
module Servant.JQuery.Angular where
|
||||
|
||||
import Servant.JQuery.Internal
|
||||
import Control.Lens
|
||||
import Data.List
|
||||
import Data.Monoid
|
||||
import Data.String.Interpolate
|
||||
|
||||
data AngularOptions = AngularOptions
|
||||
{ serviceName :: String -- ^ When generating code with wrapInService,
|
||||
|
@ -15,8 +17,8 @@ data AngularOptions = AngularOptions
|
|||
defAngularOptions :: AngularOptions
|
||||
defAngularOptions = AngularOptions
|
||||
{ serviceName = ""
|
||||
, prologue = \svc m -> m <> "service('" <> svc <> "', function($http) {\n"
|
||||
<> " return ({"
|
||||
, prologue = \svc m -> [i|#{m}service('#{svc}', function($http) {
|
||||
return ({|]
|
||||
, epilogue = "});\n});\n"
|
||||
}
|
||||
|
||||
|
@ -46,16 +48,17 @@ generateAngularJS ngOpts = generateAngularJSWith ngOpts defCommonGeneratorOption
|
|||
|
||||
-- js codegen using $http service from Angular
|
||||
generateAngularJSWith :: AngularOptions -> CommonGeneratorOptions -> AjaxReq -> String
|
||||
generateAngularJSWith ngOptions opts req = "\n" <>
|
||||
fname <> fsep <> " function(" <> argsStr <> ")\n"
|
||||
<> "{\n"
|
||||
<> " return $http(\n"
|
||||
<> " { url: " <> url <> "\n"
|
||||
<> dataBody
|
||||
<> reqheaders
|
||||
<> " , method: '" <> method <> "'\n"
|
||||
<> " });\n"
|
||||
<> "}\n"
|
||||
generateAngularJSWith ngOptions opts req = [i|
|
||||
#{fname}#{fsep} function(#{argsStr})
|
||||
{
|
||||
return $http(
|
||||
{ url: #{url}
|
||||
#{dataBody}
|
||||
#{reqheaders}
|
||||
, method: '#{method}'
|
||||
});
|
||||
}
|
||||
|]
|
||||
|
||||
where argsStr = intercalate ", " args
|
||||
args = http
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{-# LANGUAGE QuasiQuotes #-}
|
||||
module Servant.JQuery.JQuery where
|
||||
|
||||
import Servant.JQuery.Internal
|
||||
import Control.Lens
|
||||
import Data.List
|
||||
import Data.Monoid
|
||||
import Data.String.Interpolate
|
||||
|
||||
-- | js codegen using JQuery using default options
|
||||
generateJQueryJS :: AjaxReq -> String
|
||||
|
@ -11,18 +13,19 @@ generateJQueryJS = generateJQueryJSWith defCommonGeneratorOptions
|
|||
|
||||
-- | js codegen using JQuery
|
||||
generateJQueryJSWith :: CommonGeneratorOptions -> AjaxReq -> String
|
||||
generateJQueryJSWith opts req = "\n" <>
|
||||
fname <> " = function(" <> argsStr <> ")\n"
|
||||
<> "{\n"
|
||||
<> " $.ajax(\n"
|
||||
<> " { url: " <> url <> "\n"
|
||||
<> " , success: " <> onSuccess <> "\n"
|
||||
<> dataBody
|
||||
<> reqheaders
|
||||
<> " , error: " <> onError <> "\n"
|
||||
<> " , type: '" <> method <> "'\n"
|
||||
<> " });\n"
|
||||
<> "}\n"
|
||||
generateJQueryJSWith opts req = [i|
|
||||
#{fname} = function(#{argsStr})
|
||||
{
|
||||
$.ajax(
|
||||
{ url: #{url}
|
||||
, success: #{onSuccess}
|
||||
#{dataBody}
|
||||
#{reqheaders}
|
||||
, error: #{onError}
|
||||
, type: '#{method}'
|
||||
});
|
||||
}
|
||||
|]
|
||||
|
||||
where argsStr = intercalate ", " args
|
||||
args = captures
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
{-# LANGUAGE QuasiQuotes #-}
|
||||
module Servant.JQuery.Vanilla where
|
||||
|
||||
import Servant.JQuery.Internal
|
||||
import Control.Lens
|
||||
import Data.List
|
||||
import Data.Monoid
|
||||
import Data.String.Interpolate
|
||||
|
||||
-- | js codegen using XmlHttpRequest using default generation options
|
||||
generateVanillaJS :: AjaxReq -> String
|
||||
|
@ -11,24 +13,25 @@ generateVanillaJS = generateVanillaJSWith defCommonGeneratorOptions
|
|||
|
||||
-- | js codegen using XmlHttpRequest
|
||||
generateVanillaJSWith :: CommonGeneratorOptions -> AjaxReq -> String
|
||||
generateVanillaJSWith opts req = "\n" <>
|
||||
fname <> " = function(" <> argsStr <> ")\n"
|
||||
<> "{\n"
|
||||
<> " var xhr = new XMLHttpRequest();\n"
|
||||
<> " xhr.open('" <> method <> "', " <> url <> ", true);\n"
|
||||
<> reqheaders
|
||||
<> " xhr.onreadystatechange = function (e) {\n"
|
||||
<> " if (xhr.readyState == 4) {\n"
|
||||
<> " var value = JSON.parse(xhr.responseText);\n"
|
||||
<> " if (xhr.status == 200 || xhr.status == 201) {\n"
|
||||
<> " onSuccess(value);\n"
|
||||
<> " } else {\n"
|
||||
<> " onError(value);\n"
|
||||
<> " }\n"
|
||||
<> " }\n"
|
||||
<> " }\n"
|
||||
<> " xhr.send(" <> dataBody <> ");\n"
|
||||
<> "}\n"
|
||||
generateVanillaJSWith opts req = [i|
|
||||
#{fname} = function(#{argsStr})
|
||||
{
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('#{method}', #{url}, true);
|
||||
#{reqheaders}
|
||||
xhr.onreadystatechange = function (e) {
|
||||
if (xhr.readyState == 4) {
|
||||
var value = JSON.parse(xhr.responseText);
|
||||
if (xhr.status == 200 || xhr.status == 201) {
|
||||
#{onSuccess}(value);
|
||||
} else {
|
||||
#{onError}(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.send(#{dataBody});
|
||||
}
|
||||
|]
|
||||
|
||||
where argsStr = intercalate ", " args
|
||||
args = captures
|
||||
|
|
Loading…
Reference in a new issue