0

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)

0 Answers0