134 lines
5.1 KiB
JavaScript
134 lines
5.1 KiB
JavaScript
/* eslint-disable */
|
|
/* prettier-ignore */
|
|
|
|
/* auto-generated by NAPI-RS */
|
|
|
|
const __nodeFs = require('node:fs')
|
|
const __nodePath = require('node:path')
|
|
const { WASI: __nodeWASI } = require('node:wasi')
|
|
const { Worker } = require('node:worker_threads')
|
|
|
|
const {
|
|
createOnMessage: __wasmCreateOnMessageForFsProxy,
|
|
getDefaultContext: __emnapiGetDefaultContext,
|
|
instantiateNapiModuleSync: __emnapiInstantiateNapiModuleSync,
|
|
} = require('@napi-rs/wasm-runtime')
|
|
|
|
const __rootDir = __nodePath.parse(process.cwd()).root
|
|
|
|
const __wasi = new __nodeWASI({
|
|
version: 'preview1',
|
|
env: process.env,
|
|
preopens: {
|
|
[__rootDir]: __rootDir,
|
|
}
|
|
})
|
|
|
|
const __emnapiContext = __emnapiGetDefaultContext()
|
|
|
|
const __sharedMemory = new WebAssembly.Memory({
|
|
initial: 4000,
|
|
maximum: 65536,
|
|
shared: true,
|
|
})
|
|
|
|
let __wasmFilePath = __nodePath.join(__dirname, 'satteri_napi.wasm32-wasi.wasm')
|
|
const __wasmDebugFilePath = __nodePath.join(__dirname, 'satteri_napi.wasm32-wasi.debug.wasm')
|
|
|
|
if (__nodeFs.existsSync(__wasmDebugFilePath)) {
|
|
__wasmFilePath = __wasmDebugFilePath
|
|
} else if (!__nodeFs.existsSync(__wasmFilePath)) {
|
|
try {
|
|
__wasmFilePath = require.resolve('@bruits/satteri-wasm32-wasi/satteri_napi.wasm32-wasi.wasm')
|
|
} catch {
|
|
throw new Error('Cannot find satteri_napi.wasm32-wasi.wasm file, and @bruits/satteri-wasm32-wasi package is not installed.')
|
|
}
|
|
}
|
|
|
|
const { instance: __napiInstance, module: __wasiModule, napiModule: __napiModule } = __emnapiInstantiateNapiModuleSync(__nodeFs.readFileSync(__wasmFilePath), {
|
|
context: __emnapiContext,
|
|
asyncWorkPoolSize: (function() {
|
|
const threadsSizeFromEnv = Number(process.env.NAPI_RS_ASYNC_WORK_POOL_SIZE ?? process.env.UV_THREADPOOL_SIZE)
|
|
// NaN > 0 is false
|
|
if (threadsSizeFromEnv > 0) {
|
|
return threadsSizeFromEnv
|
|
} else {
|
|
return 4
|
|
}
|
|
})(),
|
|
reuseWorker: true,
|
|
wasi: __wasi,
|
|
onCreateWorker() {
|
|
const worker = new Worker(__nodePath.join(__dirname, 'wasi-worker.mjs'), {
|
|
env: process.env,
|
|
})
|
|
worker.onmessage = ({ data }) => {
|
|
__wasmCreateOnMessageForFsProxy(__nodeFs)(data)
|
|
}
|
|
|
|
// The main thread of Node.js waits for all the active handles before exiting.
|
|
// But Rust threads are never waited without `thread::join`.
|
|
// So here we hack the code of Node.js to prevent the workers from being referenced (active).
|
|
// According to https://github.com/nodejs/node/blob/19e0d472728c79d418b74bddff588bea70a403d0/lib/internal/worker.js#L415,
|
|
// a worker is consist of two handles: kPublicPort and kHandle.
|
|
{
|
|
const kPublicPort = Object.getOwnPropertySymbols(worker).find(s =>
|
|
s.toString().includes("kPublicPort")
|
|
);
|
|
if (kPublicPort) {
|
|
worker[kPublicPort].ref = () => {};
|
|
}
|
|
|
|
const kHandle = Object.getOwnPropertySymbols(worker).find(s =>
|
|
s.toString().includes("kHandle")
|
|
);
|
|
if (kHandle) {
|
|
worker[kHandle].ref = () => {};
|
|
}
|
|
|
|
worker.unref();
|
|
}
|
|
return worker
|
|
},
|
|
overwriteImports(importObject) {
|
|
importObject.env = {
|
|
...importObject.env,
|
|
...importObject.napi,
|
|
...importObject.emnapi,
|
|
memory: __sharedMemory,
|
|
}
|
|
return importObject
|
|
},
|
|
beforeInit({ instance }) {
|
|
for (const name of Object.keys(instance.exports)) {
|
|
if (name.startsWith('__napi_register__')) {
|
|
instance.exports[name]()
|
|
}
|
|
}
|
|
},
|
|
})
|
|
module.exports = __napiModule.exports
|
|
module.exports.applyCommandsAndConvertToHastHandle = __napiModule.exports.applyCommandsAndConvertToHastHandle
|
|
module.exports.applyCommandsToHandle = __napiModule.exports.applyCommandsToHandle
|
|
module.exports.applyCommandsToMdastHandle = __napiModule.exports.applyCommandsToMdastHandle
|
|
module.exports.compileHandle = __napiModule.exports.compileHandle
|
|
module.exports.compileMdx = __napiModule.exports.compileMdx
|
|
module.exports.convertMdastToHastHandle = __napiModule.exports.convertMdastToHastHandle
|
|
module.exports.createHastHandle = __napiModule.exports.createHastHandle
|
|
module.exports.createMdastHandle = __napiModule.exports.createMdastHandle
|
|
module.exports.createMdxHastHandle = __napiModule.exports.createMdxHastHandle
|
|
module.exports.createMdxMdastHandle = __napiModule.exports.createMdxMdastHandle
|
|
module.exports.dropHandle = __napiModule.exports.dropHandle
|
|
module.exports.getHandleSource = __napiModule.exports.getHandleSource
|
|
module.exports.getMdastFrontmatter = __napiModule.exports.getMdastFrontmatter
|
|
module.exports.getNodeData = __napiModule.exports.getNodeData
|
|
module.exports.mdastTextContentHandle = __napiModule.exports.mdastTextContentHandle
|
|
module.exports.parseEsm = __napiModule.exports.parseEsm
|
|
module.exports.parseExpression = __napiModule.exports.parseExpression
|
|
module.exports.parseToHtml = __napiModule.exports.parseToHtml
|
|
module.exports.renderHandle = __napiModule.exports.renderHandle
|
|
module.exports.serializeHandle = __napiModule.exports.serializeHandle
|
|
module.exports.setNodeData = __napiModule.exports.setNodeData
|
|
module.exports.textContentHandle = __napiModule.exports.textContentHandle
|
|
module.exports.walkHandle = __napiModule.exports.walkHandle
|
|
module.exports.walkMdastHandle = __napiModule.exports.walkMdastHandle
|