gas-client
Version:
A client-side utility class that can call server-side Google Apps Script functions
27 lines (23 loc) • 769 B
text/typescript
import { ignoredFunctionNames } from '../utils/ignored-function-names';
import { promisify } from '../utils/promisify';
import { FunctionProvider } from './function-provider';
import { FunctionMap, ServerFunctions } from '../types/functions';
class GASPromises<FM extends FunctionMap> extends FunctionProvider<FM> {
constructor() {
super();
this.promisifyGASFunctions();
}
private promisifyGASFunctions(): void {
this._serverFunctions = Object.keys(google.script.run).reduce(
(acc, functionName) =>
ignoredFunctionNames.includes(functionName)
? acc
: {
...acc,
[functionName]: promisify(functionName),
},
{}
) as ServerFunctions<FM>;
}
}
export { GASPromises };