+1
-1
| /// <reference path="types.d.ts" /> | ||
| export declare function queryMw(_mwConfig: MWApi, opts: QueryOpts, articleIds?: string[]): Promise<QueryMwRet>; | ||
| export declare function queryMw(_mwConfig: MWApi, opts: QueryOpts, articleIds?: string[], handleBatch?: (ret: QueryMwRet) => Promise<void>): Promise<QueryMwRet>; |
+36
-10
@@ -23,3 +23,3 @@ "use strict"; | ||
| }; | ||
| function queryMw(_mwConfig, opts, articleIds) { | ||
| function queryMw(_mwConfig, opts, articleIds, handleBatch) { | ||
| return __awaiter(this, void 0, void 0, function* () { | ||
@@ -33,3 +33,2 @@ if (articleIds && !articleIds.length) { | ||
| const queryUrl = `${mwConfig.apiUrl.replace('?', '')}${queryStr}`; | ||
| // "continue" is a reserved word, using "_continue" | ||
| let resp; | ||
@@ -48,9 +47,8 @@ try { | ||
| mwConfig.requestSize *= 0.9; | ||
| return queryMw(mwConfig, opts, articleIds); | ||
| return queryMw(mwConfig, opts, articleIds, handleBatch); | ||
| } | ||
| } | ||
| let processedResponse = util_1.normalizeResponse(resp.query || { normalized: [], pages: {} }); | ||
| if (resp.continue) { | ||
| const nextResp = yield queryMw(_mwConfig, Object.assign({}, opts, { continue: resp.continue }), articleIds); | ||
| processedResponse = deepmerge_1.default(processedResponse, nextResp); | ||
| if (handleBatch) { | ||
| yield handleBatch(processedResponse); | ||
| } | ||
@@ -74,8 +72,36 @@ if (resp['query-continue']) { | ||
| }, {}); | ||
| const nextResp = yield queryMw(_mwConfig, Object.assign({}, opts, { _opts: _optsObj }), articleIds); | ||
| processedResponse = deepmerge_1.default(processedResponse, nextResp); | ||
| const nextResp = yield queryMw(_mwConfig, Object.assign({}, opts, { _opts: _optsObj }), articleIds, handleBatch); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } | ||
| else { | ||
| processedResponse = deepmerge_1.default(processedResponse, nextResp); | ||
| } | ||
| } | ||
| else if (resp.continue) { | ||
| const cont = opts.continue || {}; | ||
| const propContinues = Object.keys(resp.continue).filter((a) => a !== 'continue'); | ||
| if (propContinues.length) { | ||
| delete resp.continue.continue; | ||
| Object.assign(cont, resp.continue || {}); | ||
| } | ||
| else { | ||
| opts.continue = resp.continue; | ||
| } | ||
| const nextResp = yield queryMw(_mwConfig, Object.assign({}, opts, { continue: cont }), articleIds, handleBatch); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } | ||
| else { | ||
| processedResponse = deepmerge_1.default(processedResponse, nextResp); | ||
| } | ||
| } | ||
| if (articleIds) { | ||
| const nextResp = queryMw(mwConfig, opts, articleIds.slice(mwConfig.requestSize)); | ||
| return deepmerge_1.default(processedResponse, nextResp); | ||
| const nextResp = yield queryMw(mwConfig, opts, articleIds.slice(mwConfig.requestSize), handleBatch); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } | ||
| else { | ||
| return deepmerge_1.default(processedResponse, nextResp); | ||
| } | ||
| } | ||
@@ -82,0 +108,0 @@ else { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,kCAAkC;;;;;;;;;;;;;AAElC,iCAAsE;AACtE,0DAAkC;AAElC,MAAM,eAAe,GAAU;IAC3B,MAAM,EAAE,oCAAoC;IAC5C,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,EAAE;CAClB,CAAC;AAEF,SAAsB,OAAO,CAAC,SAAgB,EAAE,IAAe,EAAE,UAAqB;;QAClF,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAClC,OAAO,EAAE,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAE/D,MAAM,eAAe,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,uBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;QAElE,mDAAmD;QACnD,IAAI,IAAmB,CAAC;QAExB,IAAI;YACA,IAAI,GAAG,MAAM,cAAO,CAAgB,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACnE;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,WAAW,GAAG,EAAE,EAAE;gBAC3B,MAAM,GAAG,CAAC;aACb;iBAAM;gBACH,QAAQ,CAAC,WAAW,IAAI,GAAG,CAAC;gBAC5B,OAAO,OAAO,CACV,QAAQ,EACR,IAAI,EACJ,UAAU,CACb,CAAC;aACL;SACJ;QAED,IAAI,iBAAiB,GAAG,wBAAiB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC1B,SAAS,oBAEF,IAAI,IACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAE3B,UAAU,CACb,CAAC;YAEF,iBAAiB,GAAG,mBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACxB,MAAM,IAAI,GAAQ;gBACd,UAAU,EAAE,SAAS;aACxB,CAAC;YAEF,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;aAClE;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;aAClE;YAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAC3B,MAAM,CAAC,MAAM,CACT,EAAE,EACF,IAAI,CAAC,KAAK,IAAI,EAAE,EAChB,IAAI,CACP,CACJ;iBACI,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/B,IAAI,KAAK,EAAE;oBACP,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACpB;gBACD,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,EAAE,CAAC,CAAC;YAEX,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC1B,SAAS,oBAEF,IAAI,IACP,KAAK,EAAE,QAAQ,KAEnB,UAAU,CACb,CAAC;YAEF,iBAAiB,GAAG,mBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;SAC9D;QAED,IAAI,UAAU,EAAE;YACZ,MAAM,QAAQ,GAAG,OAAO,CACpB,QAAQ,EACR,IAAI,EACJ,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzC,CAAC;YAEF,OAAO,mBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;SACjD;aAAM;YACH,OAAO,iBAAiB,CAAC;SAC5B;IACL,CAAC;CAAA;AAjGD,0BAiGC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "mw-query", | ||
| "version": "1.0.6", | ||
| "version": "1.0.7", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "main": "bin/index.js", |
+45
-16
@@ -13,3 +13,3 @@ // tslint:disable-next-line:no-reference | ||
| export async function queryMw(_mwConfig: MWApi, opts: QueryOpts, articleIds?: string[]): Promise<QueryMwRet> { | ||
| export async function queryMw(_mwConfig: MWApi, opts: QueryOpts, articleIds?: string[], handleBatch?: (ret: QueryMwRet) => Promise<void>): Promise<QueryMwRet> { | ||
| if (articleIds && !articleIds.length) { | ||
@@ -27,3 +27,2 @@ return {}; | ||
| // "continue" is a reserved word, using "_continue" | ||
| let resp: MwApiResponse; | ||
@@ -45,2 +44,3 @@ | ||
| articleIds, | ||
| handleBatch, | ||
| ); | ||
@@ -52,16 +52,8 @@ } | ||
| if (resp.continue) { | ||
| const nextResp = await queryMw( | ||
| _mwConfig, | ||
| { | ||
| ...opts, | ||
| continue: resp.continue, | ||
| }, | ||
| articleIds, | ||
| ); | ||
| processedResponse = deepmerge(processedResponse, nextResp); | ||
| if (handleBatch) { | ||
| await handleBatch(processedResponse); | ||
| } | ||
| if (resp['query-continue']) { | ||
| const cont: any = { | ||
@@ -98,15 +90,52 @@ picontinue: undefined, | ||
| articleIds, | ||
| handleBatch, | ||
| ); | ||
| processedResponse = deepmerge(processedResponse, nextResp); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } else { | ||
| processedResponse = deepmerge(processedResponse, nextResp); | ||
| } | ||
| } else if (resp.continue) { | ||
| const cont = opts.continue || {}; | ||
| const propContinues = Object.keys(resp.continue).filter((a) => a !== 'continue'); | ||
| if (propContinues.length) { | ||
| delete resp.continue.continue; | ||
| Object.assign(cont, resp.continue || {}); | ||
| } else { | ||
| opts.continue = resp.continue; | ||
| } | ||
| const nextResp = await queryMw( | ||
| _mwConfig, | ||
| { | ||
| ...opts, | ||
| continue: cont, | ||
| }, | ||
| articleIds, | ||
| handleBatch, | ||
| ); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } else { | ||
| processedResponse = deepmerge(processedResponse, nextResp); | ||
| } | ||
| } | ||
| if (articleIds) { | ||
| const nextResp = queryMw( | ||
| const nextResp = await queryMw( | ||
| mwConfig, | ||
| opts, | ||
| articleIds.slice(mwConfig.requestSize), | ||
| handleBatch, | ||
| ); | ||
| return deepmerge(processedResponse, nextResp); | ||
| if (handleBatch) { | ||
| return nextResp; | ||
| } else { | ||
| return deepmerge(processedResponse, nextResp); | ||
| } | ||
| } else { | ||
@@ -113,0 +142,0 @@ return processedResponse; |
31916
7.76%667
8.28%