| /* | |
| 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"); | |