on master help sign in
Update for most recent Json API
0a27d89Evan Czaplicki
src/AST/Variable.hs+18−7
@@ -32,45 +32,56 @@ is :: [String] -> String -> Canonical -> Bool
32is home name var =
32is home name var =
33 var == Canonical (Module home) name
33 var == Canonical (Module home) name
34
34
35−isJavaScript :: Canonical -> Bool
36−isJavaScript = is ["JavaScript"] "Value"
37
35
38isJson :: Canonical -> Bool
36isJson :: Canonical -> Bool
39−isJson = is ["Json"] "Value"
37+isJson =
38+ is ["Json", "Encode"] "Json"
39+
40
40
41isMaybe :: Canonical -> Bool
41isMaybe :: Canonical -> Bool
42+isMaybe =
42−isMaybe = is ["Maybe"] "Maybe"
43+ is ["Maybe"] "Maybe"
43
44
44isArray :: Canonical -> Bool
45isArray :: Canonical -> Bool
46+isArray =
45−isArray = is ["Array"] "Array"
47+ is ["Array"] "Array"
48+
46
49
47isSignal :: Canonical -> Bool
50isSignal :: Canonical -> Bool
51+isSignal =
48−isSignal = is ["Signal"] "Signal"
52+ is ["Signal"] "Signal"
53+
49
54
50isList :: Canonical -> Bool
55isList :: Canonical -> Bool
51isList v =
56isList v =
52 v == Canonical BuiltIn "_List"
57 v == Canonical BuiltIn "_List"
53
58
59+
54isTuple :: Canonical -> Bool
60isTuple :: Canonical -> Bool
55isTuple v =
61isTuple v =
56 case v of
62 case v of
57 Canonical BuiltIn name -> Help.isTuple name
63 Canonical BuiltIn name -> Help.isTuple name
58 _ -> False
64 _ -> False
59
65
66+
60isPrimitive :: Canonical -> Bool
67isPrimitive :: Canonical -> Bool
61isPrimitive v =
68isPrimitive v =
62 case v of
69 case v of
63 Canonical BuiltIn name -> name `elem` ["Int","Float","String","Bool"]
70 Canonical BuiltIn name -> name `elem` ["Int","Float","String","Bool"]
64 _ -> False
71 _ -> False
65
72
73+
66isPrim :: String -> Canonical -> Bool
74isPrim :: String -> Canonical -> Bool
67isPrim prim v =
75isPrim prim v =
68 case v of
76 case v of
69 Canonical BuiltIn name -> name == prim
77 Canonical BuiltIn name -> name == prim
70 _ -> False
78 _ -> False
71
79
80+
72isText :: Canonical -> Bool
81isText :: Canonical -> Bool
82+isText =
73−isText = is ["Text"] "Text"
83+ is ["Text"] "Text"
84+
74
85
75class ToString a where
86class ToString a where
76 toString :: a -> String
87 toString :: a -> String
src/Generate/JavaScript/Ports.hs+1−4
@@ -73,11 +73,8 @@ inc tipe x =
73 from checks = check x checks x
73 from checks = check x checks x
74
74
75 Type name
75 Type name
76− | Var.isJavaScript name ->
77− x
78−
79 | Var.isJson name ->
76 | Var.isJson name ->
80− V.value ["Native","Json"] "fromJS" <| x
77+ x
81
78
82 | Var.isTuple name ->
79 | Var.isTuple name ->
83 incomingTuple [] x
80 incomingTuple [] x
src/Type/ExtraChecks.hs+1−1
@@ -63,7 +63,7 @@ portTypes expr =
63 ST.Aliased _ t -> valid t
63 ST.Aliased _ t -> valid t
64
64
65 ST.Type v ->
65 ST.Type v ->
66− case any ($ v) [ V.isJson, V.isPrimitive, V.isTuple, V.isJavaScript ] of
66+ case any ($ v) [ V.isJson, V.isPrimitive, V.isTuple ] of
67 True -> return ()
67 True -> return ()
68 False -> err "an unsupported type"
68 False -> err "an unsupported type"
69
69