fix(cli): wrong wasm file name with --platform flag (#1798)
This commit is contained in:
parent
6ec46b749e
commit
8ddd35c788
4 changed files with 40 additions and 39 deletions
|
@ -481,7 +481,7 @@ class Builder {
|
|||
})
|
||||
}
|
||||
|
||||
await this.copyArtifact()
|
||||
const dest = await this.copyArtifact()
|
||||
|
||||
// only for cdylib
|
||||
if (this.cdyLibName) {
|
||||
|
@ -505,7 +505,7 @@ class Builder {
|
|||
const jsOutput = await this.writeJsBinding(idents)
|
||||
const wasmOutput = await this.writeWasiBinding(
|
||||
wasiRegisterFunctions,
|
||||
jsOutput?.path ?? 'index',
|
||||
dest ?? 'index.wasm',
|
||||
idents,
|
||||
)
|
||||
if (jsOutput) {
|
||||
|
@ -543,6 +543,7 @@ class Builder {
|
|||
kind: dest.endsWith('.node') ? 'node' : 'exe',
|
||||
path: dest,
|
||||
})
|
||||
return dest
|
||||
} catch (e) {
|
||||
throw new Error('Failed to copy artifact', {
|
||||
cause: e,
|
||||
|
@ -656,7 +657,7 @@ class Builder {
|
|||
) {
|
||||
if (distFileName && wasiRegisterFunctions.length) {
|
||||
const { name, dir } = parse(distFileName)
|
||||
const newPath = join(dir, `${name}.wasi.mjs`)
|
||||
const newPath = join(dir, `${this.config.binaryName}.wasi.mjs`)
|
||||
const workerPath = join(dir, 'wasi-worker.mjs')
|
||||
const declareCodes = `const { ${idents.join(', ')} } = binding\n`
|
||||
const exportsCode = `export {\n${idents
|
||||
|
@ -664,7 +665,7 @@ class Builder {
|
|||
.join(',\n')}\n}`
|
||||
await writeFileAsync(
|
||||
newPath,
|
||||
createWasiBinding(this.config.binaryName, wasiRegisterFunctions) +
|
||||
createWasiBinding(name, wasiRegisterFunctions) +
|
||||
declareCodes +
|
||||
exportsCode +
|
||||
'\n',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
export const createWasiBinding = (
|
||||
localName: string,
|
||||
wasmFileName: string,
|
||||
wasiRegisterFunctions: string[],
|
||||
) => `/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
|
@ -32,7 +32,7 @@ const __sharedMemory = new WebAssembly.Memory({
|
|||
shared: true,
|
||||
})
|
||||
|
||||
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, '${localName}.wasi-wasm32.wasm')), {
|
||||
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, '${wasmFileName}.wasm')), {
|
||||
context: __emnapiContext,
|
||||
asyncWorkPoolSize: 4,
|
||||
wasi: __wasi,
|
||||
|
|
|
@ -29,7 +29,7 @@ const __sharedMemory = new WebAssembly.Memory({
|
|||
shared: true,
|
||||
})
|
||||
|
||||
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, 'index.wasi-wasm32.wasm')), {
|
||||
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = await __emnapiInstantiateNapiModule(__nodeFsPromises.readFile(__nodePath.join(__dirname, 'index.wasm32-wasi-preview1-threads.wasi-wasm32.wasm')), {
|
||||
context: __emnapiContext,
|
||||
asyncWorkPoolSize: 4,
|
||||
wasi: __wasi,
|
||||
|
@ -236,35 +236,39 @@ function __napi_rs_initialize_modules(__napiInstance) {
|
|||
__napiInstance.exports['__napi_register__DelaySum_impl_180']()
|
||||
__napiInstance.exports['__napi_register__without_abort_controller_181']()
|
||||
__napiInstance.exports['__napi_register__with_abort_controller_182']()
|
||||
__napiInstance.exports['__napi_register__call_threadsafe_function_183']()
|
||||
__napiInstance.exports['__napi_register__call_long_threadsafe_function_184']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_throw_error_185']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_fatal_mode_186']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_fatal_mode_error_187']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_closure_capture_188']()
|
||||
__napiInstance.exports['__napi_register__tsfn_call_with_callback_189']()
|
||||
__napiInstance.exports['__napi_register__tsfn_async_call_190']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_191']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_fatal_192']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_tuple_args_193']()
|
||||
__napiInstance.exports['__napi_register__tsfn_return_promise_194']()
|
||||
__napiInstance.exports['__napi_register__tsfn_return_promise_timeout_195']()
|
||||
__napiInstance.exports['__napi_register__tsfn_throw_from_js_196']()
|
||||
__napiInstance.exports['__napi_register__get_buffer_197']()
|
||||
__napiInstance.exports['__napi_register__append_buffer_198']()
|
||||
__napiInstance.exports['__napi_register__get_empty_buffer_199']()
|
||||
__napiInstance.exports['__napi_register__convert_u32_array_200']()
|
||||
__napiInstance.exports['__napi_register__create_external_typed_array_201']()
|
||||
__napiInstance.exports['__napi_register__mutate_typed_array_202']()
|
||||
__napiInstance.exports['__napi_register__deref_uint8_array_203']()
|
||||
__napiInstance.exports['__napi_register__buffer_pass_through_204']()
|
||||
__napiInstance.exports['__napi_register__array_buffer_pass_through_205']()
|
||||
__napiInstance.exports['__napi_register__AsyncBuffer_impl_206']()
|
||||
__napiInstance.exports['__napi_register__async_reduce_buffer_207']()
|
||||
__napiInstance.exports['__napi_register__AsyncTaskVoidReturn_impl_183']()
|
||||
__napiInstance.exports['__napi_register__async_task_void_return_184']()
|
||||
__napiInstance.exports['__napi_register__AsyncTaskOptionalReturn_impl_185']()
|
||||
__napiInstance.exports['__napi_register__async_task_optional_return_186']()
|
||||
__napiInstance.exports['__napi_register__call_threadsafe_function_187']()
|
||||
__napiInstance.exports['__napi_register__call_long_threadsafe_function_188']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_throw_error_189']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_fatal_mode_190']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_fatal_mode_error_191']()
|
||||
__napiInstance.exports['__napi_register__threadsafe_function_closure_capture_192']()
|
||||
__napiInstance.exports['__napi_register__tsfn_call_with_callback_193']()
|
||||
__napiInstance.exports['__napi_register__tsfn_async_call_194']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_195']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_fatal_196']()
|
||||
__napiInstance.exports['__napi_register__accept_threadsafe_function_tuple_args_197']()
|
||||
__napiInstance.exports['__napi_register__tsfn_return_promise_198']()
|
||||
__napiInstance.exports['__napi_register__tsfn_return_promise_timeout_199']()
|
||||
__napiInstance.exports['__napi_register__tsfn_throw_from_js_200']()
|
||||
__napiInstance.exports['__napi_register__get_buffer_201']()
|
||||
__napiInstance.exports['__napi_register__append_buffer_202']()
|
||||
__napiInstance.exports['__napi_register__get_empty_buffer_203']()
|
||||
__napiInstance.exports['__napi_register__convert_u32_array_204']()
|
||||
__napiInstance.exports['__napi_register__create_external_typed_array_205']()
|
||||
__napiInstance.exports['__napi_register__mutate_typed_array_206']()
|
||||
__napiInstance.exports['__napi_register__deref_uint8_array_207']()
|
||||
__napiInstance.exports['__napi_register__buffer_pass_through_208']()
|
||||
__napiInstance.exports['__napi_register__array_buffer_pass_through_209']()
|
||||
__napiInstance.exports['__napi_register__AsyncBuffer_impl_210']()
|
||||
__napiInstance.exports['__napi_register__async_reduce_buffer_211']()
|
||||
}
|
||||
|
||||
const binding = __napiModule.exports
|
||||
const { Animal, AnimalWithDefaultConstructor, AnotherClassForEither, AnotherCssStyleSheet, AnotherCSSStyleSheet, Asset, JsAsset, Assets, JsAssets, Bird, Blake2BHasher, Blake2bHasher, Blake2BKey, Blake2bKey, ClassWithFactory, Context, CssRuleList, CSSRuleList, CssStyleSheet, CSSStyleSheet, CustomFinalize, Dog, Fib, Fib2, Fib3, GetterSetterWithClosures, JsClassForEither, JsRemote, JsRepo, NinjaTurtle, NotWritableClass, Optional, Selector, Width, acceptThreadsafeFunction, acceptThreadsafeFunctionFatal, acceptThreadsafeFunctionTupleArgs, add, ALIAS, AliasedEnum, appendBuffer, arrayBufferPassThrough, asyncMultiTwo, asyncPlus100, asyncReduceBuffer, bigintAdd, bigintFromI128, bigintFromI64, bigintGetU64AsString, bufferPassThrough, callbackReturnPromise, callbackReturnPromiseAndSpawn, callLongThreadsafeFunction, callThreadsafeFunction, captureErrorInCallback, chronoDateAdd1Minute, chronoDateToMillis, chronoNativeDateTime, chronoNativeDateTimeReturn, concatLatin1, concatStr, concatUtf16, contains, convertU32Array, createBigInt, createBigIntI64, createExternal, createExternalString, createExternalTypedArray, createObj, createObjectWithClassField, createObjWithProperty, createSymbol, createSymbolFor, CustomNumEnum, customStatusCode, dateToNumber, DEFAULT_COST, derefUint8Array, either3, either4, eitherBoolOrFunction, eitherFromObjects, eitherFromOption, eitherStringOrNumber, Empty, enumToI32, fibonacci, fnReceivedAliased, getBuffer, getCwd, getEmptyBuffer, getExternal, getGlobal, getMapping, getModuleFileName, getNestedNumArr, getNull, getNumArr, getNums, getPackageJsonName, getStrFromObject, getterFromObj, getUndefined, getWords, Kind, listObjKeys, mapOption, mutateExternal, mutateTypedArray, optionEnd, optionOnly, optionStart, optionStartEnd, overrideIndividualArgOnFunction, overrideIndividualArgOnFunctionWithCbArg, panic, plusOne, promiseInEither, readFile, readFileAsync, readPackageJson, receiveAllOptionalObject, receiveClassOrNumber, receiveDifferentClass, receiveMutClassOrNumber, receiveObjectOnlyFromJs, receiveObjectWithClassField, receiveStrictObject, receiveString, returnEither, returnEitherClass, returnFromSharedCrate, returnJsFunction, returnNull, returnUndefined, returnUndefinedIfInvalid, returnUndefinedIfInvalidPromise, roundtripStr, runScript, setSymbolInObj, Status, sumMapping, sumNums, testSerdeBigNumberPrecision, testSerdeRoundtrip, threadsafeFunctionClosureCapture, threadsafeFunctionFatalMode, threadsafeFunctionFatalModeError, threadsafeFunctionThrowError, throwAsyncError, throwError, throwSyntaxError, toJsObj, tsfnAsyncCall, tsfnCallWithCallback, tsfnReturnPromise, tsfnReturnPromiseTimeout, tsfnThrowFromJs, tsRename, validateArray, validateBigint, validateBoolean, validateBuffer, validateDate, validateDateTime, validateExternal, validateFunction, validateHashMap, validateNull, validateNumber, validateOptional, validatePromise, validateString, validateSymbol, validateTypedArray, validateUndefined, withAbortController, withoutAbortController, xxh64Alias, xxh2, xxh3 } = binding
|
||||
const { Animal, AnimalWithDefaultConstructor, AnotherClassForEither, AnotherCssStyleSheet, AnotherCSSStyleSheet, Asset, JsAsset, Assets, JsAssets, Bird, Blake2BHasher, Blake2bHasher, Blake2BKey, Blake2bKey, ClassWithFactory, Context, CssRuleList, CSSRuleList, CssStyleSheet, CSSStyleSheet, CustomFinalize, Dog, Fib, Fib2, Fib3, GetterSetterWithClosures, JsClassForEither, JsRemote, JsRepo, NinjaTurtle, NotWritableClass, Optional, Selector, Width, acceptThreadsafeFunction, acceptThreadsafeFunctionFatal, acceptThreadsafeFunctionTupleArgs, add, ALIAS, AliasedEnum, appendBuffer, arrayBufferPassThrough, asyncMultiTwo, asyncPlus100, asyncReduceBuffer, asyncTaskOptionalReturn, asyncTaskVoidReturn, bigintAdd, bigintFromI128, bigintFromI64, bigintGetU64AsString, bufferPassThrough, callbackReturnPromise, callbackReturnPromiseAndSpawn, callLongThreadsafeFunction, callThreadsafeFunction, captureErrorInCallback, chronoDateAdd1Minute, chronoDateToMillis, chronoNativeDateTime, chronoNativeDateTimeReturn, concatLatin1, concatStr, concatUtf16, contains, convertU32Array, createBigInt, createBigIntI64, createExternal, createExternalString, createExternalTypedArray, createObj, createObjectWithClassField, createObjWithProperty, createSymbol, createSymbolFor, CustomNumEnum, customStatusCode, dateToNumber, DEFAULT_COST, derefUint8Array, either3, either4, eitherBoolOrFunction, eitherFromObjects, eitherFromOption, eitherStringOrNumber, Empty, enumToI32, fibonacci, fnReceivedAliased, getBuffer, getCwd, getEmptyBuffer, getExternal, getGlobal, getMapping, getModuleFileName, getNestedNumArr, getNull, getNumArr, getNums, getPackageJsonName, getStrFromObject, getterFromObj, getUndefined, getWords, Kind, listObjKeys, mapOption, mutateExternal, mutateTypedArray, optionEnd, optionOnly, optionStart, optionStartEnd, overrideIndividualArgOnFunction, overrideIndividualArgOnFunctionWithCbArg, panic, plusOne, promiseInEither, readFile, readFileAsync, readPackageJson, receiveAllOptionalObject, receiveClassOrNumber, receiveDifferentClass, receiveMutClassOrNumber, receiveObjectOnlyFromJs, receiveObjectWithClassField, receiveStrictObject, receiveString, returnEither, returnEitherClass, returnFromSharedCrate, returnJsFunction, returnNull, returnUndefined, returnUndefinedIfInvalid, returnUndefinedIfInvalidPromise, roundtripStr, runScript, setSymbolInObj, Status, sumMapping, sumNums, testSerdeBigNumberPrecision, testSerdeRoundtrip, threadsafeFunctionClosureCapture, threadsafeFunctionFatalMode, threadsafeFunctionFatalModeError, threadsafeFunctionThrowError, throwAsyncError, throwError, throwSyntaxError, toJsObj, tsfnAsyncCall, tsfnCallWithCallback, tsfnReturnPromise, tsfnReturnPromiseTimeout, tsfnThrowFromJs, tsRename, validateArray, validateBigint, validateBoolean, validateBuffer, validateDate, validateDateTime, validateExternal, validateFunction, validateHashMap, validateNull, validateNumber, validateOptional, validatePromise, validateString, validateSymbol, validateTypedArray, validateUndefined, withAbortController, withoutAbortController, xxh64Alias, xxh2, xxh3 } = binding
|
||||
export {
|
||||
Animal,
|
||||
AnimalWithDefaultConstructor,
|
||||
|
@ -311,6 +315,8 @@ export {
|
|||
asyncMultiTwo,
|
||||
asyncPlus100,
|
||||
asyncReduceBuffer,
|
||||
asyncTaskOptionalReturn,
|
||||
asyncTaskVoidReturn,
|
||||
bigintAdd,
|
||||
bigintFromI128,
|
||||
bigintFromI64,
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "ESNext"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue