UNPKG

typed-utilities

Version:
25 lines (19 loc) 1.14 kB
"use strict"; var _range = require("../range"); const genAsyncResultJoinType = k => { const t = (0, _range.range)(k).map(k => `V${k + 1}`); return `${k === 0 ? `` : `<${t.join(`, `)}>(values: readonly [${t.map(t => `AsyncResult<${t}>`).join(`, `)}]): AsyncResult<[${t.join(`, `)}], AggregateError>;`}`; }; const genAsyncResultJoinTypes = n => [`type Join = {`, ...(0, _range.range)(n + 1).map(k => ` ${genAsyncResultJoinType(k)}`), `<V>(values: readonly AsyncResult<V>[]): AsyncResult<V[], AggregateError>;`, `};`].join(`\n`); const genResolveAllType = k => { const t = (0, _range.range)(k).map(k => `T${k + 1}`); return `${k === 0 ? `` : `<${t.join(`, `)}>`}(values: readonly [${t.map(t => `Promise<${t}>`).join(`, `)}]): Promise<[${t}]>;`; }; const genResolveAllTypes = n => [`type ResolveAll = {`, ...(0, _range.range)(n + 1).map(k => ` ${genResolveAllType(k)}`), `};`].join(`\n`); if (require.main === module) { console.log(`------- resolveAll --------`); console.log(genResolveAllTypes(20)); console.log(`---------- Join -----------`); console.log(genAsyncResultJoinTypes(20)); } //# sourceMappingURL=codegen.js.map