@@ -6,6 +6,13 @@ const initPromise = PgQueryModule.default().then((module) => {
66 wasmModule = module ;
77} ) ;
88
9+ async function loadModule ( ) {
10+ if ( ! wasmModule ) {
11+ await initPromise ;
12+ }
13+ return wasmModule ;
14+ }
15+
916function awaitInit ( fn ) {
1017 return async ( ...args ) => {
1118 await initPromise ;
@@ -164,8 +171,6 @@ const normalize = awaitInit(async (query) => {
164171 }
165172} ) ;
166173
167-
168-
169174const parseQueryDetailed = awaitInit ( async ( query ) => {
170175 const queryPtr = stringToPtr ( query ) ;
171176 let resultPtr ;
@@ -208,7 +213,7 @@ const parseQueryDetailed = awaitInit(async (query) => {
208213// Sync versions that assume WASM module is already initialized
209214function parseQuerySync ( query ) {
210215 if ( ! wasmModule ) {
211- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
216+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
212217 }
213218 const queryPtr = stringToPtr ( query ) ;
214219 let resultPtr ;
@@ -253,7 +258,7 @@ function parseQuerySync(query) {
253258
254259function deparseSync ( parseTree ) {
255260 if ( ! wasmModule ) {
256- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
261+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
257262 }
258263 const protobufData = protobufCache . get ( parseTree ) ;
259264
@@ -284,7 +289,7 @@ function deparseSync(parseTree) {
284289
285290function parsePlPgSQLSync ( query ) {
286291 if ( ! wasmModule ) {
287- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
292+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
288293 }
289294 const queryPtr = stringToPtr ( query ) ;
290295 let resultPtr ;
@@ -308,7 +313,7 @@ function parsePlPgSQLSync(query) {
308313
309314function fingerprintSync ( query ) {
310315 if ( ! wasmModule ) {
311- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
316+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
312317 }
313318 const queryPtr = stringToPtr ( query ) ;
314319 let resultPtr ;
@@ -332,7 +337,7 @@ function fingerprintSync(query) {
332337
333338function normalizeSync ( query ) {
334339 if ( ! wasmModule ) {
335- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
340+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
336341 }
337342 const queryPtr = stringToPtr ( query ) ;
338343 let resultPtr ;
@@ -356,7 +361,7 @@ function normalizeSync(query) {
356361
357362function parseQueryDetailedSync ( query ) {
358363 if ( ! wasmModule ) {
359- throw new Error ( 'WASM module not initialized. Call an async method first to initialize .' ) ;
364+ throw new Error ( 'WASM module not initialized. Call loadModule() first.' ) ;
360365 }
361366 const queryPtr = stringToPtr ( query ) ;
362367 let resultPtr ;
@@ -396,13 +401,8 @@ function parseQueryDetailedSync(query) {
396401 }
397402}
398403
399-
400-
401- function isReady ( ) {
402- return ! ! wasmModule ;
403- }
404-
405404module . exports = {
405+ loadModule,
406406 parseQuery,
407407 deparse,
408408 parsePlPgSQL,
@@ -414,7 +414,5 @@ module.exports = {
414414 parsePlPgSQLSync,
415415 fingerprintSync,
416416 normalizeSync,
417- parseQueryDetailedSync,
418- isReady,
419- initPromise
417+ parseQueryDetailedSync
420418} ;
0 commit comments