As seen in TeamService2.ts, the Contextual type will add Context as the
last argument to any method of the interface, as long as the method has
0-4 arguments.
Interfaces with more than 4 arguments cannot use this type, but they
could be converted to interfaces which use 1 argument
(object/dictionary) only.
Some long-term thinking: Maybe only methods with a single argument
should be supported, similar to the way gRPC does it.
TypeScript compiler needs to be configured to output ES6 module by
setting --module es6 or the equivalent tsconfig.json compilerOptions
parameter.
Since tsc --build does not accept compiler options flags, we need to
duplicate some of the configuration:
- specify separate output folder for ES6 module files (new
tsconfig.esm.json file)
- add "module" field for ES6 module (esm) output files to package.json
Hence, a script `scripts/sync-esm-config.js` was added to automate this
process.