This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-04-23
Channels
- # announcements (3)
- # babashka (68)
- # beginners (297)
- # calva (13)
- # cider (4)
- # clj-kondo (8)
- # cljs-dev (10)
- # cljsrn (26)
- # clojure (100)
- # clojure-europe (4)
- # clojure-germany (1)
- # clojure-italy (9)
- # clojure-nl (5)
- # clojure-spec (9)
- # clojure-uk (41)
- # clojurescript (69)
- # conjure (70)
- # cursive (44)
- # data-science (20)
- # datascript (2)
- # datomic (55)
- # emacs (1)
- # exercism (3)
- # graalvm (2)
- # kaocha (11)
- # leiningen (6)
- # meander (9)
- # mental-health (1)
- # off-topic (73)
- # pathom (6)
- # pedestal (1)
- # re-frame (3)
- # reagent (52)
- # reitit (8)
- # rum (39)
- # shadow-cljs (152)
- # spacemacs (10)
- # tools-deps (28)
- # xtdb (5)
I'm using krell (so unreleased cljs version). The code generated when i use default seems broken... It seems to get a "$" postfix. Note how module/default
becomes .default$
but (.-default)
becomes .default
For for example...
(ns connect-app.utils.rnc-datetimepicker
(:require ["@react-native-community/datetimepicker" :as module :refer [default abc]]
[goog.object :as gobj]))
(def RNDateTimePicker1 module/default)
(def RNDateTimePicker2 (.-default module))
(def RNDateTimePicker3 (gobj/get module "default"))
(def RNDateTimePicker4 default)
Produces this...
// Compiled by ClojureScript 0.0.1780021040 {:target :nodejs}
goog.provide('connect_app.utils.rnc_datetimepicker');
goog.require('cljs.core');
goog.require('goog.object');
connect_app.utils.rnc_datetimepicker.node$module$_CIRCA_react_native_community$datetimepicker = require('@react-native-community/datetimepicker');
connect_app.utils.rnc_datetimepicker.RNDateTimePicker1 = connect_app.utils.rnc_datetimepicker.node$module$_CIRCA_react_native_community$datetimepicker.default$;
connect_app.utils.rnc_datetimepicker.RNDateTimePicker2 = connect_app.utils.rnc_datetimepicker.node$module$_CIRCA_react_native_community$datetimepicker.default;
connect_app.utils.rnc_datetimepicker.RNDateTimePicker3 = goog.object.get(connect_app.utils.rnc_datetimepicker.node$module$_CIRCA_react_native_community$datetimepicker,"default");
connect_app.utils.rnc_datetimepicker.RNDateTimePicker4 = connect_app.utils.rnc_datetimepicker.node$module$_CIRCA_react_native_community$datetimepicker.default$;
The variants which produce .default$
don't work for accessing default exports from npm libs.
@olivergeorge default
used to be a reserved name in JS so CLJS mangles it unless configured not to.
@olivergeorge you need to configure :language-out
I'm pretty sure this was sorted a couple of years ago - I'm assuming it should work for :es6
if not - a bug
Thanks. I’ll give that a try.
Confirmed, adding :language-out :es6 did the trick all variants working now.
@dnolen seems like that might be a sensible default for krell.