Reuben Firmin
07/24/2024, 2:59 PMReuben Firmin
07/24/2024, 2:59 PM@JsModule("@whereby.com/browser-sdk/embed")
@JsNonModule
external object Whereby {}
When I try to run this, I get:
Module not found: Error: Package path ./dist/embed/index.esm.js is not exported from package /expanse/code/startup/interview/build/js/node_modules/@whereby.com/browser-sdk (see exports field in /expanse/code/startup/interview/build/js/node_modules/@whereby.com/browser-sdk/package.json)
Their package.json (in @whereby.com/browser-sdk) is attached.Reuben Firmin
07/24/2024, 2:59 PMReuben Firmin
07/24/2024, 3:01 PMconfig.resolve = config.resolve || {};
config.resolve.alias = config.resolve.alias || {};
config.resolve.alias['@whereby.com/browser-sdk/embed'] = '@whereby.com/browser-sdk/dist/embed/index.esm.js';
If I try the above without this file in place, I get this error instead:
Module not found: Error: Can't resolve '@whereby.com/browser-sdk/embed' in '/expanse/code/startup/interview/build/js/packages/interview/kotlin'Reuben Firmin
07/24/2024, 3:03 PMReuben Firmin
07/25/2024, 10:49 AM@JsModule("@whereby.com/browser-sdk/dist/embed/index.esm.js")
@JsNonModule
external object Whereby
fun initWhereby() {
console.dir(Whereby)
Module not found: Error: Package path ./dist/embed/index.esm.js is not exported from package /expanse/code/startup/interview/build/js/node_modules/@whereby.com/browser-sdk (see exports field in /expanse/code/startup/interview/build/js/node_modules/@whereby.com/browser-sdk/package.json)
...which is baffling given:
"exports": {
"./react": {
"import": "./dist/react/index.esm.js",
"types": "./dist/react/index.d.ts",
"require": "./dist/react/index.cjs",
"default": "./dist/react/index.esm.js"
},
"./embed": {
"import": "./dist/embed/index.esm.js",
"types": "./dist/embed/index.d.ts",
"require": "./dist/embed/index.cjs",
"default": "./dist/embed/index.esm.js"
}
},
turansky
07/25/2024, 10:57 AM@file:JsModule("@whereby.com/browser-sdk/embed")
external fun someFunction {}
+ target = "es2015"
for Kotlin?Reuben Firmin
07/25/2024, 11:06 AM@file:JsModule("@whereby.com/browser-sdk/embed")
package rcp.libs
external fun render()
...and
object WherebyHelper {
fun initWhereby() {
...
if (wherebyMeetings.length > 0) {
render()
}
}
}
...I get:
e: file///expanse/code/startup/interview/src/jsMain/kotlin/rcp/libs/WherebyHelper.kt21:13 When accessing module declarations from UMD, they must be marked by both @JsModule and @JsNonModuleturansky
07/25/2024, 11:06 AM+for Kotlin?target = "es2015"
Reuben Firmin
07/25/2024, 11:07 AMwebpackTask {
output.libraryTarget = "es2015"
}
turansky
07/25/2024, 11:08 AMReuben Firmin
07/25/2024, 11:17 AMuseEsModules()
...and at least I'm able to start the app. There are strange errors which I'll debug.
And ok, now I understand. So in general the presence of this kind of exports
declaration in package.json implies the need for a file: based mapping? (i.e. https://kotlinlang.org/docs/js-modules.html#apply-jsmodule-to-packages)turansky
07/25/2024, 11:18 AMReuben Firmin
07/25/2024, 11:19 AMturansky
07/25/2024, 12:28 PMmoduleKind = "es"
turansky
07/25/2024, 12:28 PM