Skip to content

Commit f3db2f2

Browse files
committed
Add JS template
1 parent 2b9424b commit f3db2f2

File tree

3 files changed

+89
-0
lines changed

3 files changed

+89
-0
lines changed

NodeTemplate.elm

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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

NodeTemplate.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
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)));

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
Dependencies: `elm-make`, `node`, [`entr`](http://entrproject.org/)
22

33
`./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`

0 commit comments

Comments
 (0)