I have a simple clojurescript
application that I want to export to an already established application using a javascript
- express - framework.
I can't figure out how I should call my ClojureScript export inside JavaScript. How should I go about finding that?
The Code:
The clojurescript core:
(ns graficos-cljs.core
(:require
[reagent.dom :as rdom]
[re-frame.core :as re-frame]
[graficos-cljs.events :as events]
[graficos-cljs.views :as views]
[graficos-cljs.config :as config]))
(defn dev-setup []
(when config/debug?
(println "dev mode")))
(defn ^:dev/after-load mount-root []
(re-frame/clear-subscription-cache!)
(let [root-el (.getElementById js/document "app")]
(rdom/unmount-component-at-node root-el)
(rdom/render [views/main-panel] root-el)))
(defn ^:export main []
(re-frame/dispatch-sync [::events/initialize-db])
(js/console.log "Hello, from ClojureScript!")
(dev-setup)
(mount-root))
My shadow-cljs.edn
,
:builds
{:app
{:target :browser
:output-dir "../graficos/"
:asset-path "../../../public/"
:main graficos-cljs.core/main
:output-to "../graficos/main.js"
:modules
{:app {:init-fn graficos-cljs.core/init
:exports {main graficos-cljs.core/main}}}
(...)
}}
In my javascript
file:
import Base from '../libs/base.js';
import { main } from './app.js'
export default class Graficos extends Base {
constructor() {
super();
}
init() {
main(); <--- Should come from ClojureScript
}
}
The error I'm having:
1: import Base from '../libs/base.js';
2: import { main } from './app.js'
^
Error: Unexpected token
at error (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:5305:30)
at Module.error (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:9750:16)
at Module.tryParse (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:10156:25)
at Module.setSource (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:10057:24)
at ModuleLoader.addModuleSource (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:18396:20)
at ModuleLoader.fetchModule (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:18452:9)
at async Promise.all (index 21)
at ModuleLoader.fetchStaticDependencies (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:18478:34)
at async Promise.all (index 0)
at ModuleLoader.fetchModule (/home/buddhilw/facti/linfo-ppi/node_modules/rollup/dist/shared/rollup.js:18454:9)