mirror of
https://github.com/musix-org/musix-oss
synced 2025-07-06 22:10:49 +00:00
Modules
This commit is contained in:
36
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.d.ts
generated
vendored
Normal file
36
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.d.ts
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { APICaller, ApiCallerSettings } from '../apiCaller';
|
||||
import { APICallback, GRPCCall, SimpleCallbackFunction } from '../apitypes';
|
||||
import { OngoingCall, OngoingCallPromise } from '../call';
|
||||
import { CallSettings } from '../gax';
|
||||
import { GoogleError } from '../googleError';
|
||||
import { BundleExecutor } from './bundleExecutor';
|
||||
/**
|
||||
* An implementation of APICaller for bundled calls.
|
||||
* Uses BundleExecutor to do bundling.
|
||||
*/
|
||||
export declare class BundleApiCaller implements APICaller {
|
||||
bundler: BundleExecutor;
|
||||
constructor(bundler: BundleExecutor);
|
||||
init(settings: ApiCallerSettings, callback?: APICallback): OngoingCallPromise | OngoingCall;
|
||||
wrap(func: GRPCCall): GRPCCall;
|
||||
call(apiCall: SimpleCallbackFunction, argument: {}, settings: CallSettings, status: OngoingCallPromise): void;
|
||||
fail(canceller: OngoingCallPromise, err: GoogleError): void;
|
||||
result(canceller: OngoingCallPromise): import("../call").CancellablePromise<[import("../apitypes").ResponseType, {
|
||||
[index: string]: string | number | {};
|
||||
} | null | undefined, {} | import("..").Operation | null | undefined]>;
|
||||
}
|
54
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.js
generated
vendored
Normal file
54
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.js
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const call_1 = require("../call");
|
||||
const googleError_1 = require("../googleError");
|
||||
/**
|
||||
* An implementation of APICaller for bundled calls.
|
||||
* Uses BundleExecutor to do bundling.
|
||||
*/
|
||||
class BundleApiCaller {
|
||||
constructor(bundler) {
|
||||
this.bundler = bundler;
|
||||
}
|
||||
init(settings, callback) {
|
||||
if (callback) {
|
||||
return new call_1.OngoingCall(callback);
|
||||
}
|
||||
return new call_1.OngoingCallPromise(settings.promise);
|
||||
}
|
||||
wrap(func) {
|
||||
return func;
|
||||
}
|
||||
call(apiCall, argument, settings, status) {
|
||||
if (!settings.isBundling) {
|
||||
throw new googleError_1.GoogleError('Bundling enabled with no isBundling!');
|
||||
}
|
||||
status.call((argument, callback) => {
|
||||
this.bundler.schedule(apiCall, argument, callback);
|
||||
return status;
|
||||
}, argument);
|
||||
}
|
||||
fail(canceller, err) {
|
||||
canceller.callback(err);
|
||||
}
|
||||
result(canceller) {
|
||||
return canceller.promise;
|
||||
}
|
||||
}
|
||||
exports.BundleApiCaller = BundleApiCaller;
|
||||
//# sourceMappingURL=bundleApiCaller.js.map
|
1
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.js.map
generated
vendored
Normal file
1
node_modules/google-gax/build/src/bundlingCalls/bundleApiCaller.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bundleApiCaller.js","sourceRoot":"","sources":["../../../src/bundlingCalls/bundleApiCaller.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAIH,kCAAwD;AAExD,gDAA2C;AAK3C;;;GAGG;AACH,MAAa,eAAe;IAG1B,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,CACF,QAA2B,EAC3B,QAAsB;QAEtB,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,kBAAW,CAAC,QAAQ,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,yBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,IAAc;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,OAA+B,EAC/B,QAAY,EACZ,QAAsB,EACtB,MAA0B;QAE1B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;YACxB,MAAM,IAAI,yBAAW,CAAC,sCAAsC,CAAC,CAAC;SAC/D;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,QAAY,EAAE,QAAsB,EAAE,EAAE;YACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAA6B,EAAE,GAAgB;QAClD,SAAS,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,SAA6B;QAClC,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;CACF;AA5CD,0CA4CC"}
|
57
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.d.ts
generated
vendored
Normal file
57
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.d.ts
generated
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Descriptor } from '../descriptor';
|
||||
import { CallSettings } from '../gax';
|
||||
import { NormalApiCaller } from '../normalCalls/normalApiCaller';
|
||||
import { BundleApiCaller } from './bundleApiCaller';
|
||||
/**
|
||||
* A descriptor for calls that can be bundled into one call.
|
||||
*/
|
||||
export declare class BundleDescriptor implements Descriptor {
|
||||
bundledField: string;
|
||||
requestDiscriminatorFields: string[];
|
||||
subresponseField: string | null;
|
||||
byteLengthFunction: Function;
|
||||
/**
|
||||
* Describes the structure of bundled call.
|
||||
*
|
||||
* requestDiscriminatorFields may include '.' as a separator, which is used to
|
||||
* indicate object traversal. This allows fields in nested objects to be used
|
||||
* to determine what request to bundle.
|
||||
*
|
||||
* @property {String} bundledField
|
||||
* @property {String} requestDiscriminatorFields
|
||||
* @property {String} subresponseField
|
||||
* @property {Function} byteLengthFunction
|
||||
*
|
||||
* @param {String} bundledField - the repeated field in the request message
|
||||
* that will have its elements aggregated by bundling.
|
||||
* @param {String} requestDiscriminatorFields - a list of fields in the
|
||||
* target request message class that are used to detemrine which request
|
||||
* messages should be bundled together.
|
||||
* @param {String} subresponseField - an optional field, when present it
|
||||
* indicates the field in the response message that should be used to
|
||||
* demultiplex the response into multiple response messages.
|
||||
* @param {Function} byteLengthFunction - a function to obtain the byte
|
||||
* length to be consumed for the bundled field messages. Because Node.JS
|
||||
* protobuf.js/gRPC uses builtin Objects for the user-visible data and
|
||||
* internally they are encoded/decoded in protobuf manner, this function
|
||||
* is actually necessary to calculate the byte length.
|
||||
* @constructor
|
||||
*/
|
||||
constructor(bundledField: string, requestDiscriminatorFields: string[], subresponseField: string | null, byteLengthFunction: Function);
|
||||
getApiCaller(settings: CallSettings): NormalApiCaller | BundleApiCaller;
|
||||
}
|
70
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.js
generated
vendored
Normal file
70
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.js
generated
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const normalApiCaller_1 = require("../normalCalls/normalApiCaller");
|
||||
const bundleApiCaller_1 = require("./bundleApiCaller");
|
||||
const bundleExecutor_1 = require("./bundleExecutor");
|
||||
/**
|
||||
* A descriptor for calls that can be bundled into one call.
|
||||
*/
|
||||
class BundleDescriptor {
|
||||
/**
|
||||
* Describes the structure of bundled call.
|
||||
*
|
||||
* requestDiscriminatorFields may include '.' as a separator, which is used to
|
||||
* indicate object traversal. This allows fields in nested objects to be used
|
||||
* to determine what request to bundle.
|
||||
*
|
||||
* @property {String} bundledField
|
||||
* @property {String} requestDiscriminatorFields
|
||||
* @property {String} subresponseField
|
||||
* @property {Function} byteLengthFunction
|
||||
*
|
||||
* @param {String} bundledField - the repeated field in the request message
|
||||
* that will have its elements aggregated by bundling.
|
||||
* @param {String} requestDiscriminatorFields - a list of fields in the
|
||||
* target request message class that are used to detemrine which request
|
||||
* messages should be bundled together.
|
||||
* @param {String} subresponseField - an optional field, when present it
|
||||
* indicates the field in the response message that should be used to
|
||||
* demultiplex the response into multiple response messages.
|
||||
* @param {Function} byteLengthFunction - a function to obtain the byte
|
||||
* length to be consumed for the bundled field messages. Because Node.JS
|
||||
* protobuf.js/gRPC uses builtin Objects for the user-visible data and
|
||||
* internally they are encoded/decoded in protobuf manner, this function
|
||||
* is actually necessary to calculate the byte length.
|
||||
* @constructor
|
||||
*/
|
||||
constructor(bundledField, requestDiscriminatorFields, subresponseField, byteLengthFunction) {
|
||||
if (!byteLengthFunction && typeof subresponseField === 'function') {
|
||||
byteLengthFunction = subresponseField;
|
||||
subresponseField = null;
|
||||
}
|
||||
this.bundledField = bundledField;
|
||||
this.requestDiscriminatorFields = requestDiscriminatorFields;
|
||||
this.subresponseField = subresponseField;
|
||||
this.byteLengthFunction = byteLengthFunction;
|
||||
}
|
||||
getApiCaller(settings) {
|
||||
if (settings.isBundling === false) {
|
||||
return new normalApiCaller_1.NormalApiCaller();
|
||||
}
|
||||
return new bundleApiCaller_1.BundleApiCaller(new bundleExecutor_1.BundleExecutor(settings.bundleOptions, this));
|
||||
}
|
||||
}
|
||||
exports.BundleDescriptor = BundleDescriptor;
|
||||
//# sourceMappingURL=bundleDescriptor.js.map
|
1
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.js.map
generated
vendored
Normal file
1
node_modules/google-gax/build/src/bundlingCalls/bundleDescriptor.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bundleDescriptor.js","sourceRoot":"","sources":["../../../src/bundlingCalls/bundleDescriptor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAIH,oEAA+D;AAE/D,uDAAkD;AAClD,qDAAgD;AAEhD;;GAEG;AACH,MAAa,gBAAgB;IAM3B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,YACE,YAAoB,EACpB,0BAAoC,EACpC,gBAA+B,EAC/B,kBAA4B;QAE5B,IAAI,CAAC,kBAAkB,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;YACjE,kBAAkB,GAAG,gBAAgB,CAAC;YACtC,gBAAgB,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,QAAsB;QACjC,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE;YACjC,OAAO,IAAI,iCAAe,EAAE,CAAC;SAC9B;QACD,OAAO,IAAI,iCAAe,CACxB,IAAI,+BAAc,CAAC,QAAQ,CAAC,aAAc,EAAE,IAAI,CAAC,CAClD,CAAC;IACJ,CAAC;CACF;AAzDD,4CAyDC"}
|
116
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.d.ts
generated
vendored
Normal file
116
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.d.ts
generated
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { SimpleCallbackFunction } from '../apitypes';
|
||||
import { BundleDescriptor } from './bundleDescriptor';
|
||||
import { Task, TaskCallback } from './task';
|
||||
/**
|
||||
* Parameter to configure bundling behavior.
|
||||
* @typedef {Object} BundleOptions
|
||||
* @property {number} elementCountThreshold -
|
||||
* the bundled request will be sent once the count of outstanding elements
|
||||
* in the repeated field reaches this value.
|
||||
* @property {number} elementCountLimit -
|
||||
* represents a hard limit on the number of elements in the repeated field
|
||||
* of the bundle; if adding a request to a bundle would exceed this value,
|
||||
* the bundle is sent and the new request is added to a fresh bundle. It is
|
||||
* invalid for a single request to exceed this limit.
|
||||
* @property {number} requestByteThreshold -
|
||||
* the bundled request will be sent once the count of bytes in the request
|
||||
* reaches this value. Note that this value is pessimistically approximated
|
||||
* by summing the bytesizes of the elements in the repeated field, and
|
||||
* therefore may be an under-approximation.
|
||||
* @property {number} requestByteLimit -
|
||||
* represents a hard limit on the size of the bundled request; if adding
|
||||
* a request to a bundle would exceed this value, the bundle is sent and
|
||||
* the new request is added to a fresh bundle. It is invalid for a single
|
||||
* request to exceed this limit. Note that this value is pessimistically
|
||||
* approximated by summing the bytesizes of the elements in the repeated
|
||||
* field, with a buffer applied to correspond to the resulting
|
||||
* under-approximation.
|
||||
* @property {number} delayThreshold -
|
||||
* the bundled request will be sent this amount of time after the first
|
||||
* element in the bundle was added to it.
|
||||
*/
|
||||
export interface BundleOptions {
|
||||
elementCountLimit?: number;
|
||||
requestByteLimit?: number;
|
||||
elementCountThreshold?: number;
|
||||
requestByteThreshold?: number;
|
||||
delayThreshold?: number;
|
||||
}
|
||||
/**
|
||||
* BundleExecutor stores several timers for each bundle (calls are bundled based
|
||||
* on the options passed, each bundle has unique ID that is calculated based on
|
||||
* field values). Each timer fires and sends a call after certain amount of
|
||||
* time, and if a new request comes to the same bundle, the timer can be
|
||||
* restarted.
|
||||
*/
|
||||
export declare class BundleExecutor {
|
||||
_options: BundleOptions;
|
||||
_descriptor: BundleDescriptor;
|
||||
_tasks: {
|
||||
[index: string]: Task;
|
||||
};
|
||||
_timers: {
|
||||
[index: string]: ReturnType<typeof setTimeout>;
|
||||
};
|
||||
_invocations: {
|
||||
[index: string]: string;
|
||||
};
|
||||
_invocationId: number;
|
||||
/**
|
||||
* Organizes requests for an api service that requires to bundle them.
|
||||
*
|
||||
* @param {BundleOptions} bundleOptions - configures strategy this instance
|
||||
* uses when executing bundled functions.
|
||||
* @param {BundleDescriptor} bundleDescriptor - the description of the bundling.
|
||||
* @constructor
|
||||
*/
|
||||
constructor(bundleOptions: BundleOptions, bundleDescriptor: BundleDescriptor);
|
||||
/**
|
||||
* Schedule a method call.
|
||||
*
|
||||
* @param {function} apiCall - the function for an API call.
|
||||
* @param {Object} request - the request object to be bundled with others.
|
||||
* @param {APICallback} callback - the callback to be called when the method finished.
|
||||
* @return {function()} - the function to cancel the scheduled invocation.
|
||||
*/
|
||||
schedule(apiCall: SimpleCallbackFunction, request: {
|
||||
[index: string]: Array<{}> | string;
|
||||
}, callback?: TaskCallback): import("../apitypes").GRPCCallResult;
|
||||
/**
|
||||
* Clears scheduled timeout if it exists.
|
||||
*
|
||||
* @param {String} bundleId - the id for the task whose timeout needs to be
|
||||
* cleared.
|
||||
* @private
|
||||
*/
|
||||
private _maybeClearTimeout;
|
||||
/**
|
||||
* Cancels an event.
|
||||
*
|
||||
* @param {String} id - The id for the event in the task.
|
||||
* @private
|
||||
*/
|
||||
private _cancel;
|
||||
/**
|
||||
* Invokes a task.
|
||||
*
|
||||
* @param {String} bundleId - The id for the task.
|
||||
* @private
|
||||
*/
|
||||
_runNow(bundleId: string): void;
|
||||
}
|
193
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.js
generated
vendored
Normal file
193
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.js
generated
vendored
Normal file
@ -0,0 +1,193 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const status_1 = require("../status");
|
||||
const googleError_1 = require("../googleError");
|
||||
const warnings_1 = require("../warnings");
|
||||
const bundlingUtils_1 = require("./bundlingUtils");
|
||||
const task_1 = require("./task");
|
||||
function noop() { }
|
||||
/**
|
||||
* BundleExecutor stores several timers for each bundle (calls are bundled based
|
||||
* on the options passed, each bundle has unique ID that is calculated based on
|
||||
* field values). Each timer fires and sends a call after certain amount of
|
||||
* time, and if a new request comes to the same bundle, the timer can be
|
||||
* restarted.
|
||||
*/
|
||||
class BundleExecutor {
|
||||
/**
|
||||
* Organizes requests for an api service that requires to bundle them.
|
||||
*
|
||||
* @param {BundleOptions} bundleOptions - configures strategy this instance
|
||||
* uses when executing bundled functions.
|
||||
* @param {BundleDescriptor} bundleDescriptor - the description of the bundling.
|
||||
* @constructor
|
||||
*/
|
||||
constructor(bundleOptions, bundleDescriptor) {
|
||||
this._options = bundleOptions;
|
||||
this._descriptor = bundleDescriptor;
|
||||
this._tasks = {};
|
||||
this._timers = {};
|
||||
this._invocations = {};
|
||||
this._invocationId = 0;
|
||||
}
|
||||
/**
|
||||
* Schedule a method call.
|
||||
*
|
||||
* @param {function} apiCall - the function for an API call.
|
||||
* @param {Object} request - the request object to be bundled with others.
|
||||
* @param {APICallback} callback - the callback to be called when the method finished.
|
||||
* @return {function()} - the function to cancel the scheduled invocation.
|
||||
*/
|
||||
schedule(apiCall, request, callback) {
|
||||
const bundleId = bundlingUtils_1.computeBundleId(request, this._descriptor.requestDiscriminatorFields);
|
||||
callback = (callback || noop);
|
||||
if (bundleId === undefined) {
|
||||
warnings_1.warn('bundling_schedule_bundleid_undefined', 'The request does not have enough information for request bundling. ' +
|
||||
`Invoking immediately. Request: ${JSON.stringify(request)} ` +
|
||||
`discriminator fields: ${this._descriptor.requestDiscriminatorFields}`);
|
||||
return apiCall(request, callback);
|
||||
}
|
||||
if (request[this._descriptor.bundledField] === undefined) {
|
||||
warnings_1.warn('bundling_no_bundled_field', `Request does not contain field ${this._descriptor.bundledField} that must present for bundling. ` +
|
||||
`Invoking immediately. Request: ${JSON.stringify(request)}`);
|
||||
return apiCall(request, callback);
|
||||
}
|
||||
if (!(bundleId in this._tasks)) {
|
||||
this._tasks[bundleId] = new task_1.Task(apiCall, request, this._descriptor.bundledField, this._descriptor.subresponseField);
|
||||
}
|
||||
let task = this._tasks[bundleId];
|
||||
callback.id = String(this._invocationId++);
|
||||
this._invocations[callback.id] = bundleId;
|
||||
const bundledField = request[this._descriptor.bundledField];
|
||||
const elementCount = bundledField.length;
|
||||
let requestBytes = 0;
|
||||
const self = this;
|
||||
bundledField.forEach(obj => {
|
||||
requestBytes += this._descriptor.byteLengthFunction(obj);
|
||||
});
|
||||
const countLimit = this._options.elementCountLimit || 0;
|
||||
const byteLimit = this._options.requestByteLimit || 0;
|
||||
if ((countLimit > 0 && elementCount > countLimit) ||
|
||||
(byteLimit > 0 && requestBytes >= byteLimit)) {
|
||||
let message;
|
||||
if (countLimit > 0 && elementCount > countLimit) {
|
||||
message =
|
||||
'The number of elements ' +
|
||||
elementCount +
|
||||
' exceeds the limit ' +
|
||||
this._options.elementCountLimit;
|
||||
}
|
||||
else {
|
||||
message =
|
||||
'The required bytes ' +
|
||||
requestBytes +
|
||||
' exceeds the limit ' +
|
||||
this._options.requestByteLimit;
|
||||
}
|
||||
const error = new googleError_1.GoogleError(message);
|
||||
error.code = status_1.Status.INVALID_ARGUMENT;
|
||||
callback(error);
|
||||
return {
|
||||
cancel: noop,
|
||||
};
|
||||
}
|
||||
const existingCount = task.getElementCount();
|
||||
const existingBytes = task.getRequestByteSize();
|
||||
if ((countLimit > 0 && elementCount + existingCount >= countLimit) ||
|
||||
(byteLimit > 0 && requestBytes + existingBytes >= byteLimit)) {
|
||||
this._runNow(bundleId);
|
||||
this._tasks[bundleId] = new task_1.Task(apiCall, request, this._descriptor.bundledField, this._descriptor.subresponseField);
|
||||
task = this._tasks[bundleId];
|
||||
}
|
||||
task.extend(bundledField, requestBytes, callback);
|
||||
const ret = {
|
||||
cancel() {
|
||||
self._cancel(callback.id);
|
||||
},
|
||||
};
|
||||
const countThreshold = this._options.elementCountThreshold || 0;
|
||||
const sizeThreshold = this._options.requestByteThreshold || 0;
|
||||
if ((countThreshold > 0 && task.getElementCount() >= countThreshold) ||
|
||||
(sizeThreshold > 0 && task.getRequestByteSize() >= sizeThreshold)) {
|
||||
this._runNow(bundleId);
|
||||
return ret;
|
||||
}
|
||||
if (!(bundleId in this._timers) && this._options.delayThreshold > 0) {
|
||||
this._timers[bundleId] = setTimeout(() => {
|
||||
delete this._timers[bundleId];
|
||||
this._runNow(bundleId);
|
||||
}, this._options.delayThreshold);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
/**
|
||||
* Clears scheduled timeout if it exists.
|
||||
*
|
||||
* @param {String} bundleId - the id for the task whose timeout needs to be
|
||||
* cleared.
|
||||
* @private
|
||||
*/
|
||||
_maybeClearTimeout(bundleId) {
|
||||
if (bundleId in this._timers) {
|
||||
const timerId = this._timers[bundleId];
|
||||
delete this._timers[bundleId];
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Cancels an event.
|
||||
*
|
||||
* @param {String} id - The id for the event in the task.
|
||||
* @private
|
||||
*/
|
||||
_cancel(id) {
|
||||
if (!(id in this._invocations)) {
|
||||
return;
|
||||
}
|
||||
const bundleId = this._invocations[id];
|
||||
if (!(bundleId in this._tasks)) {
|
||||
return;
|
||||
}
|
||||
const task = this._tasks[bundleId];
|
||||
delete this._invocations[id];
|
||||
if (task.cancel(id)) {
|
||||
this._maybeClearTimeout(bundleId);
|
||||
delete this._tasks[bundleId];
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Invokes a task.
|
||||
*
|
||||
* @param {String} bundleId - The id for the task.
|
||||
* @private
|
||||
*/
|
||||
_runNow(bundleId) {
|
||||
if (!(bundleId in this._tasks)) {
|
||||
warnings_1.warn('bundle_runnow_bundleid_unknown', `No such bundleid: ${bundleId}`);
|
||||
return;
|
||||
}
|
||||
this._maybeClearTimeout(bundleId);
|
||||
const task = this._tasks[bundleId];
|
||||
delete this._tasks[bundleId];
|
||||
task.run().forEach(id => {
|
||||
delete this._invocations[id];
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.BundleExecutor = BundleExecutor;
|
||||
//# sourceMappingURL=bundleExecutor.js.map
|
1
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.js.map
generated
vendored
Normal file
1
node_modules/google-gax/build/src/bundlingCalls/bundleExecutor.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
28
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.d.ts
generated
vendored
Normal file
28
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.d.ts
generated
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { RequestType } from '../apitypes';
|
||||
/**
|
||||
* Compute the identifier of the `obj`. The objects of the same ID
|
||||
* will be bundled together.
|
||||
*
|
||||
* @param {RequestType} obj - The request object.
|
||||
* @param {String[]} discriminatorFields - The array of field names.
|
||||
* A field name may include '.' as a separator, which is used to
|
||||
* indicate object traversal.
|
||||
* @return {String|undefined} - the identifier string, or undefined if any
|
||||
* discriminator fields do not exist.
|
||||
*/
|
||||
export declare function computeBundleId(obj: RequestType, discriminatorFields: string[]): string | undefined;
|
52
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.js
generated
vendored
Normal file
52
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.js
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/**
|
||||
* Provides behavior that supports request bundling.
|
||||
*/
|
||||
const at = require("lodash.at");
|
||||
/**
|
||||
* Compute the identifier of the `obj`. The objects of the same ID
|
||||
* will be bundled together.
|
||||
*
|
||||
* @param {RequestType} obj - The request object.
|
||||
* @param {String[]} discriminatorFields - The array of field names.
|
||||
* A field name may include '.' as a separator, which is used to
|
||||
* indicate object traversal.
|
||||
* @return {String|undefined} - the identifier string, or undefined if any
|
||||
* discriminator fields do not exist.
|
||||
*/
|
||||
function computeBundleId(obj, discriminatorFields) {
|
||||
const ids = [];
|
||||
let hasIds = false;
|
||||
for (let i = 0; i < discriminatorFields.length; ++i) {
|
||||
const id = at(obj, discriminatorFields[i])[0];
|
||||
if (id === undefined) {
|
||||
ids.push(null);
|
||||
}
|
||||
else {
|
||||
hasIds = true;
|
||||
ids.push(id);
|
||||
}
|
||||
}
|
||||
if (!hasIds) {
|
||||
return undefined;
|
||||
}
|
||||
return JSON.stringify(ids);
|
||||
}
|
||||
exports.computeBundleId = computeBundleId;
|
||||
//# sourceMappingURL=bundlingUtils.js.map
|
1
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.js.map
generated
vendored
Normal file
1
node_modules/google-gax/build/src/bundlingCalls/bundlingUtils.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bundlingUtils.js","sourceRoot":"","sources":["../../../src/bundlingCalls/bundlingUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAEH;;GAEG;AAEH,gCAAiC;AAIjC;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC7B,GAAgB,EAChB,mBAA6B;IAE7B,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnD,MAAM,EAAE,GAAG,EAAE,CAAC,GAA0B,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChB;aAAM;YACL,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACd;KACF;IACD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAnBD,0CAmBC"}
|
100
node_modules/google-gax/build/src/bundlingCalls/task.d.ts
generated
vendored
Normal file
100
node_modules/google-gax/build/src/bundlingCalls/task.d.ts
generated
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { APICallback, GRPCCallResult, SimpleCallbackFunction } from '../apitypes';
|
||||
export interface SubResponseInfo {
|
||||
field: string;
|
||||
start?: number;
|
||||
end?: number;
|
||||
}
|
||||
export interface TaskElement {
|
||||
}
|
||||
export interface TaskData {
|
||||
elements: TaskElement[];
|
||||
bytes: number;
|
||||
callback: TaskCallback;
|
||||
cancelled?: boolean;
|
||||
}
|
||||
export interface TaskCallback extends APICallback {
|
||||
id?: string;
|
||||
}
|
||||
/**
|
||||
* Creates a deep copy of the object with the consideration of subresponse
|
||||
* fields for bundling.
|
||||
*
|
||||
* @param {Object} obj - The source object.
|
||||
* @param {Object?} subresponseInfo - The information to copy the subset of
|
||||
* the field for the response. Do nothing if it's null.
|
||||
* @param {String} subresponseInfo.field - The field name.
|
||||
* @param {number} subresponseInfo.start - The offset where the copying
|
||||
* element should starts with.
|
||||
* @param {number} subresponseInfo.end - The ending index where the copying
|
||||
* region of the elements ends.
|
||||
* @return {Object} The copied object.
|
||||
* @private
|
||||
*/
|
||||
export declare function deepCopyForResponse(obj: any, subresponseInfo: SubResponseInfo | null): any;
|
||||
export declare class Task {
|
||||
_apiCall: SimpleCallbackFunction;
|
||||
_request: {
|
||||
[index: string]: TaskElement[];
|
||||
};
|
||||
_bundledField: string;
|
||||
_subresponseField?: string | null;
|
||||
_data: TaskData[];
|
||||
callCanceller?: GRPCCallResult;
|
||||
/**
|
||||
* A task coordinates the execution of a single bundle.
|
||||
*
|
||||
* @param {function} apiCall - The function to conduct calling API.
|
||||
* @param {Object} bundlingRequest - The base request object to be used
|
||||
* for the actual API call.
|
||||
* @param {string} bundledField - The name of the field in bundlingRequest
|
||||
* to be bundled.
|
||||
* @param {string=} subresponseField - The name of the field in the response
|
||||
* to be passed to the callback.
|
||||
* @constructor
|
||||
* @private
|
||||
*/
|
||||
constructor(apiCall: SimpleCallbackFunction, bundlingRequest: {}, bundledField: string, subresponseField?: string | null);
|
||||
/**
|
||||
* Returns the number of elements in a task.
|
||||
* @return {number} The number of elements.
|
||||
*/
|
||||
getElementCount(): number;
|
||||
/**
|
||||
* Returns the total byte size of the elements in a task.
|
||||
* @return {number} The byte size.
|
||||
*/
|
||||
getRequestByteSize(): number;
|
||||
/**
|
||||
* Invokes the actual API call with current elements.
|
||||
* @return {string[]} - the list of ids for invocations to be run.
|
||||
*/
|
||||
run(): string[];
|
||||
/**
|
||||
* Appends the list of elements into the task.
|
||||
* @param {Object[]} elements - the new list of elements.
|
||||
* @param {number} bytes - the byte size required to encode elements in the API.
|
||||
* @param {APICallback} callback - the callback of the method call.
|
||||
*/
|
||||
extend(elements: TaskElement[], bytes: number, callback: TaskCallback): void;
|
||||
/**
|
||||
* Cancels a part of elements.
|
||||
* @param {string} id - The identifier of the part of elements.
|
||||
* @return {boolean} Whether the entire task will be canceled or not.
|
||||
*/
|
||||
cancel(id: string): boolean;
|
||||
}
|
226
node_modules/google-gax/build/src/bundlingCalls/task.js
generated
vendored
Normal file
226
node_modules/google-gax/build/src/bundlingCalls/task.js
generated
vendored
Normal file
@ -0,0 +1,226 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const status_1 = require("../status");
|
||||
const googleError_1 = require("../googleError");
|
||||
/**
|
||||
* Creates a deep copy of the object with the consideration of subresponse
|
||||
* fields for bundling.
|
||||
*
|
||||
* @param {Object} obj - The source object.
|
||||
* @param {Object?} subresponseInfo - The information to copy the subset of
|
||||
* the field for the response. Do nothing if it's null.
|
||||
* @param {String} subresponseInfo.field - The field name.
|
||||
* @param {number} subresponseInfo.start - The offset where the copying
|
||||
* element should starts with.
|
||||
* @param {number} subresponseInfo.end - The ending index where the copying
|
||||
* region of the elements ends.
|
||||
* @return {Object} The copied object.
|
||||
* @private
|
||||
*/
|
||||
function deepCopyForResponse(
|
||||
// tslint:disable-next-line no-any
|
||||
obj, subresponseInfo) {
|
||||
// tslint:disable-next-line no-any
|
||||
let result;
|
||||
if (obj === null) {
|
||||
return null;
|
||||
}
|
||||
if (obj === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
if (Array.isArray(obj)) {
|
||||
result = [];
|
||||
obj.forEach(element => {
|
||||
result.push(deepCopyForResponse(element, null));
|
||||
});
|
||||
return result;
|
||||
}
|
||||
// Some objects (such as ByteBuffer) have copy method.
|
||||
if (obj.copy !== undefined) {
|
||||
return obj.copy();
|
||||
}
|
||||
// ArrayBuffer should be copied through slice().
|
||||
if (obj instanceof ArrayBuffer) {
|
||||
return obj.slice(0);
|
||||
}
|
||||
if (typeof obj === 'object') {
|
||||
result = {};
|
||||
Object.keys(obj).forEach(key => {
|
||||
if (subresponseInfo &&
|
||||
key === subresponseInfo.field &&
|
||||
Array.isArray(obj[key])) {
|
||||
// Note that subresponses are not deep-copied. This is safe because
|
||||
// those subresponses are not shared among callbacks.
|
||||
result[key] = obj[key].slice(subresponseInfo.start, subresponseInfo.end);
|
||||
}
|
||||
else {
|
||||
result[key] = deepCopyForResponse(obj[key], null);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
exports.deepCopyForResponse = deepCopyForResponse;
|
||||
class Task {
|
||||
/**
|
||||
* A task coordinates the execution of a single bundle.
|
||||
*
|
||||
* @param {function} apiCall - The function to conduct calling API.
|
||||
* @param {Object} bundlingRequest - The base request object to be used
|
||||
* for the actual API call.
|
||||
* @param {string} bundledField - The name of the field in bundlingRequest
|
||||
* to be bundled.
|
||||
* @param {string=} subresponseField - The name of the field in the response
|
||||
* to be passed to the callback.
|
||||
* @constructor
|
||||
* @private
|
||||
*/
|
||||
constructor(apiCall, bundlingRequest, bundledField, subresponseField) {
|
||||
this._apiCall = apiCall;
|
||||
this._request = bundlingRequest;
|
||||
this._bundledField = bundledField;
|
||||
this._subresponseField = subresponseField;
|
||||
this._data = [];
|
||||
}
|
||||
/**
|
||||
* Returns the number of elements in a task.
|
||||
* @return {number} The number of elements.
|
||||
*/
|
||||
getElementCount() {
|
||||
let count = 0;
|
||||
for (let i = 0; i < this._data.length; ++i) {
|
||||
count += this._data[i].elements.length;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
/**
|
||||
* Returns the total byte size of the elements in a task.
|
||||
* @return {number} The byte size.
|
||||
*/
|
||||
getRequestByteSize() {
|
||||
let size = 0;
|
||||
for (let i = 0; i < this._data.length; ++i) {
|
||||
size += this._data[i].bytes;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
/**
|
||||
* Invokes the actual API call with current elements.
|
||||
* @return {string[]} - the list of ids for invocations to be run.
|
||||
*/
|
||||
run() {
|
||||
if (this._data.length === 0) {
|
||||
return [];
|
||||
}
|
||||
const request = this._request;
|
||||
const elements = [];
|
||||
const ids = [];
|
||||
for (let i = 0; i < this._data.length; ++i) {
|
||||
elements.push.apply(elements, this._data[i].elements);
|
||||
ids.push(this._data[i].callback.id);
|
||||
}
|
||||
request[this._bundledField] = elements;
|
||||
const self = this;
|
||||
this.callCanceller = this._apiCall(request, (err, response) => {
|
||||
const responses = [];
|
||||
if (err) {
|
||||
self._data.forEach(() => {
|
||||
responses.push(undefined);
|
||||
});
|
||||
}
|
||||
else {
|
||||
let subresponseInfo = null;
|
||||
if (self._subresponseField) {
|
||||
subresponseInfo = {
|
||||
field: self._subresponseField,
|
||||
start: 0,
|
||||
};
|
||||
}
|
||||
self._data.forEach(data => {
|
||||
if (subresponseInfo) {
|
||||
subresponseInfo.end =
|
||||
subresponseInfo.start + data.elements.length;
|
||||
}
|
||||
responses.push(deepCopyForResponse(response, subresponseInfo));
|
||||
if (subresponseInfo) {
|
||||
subresponseInfo.start = subresponseInfo.end;
|
||||
}
|
||||
});
|
||||
}
|
||||
for (let i = 0; i < self._data.length; ++i) {
|
||||
if (self._data[i].cancelled) {
|
||||
const error = new googleError_1.GoogleError('cancelled');
|
||||
error.code = status_1.Status.CANCELLED;
|
||||
self._data[i].callback(error);
|
||||
}
|
||||
else {
|
||||
self._data[i].callback(err, responses[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
return ids;
|
||||
}
|
||||
/**
|
||||
* Appends the list of elements into the task.
|
||||
* @param {Object[]} elements - the new list of elements.
|
||||
* @param {number} bytes - the byte size required to encode elements in the API.
|
||||
* @param {APICallback} callback - the callback of the method call.
|
||||
*/
|
||||
extend(elements, bytes, callback) {
|
||||
this._data.push({
|
||||
elements,
|
||||
bytes,
|
||||
callback,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Cancels a part of elements.
|
||||
* @param {string} id - The identifier of the part of elements.
|
||||
* @return {boolean} Whether the entire task will be canceled or not.
|
||||
*/
|
||||
cancel(id) {
|
||||
if (this.callCanceller) {
|
||||
let allCancelled = true;
|
||||
this._data.forEach(d => {
|
||||
if (d.callback.id === id) {
|
||||
d.cancelled = true;
|
||||
}
|
||||
if (!d.cancelled) {
|
||||
allCancelled = false;
|
||||
}
|
||||
});
|
||||
if (allCancelled) {
|
||||
this.callCanceller.cancel();
|
||||
}
|
||||
return allCancelled;
|
||||
}
|
||||
for (let i = 0; i < this._data.length; ++i) {
|
||||
if (this._data[i].callback.id === id) {
|
||||
const error = new googleError_1.GoogleError('cancelled');
|
||||
error.code = status_1.Status.CANCELLED;
|
||||
this._data[i].callback(error);
|
||||
this._data.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return this._data.length === 0;
|
||||
}
|
||||
}
|
||||
exports.Task = Task;
|
||||
//# sourceMappingURL=task.js.map
|
1
node_modules/google-gax/build/src/bundlingCalls/task.js.map
generated
vendored
Normal file
1
node_modules/google-gax/build/src/bundlingCalls/task.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user