File tree Expand file tree Collapse file tree 3 files changed +89
-0
lines changed Expand file tree Collapse file tree 3 files changed +89
-0
lines changed Original file line number Diff line number Diff line change
1
+ port module Year201X.DayXX exposing (..)
2
+
3
+ import Json.Decode
4
+
5
+
6
+ port elmAsks : String -> Cmd msg
7
+
8
+
9
+ port jsAnswers : (String -> msg ) -> Sub msg
10
+
11
+
12
+ main : Program Never Model Msg
13
+ main =
14
+ Platform . program
15
+ { init = init1
16
+ , update = update1
17
+
18
+ -- { init = init2
19
+ -- , update = update2
20
+ , subscriptions = subscriptions
21
+ }
22
+
23
+
24
+ type alias Model =
25
+ Int
26
+
27
+
28
+ type Msg
29
+ = JsAnswers String
30
+
31
+
32
+ init1 : ( Model , Cmd Msg )
33
+ init1 =
34
+ ( initModel1, elmAsks ( makeString initModel. id initModel. counter) )
35
+
36
+
37
+ initModel1 : Model
38
+ initModel1 =
39
+ 0
40
+
41
+
42
+ init2 : ( Model , Cmd Msg )
43
+ init2 =
44
+ ( initModel2, elmAsks ( makeString initModel. id initModel. counter) )
45
+
46
+
47
+ initModel2 : Model
48
+ initModel2 =
49
+ 0
50
+
51
+
52
+ update1 : Msg -> Model -> ( Model , Cmd Msg )
53
+ update1 msg model =
54
+ case msg of
55
+ JsAnswers hash ->
56
+ ( model, Cmd . none )
57
+
58
+
59
+ toInt : String -> Int
60
+ toInt string =
61
+ string
62
+ |> String . toInt
63
+ |> Result . mapError ( \ _ -> Debug . crash " Wrong input!" )
64
+ |> Result . withDefault 0
65
+
66
+
67
+ update2 : Msg -> Model -> ( Model , Cmd Msg )
68
+ update2 msg model =
69
+ case msg of
70
+ JsAnswers hash ->
71
+ ( model, Cmd . none )
72
+
73
+
74
+ subscriptions : Model -> Sub Msg
75
+ subscriptions model =
76
+ jsAnswers JsAnswers
77
+
78
+
79
+ prepareForPort : String -> String
80
+ prepareForPort string =
81
+ string
Original file line number Diff line number Diff line change
1
+ const someDependency = require ( 'some-dependency' ) ;
2
+ const Elm = require ( '../js/201X-XX.js' ) ;
3
+ const app = Elm . Year201X . DayXX . worker ( ) ;
4
+ app . ports . elmAsks . subscribe ( data => app . ports . jsAnswers . send ( someDependency ( data ) ) ) ;
Original file line number Diff line number Diff line change 1
1
Dependencies: ` elm-make ` , ` node ` , [ ` entr ` ] ( http://entrproject.org/ )
2
2
3
3
` ./watch 2016 01 ` for autorun when developing ... or just once: ` ./run 2016 01 `
4
+
5
+ For puzzles that need Node interop:
6
+
7
+ ` ./node_run 2016 01 `
You can’t perform that action at this time.
0 commit comments