1234567891011121314151617181920212223242526272829303132 |
- import { createRequire } from 'module';
- import { setRequire } from './open.js';
- import { nativeAddon, setNativeFunctions } from './native.js';
- export { nativeAddon } from './native.js'
- let require = createRequire(import.meta.url);
- setRequire(require);
- export let v8AccelerationEnabled = false
- let versions = process.versions;
- if (!versions.deno && !process.isBun) {
- let [ majorVersion, minorVersion ] = versions.node.split('.');
- if (versions.v8 && +majorVersion == nativeAddon.version.nodeCompiledVersion) {
- let v8Funcs = {};
- let fastApiCalls = (majorVersion == 17 || majorVersion == 18 || majorVersion == 16 && minorVersion > 8) && !process.env.DISABLE_TURBO_CALLS;
- if (fastApiCalls) {
- require('v8').setFlagsFromString('--turbo-fast-api-calls');
- }
- nativeAddon.enableDirectV8(v8Funcs, fastApiCalls);
- Object.assign(nativeAddon, v8Funcs);
- v8AccelerationEnabled = true;
- } else if (majorVersion == 14) {
- // node v14 only has ABI compatibility with node v16 for zero-arg clearKeptObjects
- let v8Funcs = {};
- nativeAddon.enableDirectV8(v8Funcs, false);
- nativeAddon.clearKeptObjects = v8Funcs.clearKeptObjects;
- }
- nativeAddon.enableThreadSafeCalls();
- }
- setNativeFunctions(nativeAddon);
- export * from './index.js'
- export { default } from './index.js'
|