Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add namespace when converting to js files #1171

Closed
chengtie opened this issue Nov 13, 2021 · 3 comments · Fixed by #1201
Closed

add namespace when converting to js files #1171

chengtie opened this issue Nov 13, 2021 · 3 comments · Fixed by #1201

Comments

@chengtie
Copy link

chengtie commented Nov 13, 2021

I use js_of_ocaml to convert an analyzer coded in OCaml to analyzejs.js. Then I use <script src="analyzejs.js"></script> in my website to load it, and call the wrapped functions on the website.

Now, I have a new version of the analyzer, let's say analyzejs-new.js. I want some part of the website to use the wrapped functions of analyzejs-new.js, and some part of the website to use the wrapped functions of analyzejs.js. As functions in analyzejs-new.js and analyzejs.js share the same name, I would need namespaces to specify if I want to use f() of analyzejs-new.js or f() of analyzejs.js.

It seems that it is complicated to add namespaces on the side of the website, when loading these 2 files. I would like to know if it is possible to add namespaces on the side of js_of_ocaml when these 2 files are being converted.

Could anyone help?

@hhugo
Copy link
Member

hhugo commented Jan 3, 2022

How do you export f in analyze.js ?

I tried adding an example doing what you want in
c51a161.

Ideally, the logic should be much simpler, I'm working on it.

@chengtie
Copy link
Author

chengtie commented Jan 3, 2022

@hhugo Normally, I use Js.Unsafe.global##.f := Js.wrap_callback(fun ...) to export f in analyze.js.

@hhugo
Copy link
Member

hhugo commented Jan 4, 2022

Can you take a look at the example in #1201 and tell me if that is what you're looking for ?

Note that Js.Unsafe.global##.f := (...) is not going to work if you use --wrap-with-fun, you should use Js_of_ocaml.Js.export "f" (...) instead

hhugo added a commit to hhugo/opam-repository that referenced this issue Jan 24, 2022
…s_of_ocaml-ppx_deriving_json, js_of_ocaml-ppx, js_of_ocaml-lwt and js_of_ocaml-compiler (4.0.0)

CHANGES:

## Features/Changes
* Compiler: add --target-env flag, for JS runtime specific compilation targets (ocsigen/js_of_ocaml#1160).
* Compiler: static evaluation of backend_type (ocsigen/js_of_ocaml#1166)
* Compiler: speedup emitting js files (ocsigen/js_of_ocaml#1174)
* Compiler: simplify (a | 0) >>> 0 into (a >>> 0) (ocsigen/js_of_ocaml#1177)
* Compiler: improve static evaluation of cond (ocsigen/js_of_ocaml#1178)
* Compiler: be more consistent dealing with js vs ocaml strings (ocsigen/js_of_ocaml#984)
* Compiler: Compiler: add BigInt to provided symbols (fix ocsigen/js_of_ocaml#1168) (ocsigen/js_of_ocaml#1191)
* Compiler: use globalThis, drop joo_global_object ocsigen/js_of_ocaml#1193
* Compiler: new -Werror flag to turn wanrings into errors (ocsigen/js_of_ocaml#1222)
* Compiler: make the inlining less agressive, reduce size, improve pref (ocsigen/js_of_ocaml#1220)
* Compiler: rename internal library js_of_ocaml-compiler.runtime to js_of_ocaml-compiler.runtime-files
* Lib: new runtime library to improve compatibility with Brr and gen_js_api
* Lib: add messageEvent to Dom_html (ocsigen/js_of_ocaml#1164)
* Lib: add PerformanceObserver API (ocsigen/js_of_ocaml#1164)
* Lib: add CSSStyleDeclaration.{setProperty, getPropertyValue, getPropertyPriority, removeProperty} (ocsigen/js_of_ocaml#1170)
* Lib: make window.{inner,outer}{Width,Height} non-optional
* Lib: introduce Js_of_ocaml.Js_error module, deprecate Js_of_ocaml.Js.Error exception.
* Lib: add deprecation warning for deprecated code
* PPX: json can now be derived for mutable records (ocsigen/js_of_ocaml#1184)
* Runtime: use crypto.getRandomValues when available (ocsigen/js_of_ocaml#1209)
* Misc: move js_of_ocaml-ocamlbuild out to its own repo
* Misc: add support for OCaml 4.14 (ocsigen/js_of_ocaml#1173)

## Bug fixes
* Compiler: fix sourcemap warning for empty cma (ocsigen/js_of_ocaml#1169)
* Compiler: Strengthen bound checks. (ocsigen/js_of_ocaml#1172)
* Compiler: fix `--wrap-with-fun` under node (ocsigen/js_of_ocaml#653, ocsigen/js_of_ocaml#1171)
* Compiler: fix parsing of annotaions in js stubs (ocsigen/js_of_ocaml#1212, fix ocsigen/js_of_ocaml#1213)
* Ppx: allow apostrophe in lident (fix ocsigen/js_of_ocaml#1183) (ocsigen/js_of_ocaml#1192)
* Runtime: fix float parsing in hexadecimal form
* Runtime: fix implementation of caml_js_instanceof
* Graphics: fix mouse_{x,y} (ocsigen/js_of_ocaml#1206)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants