Imran/Malic
01/28/2022, 8:31 AMtoASCII
here, my dependency definition looks like this
jsMain {
dependencies {
api(npm("punycode", "2.1.1"))
api(npm("urlencode", "1.1.0"))
api(npm("buffer", "6.0.3"))
api(npm("string_decoder", "1.3.0"))
}
}
and the file punycode.kt looks like this:
@JsModule("punycode")
@JsNonModule
@JsName("toASCII")
public external val toASCII: (domain: String) -> String
But it fails with:
Uncaught TypeError: toASCII is not a function
at /var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:100744:17
TypeError: toASCII is not a function
at UriCompatibility.encodeDNSHost_6wfw3l_k$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:100744:17)
at _no_name_provided__274.invoke_6wfw3l_k$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:97821:46)
Imran/Malic
01/28/2022, 8:33 AM> Task :core:jsGenerateExternalsIntegrated SKIPPED
No `types` or `typings` found for 'punycode: 2.1.1'.
To find d.ts for dependency, fields `types` and `typings` should be declared in `package.json`
> Task :core:compileKotlinJs
> Task :core:jsProcessResources NO-SOURCE
> Task :core:jsMainClasses
> Task :core:jsPublicPackageJson UP-TO-DATE
> Task :core:jsJar
> Task :core:compileTestKotlinJs
> Task :core:jsTestProcessResources NO-SOURCE
> Task :core:jsTestClasses
> Task :core:compileTestDevelopmentExecutableKotlinJs
> Task :core:jsTestTestDevelopmentExecutableCompileSync UP-TO-DATE
> Task :core:jsBrowserTest
Uncaught TypeError: toASCII is not a function
at /var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:100744:17
TypeError: toASCII is not a function
at UriCompatibility.encodeDNSHost_6wfw3l_k$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:100744:17)
at _no_name_provided__274.invoke_6wfw3l_k$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:97821:46)
at /var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:98101:16
at HostSegment.Segment_0.encoded_0_k$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:98037:38)
at Authority.toString (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:94984:35)
at Uri.toString (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:99166:81)
at new UriTest (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:140443:24)
at launcher$init$ (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:138942:156)
at Object.<anonymous> (/var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:142262:14)
at /var/folders/qq/0zkljkj12jb9m0jnwftykyd00000gn/T/_karma_webpack_216427/commons.js:6042:35
java.lang.IllegalStateException: command '/Users/ulti_mate/.gradle/nodejs/node-v14.17.0-darwin-x64/bin/node' exited with errors (exit code: 1)
> Task :core:jsNodeTest
TypeError: toASCII is not a function
at UriCompatibility.encodeDNSHost_6wfw3l_k$ (/Users/_arrow-endpoint/core/src/jsMain/kotlin/arrow/endpoint/model/UriCompatibility.kt:9:5)
at _no_name_provided__274.invoke_6wfw3l_k$ (/Users/_arrow-endpoint/core/src/commonMain/kotlin/arrow/endpoint/model/Segment.kt:25:34)
at /Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/kotlin/arrow-endpoint-core-test.js:92095:16
at HostSegment.Segment_0.encoded_0_k$ (/Users/_arrow-endpoint/core/src/commonMain/kotlin/arrow/endpoint/model/Segment.kt:11:34)
at Authority.toString (/Users/_arrow-endpoint/core/src/commonMain/kotlin/arrow/endpoint/model/Authority.kt:41:29)
at Uri.toString (/Users/_arrow-endpoint/core/src/commonMain/kotlin/arrow/endpoint/model/Uri.kt:200:33)
at new UriTest (/Users/_arrow-endpoint/core/src/commonTest/kotlin/arrow/endpoint/model/UriTest.kt:107:7)
at launcher$init$ (/Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/kotlin/arrow-endpoint-core-test.js:132984:156)
at /Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/kotlin/arrow-endpoint-core-test.js:136304:14
at /Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/kotlin/arrow-endpoint-core-test.js:5:5
at Object.<anonymous> (/Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/kotlin/arrow-endpoint-core-test.js:15:2)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Module.require (internal/modules/cjs/loader.js:957:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/Users/_arrow-endpoint/build/js/packages/arrow-endpoint-core-test/adapter-nodejs.js:2:18)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at ModuleWrap.<anonymous> (internal/modules/esm/translators.js:199:29)
at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
at Loader.import (internal/modules/esm/loader.js:177:24)
at formattedImport (/Users/_arrow-endpoint/build/js/node_modules/mocha/lib/nodejs/esm-utils.js:7:14)
at Object.exports.requireOrImport (/Users/_arrow-endpoint/build/js/node_modules/mocha/lib/nodejs/esm-utils.js:48:32)
at Object.exports.loadFilesAsync (/Users/_arrow-endpoint/build/js/node_modules/mocha/lib/nodejs/esm-utils.js:88:20)
at singleRun (/Users/_arrow-endpoint/build/js/node_modules/mocha/lib/cli/run-helpers.js:125:3)
at Object.exports.handler (/Users/_arrow-endpoint/build/js/node_modules/mocha/lib/cli/run.js:374:5)
Big Chungus
01/28/2022, 9:03 AMNPM Package Object
section hereImran/Malic
01/28/2022, 9:25 AMBig Chungus
01/28/2022, 9:26 AMImran/Malic
01/28/2022, 9:52 AM/** Define the public API */
const punycode = {
/**
* A string representing the current Punycode.js version number.
* @memberOf punycode
* @type String
*/
'version': '2.1.0',
/**
* An object of methods to convert from JavaScript's internal character
* representation (UCS-2) to Unicode code points, and back.
* @see <<https://mathiasbynens.be/notes/javascript-encoding>>
* @memberOf punycode
* @type Object
*/
'ucs2': {
'decode': ucs2decode,
'encode': ucs2encode
},
'decode': decode,
'encode': encode,
'toASCII': toASCII,
'toUnicode': toUnicode
};
module.exports = punycode;
and I created:
@JsModule("punycode")
@JsNonModule
internal external object punycode {
val version: String
fun toASCII(input: String): String
}
it runs the tests but not sure if it’s correcctBig Chungus
01/28/2022, 9:54 AMpunycode
kt object maps 1:1 to const punycode
(or module.exports
) in JSImran/Malic
01/28/2022, 9:56 AM