UNPKG

1.69 kBTypeScriptView Raw
1/*!
2 * Copyright 2017 Google Inc. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16import { PromisifyOptions } from '@google-cloud/promisify';
17/**
18 * This replaces usage of promisifyAll(), going forward. Instead of opting
19 * some methods out, you will need to opt methods in. Additionally, this
20 * function validates method names against the class using TypeScript,
21 * to generate compile-time failures for misspellings and changes.
22 *
23 * Future work in the library should all be Promise-first.
24 *
25 * @private
26 */
27export declare function promisifySome<T>(class_: Function, classProto: T, methods: (keyof T)[], options?: PromisifyOptions): void;
28export declare function noop(): void;
29/**
30 * Provides a very simple throttling capability for tasks like error logs.
31 * This ensures that no task is actually completed unless N millis have passed
32 * since the last one.
33 *
34 * @private
35 */
36export declare class Throttler {
37 minMillis: number;
38 lastTime?: number;
39 constructor(minMillis: number);
40 /**
41 * Performs the task requested, if enough time has passed since the
42 * last successful call.
43 */
44 doMaybe(task: Function): void;
45}