summaryrefslogtreecommitdiff
path: root/elm/Lib/Ffi.elm
blob: c073b4a6014cecae3fecbf528b82909d1af54095 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- Elm 0.19: "We've removed all Native modules and plugged all XSS vectors,
--            it's now impossible to talk with Javascript other than with ports!"
-- Me: "Oh yeah? I'll just run sed over the generated Javascript!"

-- This module is a hack to work around the lack of an FFI (Foreign Function
-- Interface) in Elm. The functions in this module are stubs, their
-- implementations are replaced by the Makefile with calls to
-- window.elmFfi_<name> and the actual implementations are in Ffi.js.
--
-- Use sparingly, all of this will likely break in future Elm versions.
module Lib.Ffi exposing (..)

import Html
import Html.Attributes
import Browser.Dom
import Task

-- Set the innerHTML attribute of a node
innerHtml : String -> Html.Attribute msg
innerHtml s = Html.Attributes.title ""

-- Like Browser.Dom.focus, except it can call any function (without arguments)
elemCall : String -> String -> Task.Task Browser.Dom.Error ()
elemCall s = Browser.Dom.focus