UNPKG

2.22 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,qBAAuC,SAAQ,cAAuB;IAM1E,YACE,YAAoB,EACpB,SAAwD,EACxD,OAAoD,EACpD,cAA6D;QAE7D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SACrC;IACH,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CACtB,YAAoB,EACpB,SAAwD,EACxD,OAAoD,EACpD,cAA6D;IAE7D,OAAO,IAAI,qBAAqB,CAC9B,YAAY,EACZ,SAAS,EACT,OAAO,EACP,cAAc,CACf,CAAC;AACJ,CAAC","file":"generate.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\n\nclass GenerateAsyncIterable<TState, TResult> extends AsyncIterableX<TResult> {\n private _initialState: TState;\n private _condition: (value: TState) => boolean | Promise<boolean>;\n private _iterate: (value: TState) => TState | Promise<TState>;\n private _resultSelector: (value: TState) => TResult | Promise<TResult>;\n\n constructor(\n initialState: TState,\n condition: (value: TState) => boolean | Promise<boolean>,\n iterate: (value: TState) => TState | Promise<TState>,\n resultSelector: (value: TState) => TResult | Promise<TResult>\n ) {\n super();\n this._initialState = initialState;\n this._condition = condition;\n this._iterate = iterate;\n this._resultSelector = resultSelector;\n }\n\n async *[Symbol.asyncIterator]() {\n for (let i = this._initialState; await this._condition(i); i = await this._iterate(i)) {\n yield await this._resultSelector(i);\n }\n }\n}\n\nexport function generate<TState, TResult>(\n initialState: TState,\n condition: (value: TState) => boolean | Promise<boolean>,\n iterate: (value: TState) => TState | Promise<TState>,\n resultSelector: (value: TState) => TResult | Promise<TResult>\n): AsyncIterableX<TResult> {\n return new GenerateAsyncIterable<TState, TResult>(\n initialState,\n condition,\n iterate,\n resultSelector\n );\n}\n"]}
\No newline at end of file