[Ur] Difficulty determining what functions to "wrap", using JavaScript FFI, for certain existing JavaScript libraries

Sergey Mironov grrwlf at gmail.com
Sun Aug 2 09:57:03 EDT 2015


In fact, not every function is callable via Ur/Web JS FFI. Same is
true for the C FFI as well. Ur/Web may not always have correct
representations for specific types of arguments anr/or return values
of a JS function. To address this, you may write your own JavaSript
file containing wrapper functions  which you know are 100% callable,
which would translate Ur/Web data into data required by your target
library. Urweb-persona library may be a nice example of the approach.
This lib contains code which not only calls third-party Persona JS
functions, but also passes Ur/Web callbacks there.

Regards,
Sergey

2015-08-02 4:45 GMT+03:00 Stefan Scott Alexander <stefanscottalexx at gmail.com>:
> I understand that it is necessary to use Ur/Web's JavaScript FFI in order to
> call an existing JavaScript library, and I have to declare the functions in
> a URS file.
>
> The difficulty I have is that when I look at certain JavaScript libraries, I
> have difficulty determining what functions are at "top-level" in the JS
> file, to declare in the URS file.
>
> For example, here are two JavaScript libraries which implement a DatePicker:
>
> https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js
>
> https://github.com/dbushell/Pikaday/blob/master/pikaday.js
>
> They both appear to have a single top-level "factory" function (?),
> apparently anonymous (?), enclosed in parentheses.
>
> Then they both return a bunch of things in { ... } - var declarations and
> function declarations etc. But these things aren't at "top-level" so I doubt
> it would make much sense to refer to such function declarations from a URS
> file.
>
> Are these kind of JavaScript libraries (involving a single, anonymous
> top-level function) even callable via Ur/Web's FFI?
>
> _______________________________________________
> Ur mailing list
> Ur at impredicative.com
> http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
>



More information about the Ur mailing list