| /* |
| 2022-07-22 |
| |
| The author disclaims copyright to this source code. In place of a |
| legal notice, here is a blessing: |
| |
| * May you do good and not evil. |
| * May you find forgiveness for yourself and forgive others. |
| * May you share freely, never taking more than you give. |
| |
| *********************************************************************** |
| |
| This file is the tail end of the sqlite3-api.js constellation, |
| closing the function scope opened by post-js-header.js. |
| |
| In terms of amalgamation code placement, this file is appended |
| immediately after the final sqlite3-api-*.js piece. Those files |
| cooperate to prepare sqlite3ApiBootstrap() and this file calls it. |
| It is run within a context which gives it access to Emscripten's |
| Module object, after sqlite3.wasm is loaded but before |
| sqlite3ApiBootstrap() has been called. |
| |
| Because this code resides (after building) inside the function |
| installed by post-js-header.js, it has access to state set up by |
| pre-js.c-pp.js and friends. |
| */ |
| try{ |
| /* We are in the closing block of Module.runSQLite3PostLoadInit(), so |
| its arguments are visible here. */ |
| |
| /* Config options for sqlite3ApiBootstrap(). */ |
| const bootstrapConfig = Object.assign( |
| Object.create(null), |
| /** The WASM-environment-dependent configuration for sqlite3ApiBootstrap() */ |
| { |
| memory: ('undefined'!==typeof wasmMemory) |
| ? wasmMemory |
| : EmscriptenModule['wasmMemory'], |
| exports: ('undefined'!==typeof wasmExports) |
| ? wasmExports /* emscripten >=3.1.44 */ |
| : (Object.prototype.hasOwnProperty.call(EmscriptenModule,'wasmExports') |
| ? EmscriptenModule['wasmExports'] |
| : EmscriptenModule['asm']/* emscripten <=3.1.43 */) |
| }, |
| globalThis.sqlite3ApiBootstrap.defaultConfig, // default options |
| globalThis.sqlite3ApiConfig || {} // optional client-provided options |
| ); |
| |
| sqlite3InitScriptInfo.debugModule("Bootstrapping lib config", bootstrapConfig); |
| |
| /** |
| For purposes of the Emscripten build, call sqlite3ApiBootstrap(). |
| Ideally clients should be able to inject their own config here, |
| but that's not practical in this particular build constellation |
| because of the order everything happens in. Clients may either |
| define globalThis.sqlite3ApiConfig or modify |
| globalThis.sqlite3ApiBootstrap.defaultConfig to tweak the default |
| configuration used by a no-args call to sqlite3ApiBootstrap(), |
| but must have first loaded their WASM module in order to be able |
| to provide the necessary configuration state. |
| */ |
| const p = globalThis.sqlite3ApiBootstrap(bootstrapConfig); |
| delete globalThis.sqlite3ApiBootstrap; |
| return p /* the eventual result of globalThis.sqlite3InitModule() */; |
| }catch(e){ |
| console.error("sqlite3ApiBootstrap() error:",e); |
| throw e; |
| } |
| |
| //console.warn("This is the end of the Module.runSQLite3PostLoadInit handler."); |
| }/*Module.runSQLite3PostLoadInit(...)*/; |
| //console.warn("This is the end of the setup of the (pending) Module.runSQLite3PostLoadInit"); |