├── README.md ├── 3.html ├── fx.js ├── 4.html ├── 1.html ├── 2.html ├── 5.html └── fx.0.10.1.js /README.md: -------------------------------------------------------------------------------- 1 | # 11번가 함수형 프로그래밍, ES6+ 강의 2 | 3 | 1. ES6+ 기본기 4 | - 이터러블 5 | - for...of 가 내부적으로 하는 일 6 | - 이터레이터 7 | - 제너레이터 8 | 2. map, filter 9 | - map 10 | - filter 11 | 3. 이터러블 프로토콜로 다시 만들기 12 | - L.map 13 | - L.filter 14 | - L.take 15 | - L.takeUntil 16 | 4. 지연 평가와 제너레이터 17 | - range 18 | - 동작 순서와 효율 19 | 5. 명령형을 이터러블 프로그래밍으로 전환 1 20 | - 홀수 n개 더하기 명령형 코드 21 | - if를 filter로 22 | - 값 변화 후 변수 할당을 map으로 23 | - break를 take로 24 | - 합산을 reduce로 25 | - 효율 비교 26 | 6. 축약하는 함수 reduce 27 | - reduce, add 28 | - count 29 | 7. 함수를 다루는 함수 30 | - go 31 | - pipe 32 | - curry 33 | 8. 2차원 배열 다루기 flat 34 | - L.flat 35 | - 리얼월드, users 36 | 9. 커머스 데이터 다루기 37 | - 간단한 장바구니 38 | - 복잡한 장바구니 39 | 10. 비동기/동시성 프로그래밍 40 | - 비동기를 값으로 만드는 Promise 41 | - 값으로서의 Promise 활용 42 | - 합성 관점에서의 Promise 43 | - go, pipe, reduce에서 비동기 제어 44 | 11. 시간을 이터러블로 다루기 45 | 12. 아임포트 결제 누락 처리 스케쥴러 만들기 46 | 13. 이터러블 프로그래밍을 익혀야 하는 이유 -------------------------------------------------------------------------------- /3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 3 6 | 7 | 8 | 9 | 10 | 11 | 10. 비동기/동시성 프로그래밍 12 | - callback과 Promise 13 | 35 | 36 | - 비동기를 값으로 만드는 Promise 37 | - 값으로서의 Promise 활용 38 | 50 | 51 | - 합성 관점에서의 Promise 52 | 61 | 62 | - go, pipe, reduce에서 비동기 제어 63 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /fx.js: -------------------------------------------------------------------------------- 1 | const curry = f => (a, ...rest) => 2 | rest.length ? 3 | f(a, ...rest) : 4 | (...rest) => f(a, ...rest); 5 | 6 | const L = {}; 7 | L.map = curry(function* (f, iter) { 8 | for (const a of iter) { 9 | yield f(a); 10 | } 11 | }); 12 | 13 | const map = curry((..._) => [...L.map(..._)]); 14 | 15 | L.filter = curry(function* (f, iter) { 16 | for (const a of iter) { 17 | if (f(a)) yield a; 18 | } 19 | }); 20 | const filter = curry((..._) => [...L.filter(..._)]); 21 | 22 | L.takeUntil = curry(function* (f, iter) { 23 | for (const a of iter) { 24 | yield a; 25 | if (f(a)) break; 26 | } 27 | }); 28 | 29 | const takeUntil = curry((..._) => [...L.takeUntil(..._)]); 30 | 31 | L.take = curry((limit, iter) => L.takeUntil(_ => --limit == 0, iter)); 32 | 33 | const take = curry((..._) => [...L.take(..._)]); 34 | 35 | L.range = function* (start, end, step = 1) { 36 | while (start < end) { 37 | yield start; 38 | start += step; 39 | } 40 | }; 41 | 42 | const range = (..._) => [...L.range(..._)]; 43 | 44 | const go1 = (a, f) => 45 | a instanceof Promise ? a.then(f) : f(a); 46 | 47 | const reduce = curry(function(f, acc, iter) { 48 | if (arguments.length == 2) { 49 | iter = acc[Symbol.iterator](); 50 | acc = iter.next().value; 51 | } 52 | for (let a of iter) { 53 | acc = go1(acc, acc => f(acc, a)); 54 | } 55 | return acc; 56 | }); 57 | 58 | const add = (a, b) => a + b; 59 | 60 | const go = (arg, ...fs) => 61 | reduce((arg, f) => f(arg), arg, fs); 62 | 63 | const pipe = (f, ...fs) => (...args) => go(f(...args), ...fs); 64 | 65 | const sum = reduce(add); 66 | 67 | const sumBy = curry((f, iter) => sum(map(f, iter))); 68 | 69 | const isIterable = a => Boolean(a && a[Symbol.iterator]); 70 | 71 | L.flat = function* (iter) { 72 | for (const a of iter) { 73 | if (isIterable(a)) { 74 | yield* a; 75 | } else { 76 | yield a; 77 | } 78 | } 79 | }; 80 | 81 | const flat = iter => [...L.flat(iter)]; -------------------------------------------------------------------------------- /4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4 6 | 7 | 8 | 11 | 12 | 13 | 14 | 11. 시간을 이터러블로 다루기 15 | 17 | 18 | 12. 아임포트 결제 누락 처리 스케쥴러 만들기 19 | - https://github.com/iamport/iamport-manual/blob/master/%EC%9D%B8%EC%A6%9D%EA%B2%B0%EC%A0%9C/README.md#23-notification-url%EA%B0%80%EC%83%81%EA%B3%84%EC%A2%8C-%EC%9E%85%EA%B8%88%ED%86%B5%EB%B3%B4-%ED%8F%AC%ED%95%A8 20 | - https://api.iamport.kr/ 21 | 22 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 1 6 | 7 | 8 | 9 | 10 | 11 | 1. ES6+ 기본기 12 | 13 | - 이터러블 14 | - 순회 가능한 값. 15 | - iterable[Symbol.iterator]()로 이터레이터를 리턴하는 값. 16 | - 이터레이터 17 | - iterator.next()가 { value: Any, done: Boolean }를 리턴하는 값 18 | - rangeIterator 19 | 40 | 41 | - for...of 가 내부적으로 하는 일 42 | 53 | 54 | - 제너레이터 55 | - 실행하면 이터레이터를 반환하는 함수 56 | - yield 로 next()의 value 값을 발생 57 | - return 을 하면 { done: true } 58 | 74 | 75 | 2. map, filter 76 | - map 77 | - filter 78 | 99 | 100 | 3. 이터러블 프로토콜로 다시 만들기 101 | - L.map 102 | - L.filter 103 | - L.take 104 | - L.takeUntil 105 | - L.range 106 | 145 | 146 | 4. 지연 평가와 제너레이터 147 | - 동작 순서와 효율 148 | 163 | 164 | 5. 명령형을 이터러블 프로그래밍으로 전환 1 165 | - 홀수 n개 더하기 명령형 코드 166 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 2 6 | 7 | 8 | 9 | 10 | 11 | 6. 축약하는 함수 reduce 12 | - reduce, add 13 | 17 | 18 | - count 19 | 30 | 31 | 7. 함수를 다루는 함수 32 | - go 33 | - pipe (첫 번째 함수는 인자 여러개 받도록) 34 | 64 | 65 | - curry 66 | 93 | 94 | 8. 2차원 배열 다루기 flat 95 | - L.flat 96 | 122 | 123 | - 리얼월드, users 124 | 154 | 155 | 9. 커머스 데이터 다루기 156 | - 간단한 장바구니 157 | 193 | 194 | - 복잡한 장바구니 195 | 261 | 262 | 263 | -------------------------------------------------------------------------------- /5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 4 6 | 7 | 8 | 37 | 38 | 39 | 40 | 13. 이터러블 프로그래밍을 익혀야 하는 이유 41 | 42 | # ES6+의 표준 프로토콜 43 | - for...of 문은 이터러블을 순회합니다. 44 | 50 | 51 | - 이터러블은 전개 연산자를 통해 펼칠 수 있습니다. 52 | 56 | 57 | - [] 를 통한 구조분해는 이터러블에 사용합니다. 58 | 63 | 64 | - 나머지 연산자도 이터러블에 사용합니다. 65 | 70 | 71 | - 이터러블은 [Symbol.iterator]()를 통해 이터레이터를 반환합니다. 72 | - 제너레이터는 이터레이터를 반환합니다. 73 | - 이터레이터는 곧 이터러블입니다. (well-formed) 74 | - 이터레이터/제너레이터는 자바스크립트의 연산자, 구문 등과 함께 동작합니다. 75 | 94 | 95 | - 이런 규약을 통칭해 이터러블 프로토콜이라고 하며 이것은 ES6에서 매우 중요한 위치에 있습니다. 96 | - ES6+ 에서도 이런 규약을 사용하거나 컨셉을 함께하는 규약들이 만들어지고 있습니다. 97 | 98 | # 프로그래밍 패러다임 99 | - 이터러블/이터레이터/제너레이터는 코드를 값으로 다룰 수 있도록 하는 도구입니다. 100 | 136 | 137 | - 코드를 값으로 다루는 것은 리습/메타프로그래밍의 핵심입니다. 138 | - 자바스크립트는 이제 공식적으로 코드, 로직, 상태, 에러를 '값'으로 다룰 수 있게 되었습니다. 139 | - 비동기/동시성/병렬성을 값으로 잘 다룰 수 있습니다. 140 | - 함수와 코드를 값으로 다루는 것은 일종의 프로그래밍 패러다임입니다. 141 | - 이터러블 프로토콜을 잘 다룬다는 것은 새로운 프로그래밍 패러다임을 익히는 것과 같습니다. 142 | - 새로운 프로그래밍 패러다임을 익히는 것은 언어에 대한 관점과 응용력을 확장하는 것입니다. 143 | - 언어에 대한 응용력이 좋아지면 문제 해결력, 생산성, 안정성이 좋아집니다. 144 | - 문제 해결, 생산성, 안정성은 성공적인 프로그래밍의 핵심적인 지표입니다. 145 | - 현대 프로그래밍에서 함수형 패러다임은 언어 제약적이지 않습니다. 146 | 147 | # 조합성, 재사용성 148 | - 코드가 값으로 다뤄 질수 있다는 것은 그 코드가 어떤 '규약'을 지키고 있다는 것입니다. 149 | - 값으로 다룰 수 있도록 규약이 지켜진 코드는 재사용성이 높습니다. 150 | - 규약이 지켜진 코드는 다른 코드와의 조합성이 높습니다. 151 | - 규약이 지켜진 코드는 협업을 용이하게 합니다. 152 | - 이 규약이 언어의 규약과 일치할 수록 언어와 여러 도구의 도움을 받기 용이합니다. 153 | 154 | # 응용력 155 | - 추상화가 잘 된 규약은 응용력이 높습니다. 156 | - 이터러블은 값을 계산하여 세분화해나간 후에도 이터러블인 상태를 유지하도록 하여 157 | 추상화 수준을 동일하게 유지하는 아이디어를 가지고 있습니다. 158 | 166 | 167 | - 추상화 단계가 유지되면 여전히 동일한 응용력을 가질 수 있습니다. 168 | 182 | 183 | - 일반화가 많이 된 규약은 특정 상황에만 잘 대응될 가능성이 높습니다. 184 | - 소프트웨어의 복잡성이 증가할 수록 특정 상황에 특화된 패러다임보다는 185 | 유연성과 생산성을 함께 높일 수 있는 패러다임이 유리합니다. 186 | 187 | # 명령형 vs 함수형 188 | - 명령형 코드는 서로의 코드를 이해하기 어렵습니다. 189 | 203 | 204 | - 함수형 코드는 이해하기 쉬울 뿐 아니라 '코드를 응용(Applicative)' 할 수 있습니다. 205 | 214 | 215 | - 함수형 코드는 어디에서든 쓰일 수 있습니다. 216 | 217 | 231 | 232 | # 결론 233 | - '이터러블 프로그래밍'이라는 규약을 중심에 두고 팀 작업을 하게 되면, 234 | 구성원 간에 같은 관점을 갖게하여 소통이 용이하며, 235 | 생산성, 조합성, 안정성, 코드 품질 관리의 객관성을 높일 수 있습니다. 236 | - 팀에서 공유하고 있는 패러다임이 성숙해질수록 높을 효율을 얻을 수 있습니다. 237 | 238 | 239 | -------------------------------------------------------------------------------- /fx.0.10.1.js: -------------------------------------------------------------------------------- 1 | /******/ (function(modules) { // webpackBootstrap 2 | /******/ // The module cache 3 | /******/ var installedModules = {}; 4 | /******/ 5 | /******/ // The require function 6 | /******/ function __webpack_require__(moduleId) { 7 | /******/ 8 | /******/ // Check if module is in cache 9 | /******/ if(installedModules[moduleId]) { 10 | /******/ return installedModules[moduleId].exports; 11 | /******/ } 12 | /******/ // Create a new module (and put it into the cache) 13 | /******/ var module = installedModules[moduleId] = { 14 | /******/ i: moduleId, 15 | /******/ l: false, 16 | /******/ exports: {} 17 | /******/ }; 18 | /******/ 19 | /******/ // Execute the module function 20 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 21 | /******/ 22 | /******/ // Flag the module as loaded 23 | /******/ module.l = true; 24 | /******/ 25 | /******/ // Return the exports of the module 26 | /******/ return module.exports; 27 | /******/ } 28 | /******/ 29 | /******/ 30 | /******/ // expose the modules object (__webpack_modules__) 31 | /******/ __webpack_require__.m = modules; 32 | /******/ 33 | /******/ // expose the module cache 34 | /******/ __webpack_require__.c = installedModules; 35 | /******/ 36 | /******/ // define getter function for harmony exports 37 | /******/ __webpack_require__.d = function(exports, name, getter) { 38 | /******/ if(!__webpack_require__.o(exports, name)) { 39 | /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 40 | /******/ } 41 | /******/ }; 42 | /******/ 43 | /******/ // define __esModule on exports 44 | /******/ __webpack_require__.r = function(exports) { 45 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 46 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 47 | /******/ } 48 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); 49 | /******/ }; 50 | /******/ 51 | /******/ // create a fake namespace object 52 | /******/ // mode & 1: value is a module id, require it 53 | /******/ // mode & 2: merge all properties of value into the ns 54 | /******/ // mode & 4: return value when already ns object 55 | /******/ // mode & 8|1: behave like require 56 | /******/ __webpack_require__.t = function(value, mode) { 57 | /******/ if(mode & 1) value = __webpack_require__(value); 58 | /******/ if(mode & 8) return value; 59 | /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 60 | /******/ var ns = Object.create(null); 61 | /******/ __webpack_require__.r(ns); 62 | /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 63 | /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 64 | /******/ return ns; 65 | /******/ }; 66 | /******/ 67 | /******/ // getDefaultExport function for compatibility with non-harmony modules 68 | /******/ __webpack_require__.n = function(module) { 69 | /******/ var getter = module && module.__esModule ? 70 | /******/ function getDefault() { return module['default']; } : 71 | /******/ function getModuleExports() { return module; }; 72 | /******/ __webpack_require__.d(getter, 'a', getter); 73 | /******/ return getter; 74 | /******/ }; 75 | /******/ 76 | /******/ // Object.prototype.hasOwnProperty.call 77 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 78 | /******/ 79 | /******/ // __webpack_public_path__ 80 | /******/ __webpack_require__.p = ""; 81 | /******/ 82 | /******/ 83 | /******/ // Load entry module and return exports 84 | /******/ return __webpack_require__(__webpack_require__.s = 0); 85 | /******/ }) 86 | /************************************************************************/ 87 | /******/ ([ 88 | /* 0 */ 89 | /***/ (function(module, __webpack_exports__, __webpack_require__) { 90 | 91 | "use strict"; 92 | __webpack_require__.r(__webpack_exports__); 93 | var Strict_namespaceObject = {}; 94 | __webpack_require__.r(Strict_namespaceObject); 95 | __webpack_require__.d(Strict_namespaceObject, "add", function() { return add; }); 96 | __webpack_require__.d(Strict_namespaceObject, "append", function() { return Strict_append; }); 97 | __webpack_require__.d(Strict_namespaceObject, "apply", function() { return apply; }); 98 | __webpack_require__.d(Strict_namespaceObject, "baseSel", function() { return baseSel; }); 99 | __webpack_require__.d(Strict_namespaceObject, "base_sel", function() { return baseSel; }); 100 | __webpack_require__.d(Strict_namespaceObject, "call", function() { return call; }); 101 | __webpack_require__.d(Strict_namespaceObject, "calls", function() { return Strict_calls; }); 102 | __webpack_require__.d(Strict_namespaceObject, "chunk", function() { return Strict_chunk; }); 103 | __webpack_require__.d(Strict_namespaceObject, "compact", function() { return compact; }); 104 | __webpack_require__.d(Strict_namespaceObject, "constant", function() { return constant; }); 105 | __webpack_require__.d(Strict_namespaceObject, "countBy", function() { return Strict_countBy; }); 106 | __webpack_require__.d(Strict_namespaceObject, "count_by", function() { return Strict_countBy; }); 107 | __webpack_require__.d(Strict_namespaceObject, "curry", function() { return curry; }); 108 | __webpack_require__.d(Strict_namespaceObject, "debounce", function() { return Strict_debounce; }); 109 | __webpack_require__.d(Strict_namespaceObject, "deepFlat", function() { return deepFlat; }); 110 | __webpack_require__.d(Strict_namespaceObject, "deepFlatten", function() { return deepFlat; }); 111 | __webpack_require__.d(Strict_namespaceObject, "deep_flat", function() { return deepFlat; }); 112 | __webpack_require__.d(Strict_namespaceObject, "deep_flatten", function() { return deepFlat; }); 113 | __webpack_require__.d(Strict_namespaceObject, "defaults", function() { return Strict_defaults; }); 114 | __webpack_require__.d(Strict_namespaceObject, "defaultTo", function() { return defaultTo; }); 115 | __webpack_require__.d(Strict_namespaceObject, "default_to", function() { return defaultTo; }); 116 | __webpack_require__.d(Strict_namespaceObject, "delay", function() { return delay; }); 117 | __webpack_require__.d(Strict_namespaceObject, "difference", function() { return Strict_difference; }); 118 | __webpack_require__.d(Strict_namespaceObject, "differenceBy", function() { return Strict_differenceBy; }); 119 | __webpack_require__.d(Strict_namespaceObject, "difference_by", function() { return Strict_differenceBy; }); 120 | __webpack_require__.d(Strict_namespaceObject, "differenceWith", function() { return Strict_differenceWith; }); 121 | __webpack_require__.d(Strict_namespaceObject, "difference_with", function() { return Strict_differenceWith; }); 122 | __webpack_require__.d(Strict_namespaceObject, "drop", function() { return Strict_drop; }); 123 | __webpack_require__.d(Strict_namespaceObject, "dropRight", function() { return dropRight; }); 124 | __webpack_require__.d(Strict_namespaceObject, "drop_right", function() { return dropRight; }); 125 | __webpack_require__.d(Strict_namespaceObject, "dropUntil", function() { return dropUntil; }); 126 | __webpack_require__.d(Strict_namespaceObject, "drop_until", function() { return dropUntil; }); 127 | __webpack_require__.d(Strict_namespaceObject, "dropWhile", function() { return Strict_dropWhile; }); 128 | __webpack_require__.d(Strict_namespaceObject, "drop_while", function() { return Strict_dropWhile; }); 129 | __webpack_require__.d(Strict_namespaceObject, "each", function() { return Strict_each; }); 130 | __webpack_require__.d(Strict_namespaceObject, "forEach", function() { return Strict_each; }); 131 | __webpack_require__.d(Strict_namespaceObject, "entries", function() { return entries_entries; }); 132 | __webpack_require__.d(Strict_namespaceObject, "every", function() { return Strict_every; }); 133 | __webpack_require__.d(Strict_namespaceObject, "extend", function() { return extend; }); 134 | __webpack_require__.d(Strict_namespaceObject, "filter", function() { return Strict_filter; }); 135 | __webpack_require__.d(Strict_namespaceObject, "find", function() { return Strict_find; }); 136 | __webpack_require__.d(Strict_namespaceObject, "findWhere", function() { return Strict_findWhere; }); 137 | __webpack_require__.d(Strict_namespaceObject, "find_where", function() { return Strict_findWhere; }); 138 | __webpack_require__.d(Strict_namespaceObject, "flat", function() { return flat; }); 139 | __webpack_require__.d(Strict_namespaceObject, "flatten", function() { return flat; }); 140 | __webpack_require__.d(Strict_namespaceObject, "flatMap", function() { return Strict_flatMap; }); 141 | __webpack_require__.d(Strict_namespaceObject, "flat_map", function() { return Strict_flatMap; }); 142 | __webpack_require__.d(Strict_namespaceObject, "go", function() { return go; }); 143 | __webpack_require__.d(Strict_namespaceObject, "go1", function() { return go1; }); 144 | __webpack_require__.d(Strict_namespaceObject, "goS", function() { return goS; }); 145 | __webpack_require__.d(Strict_namespaceObject, "groupBy", function() { return Strict_groupBy; }); 146 | __webpack_require__.d(Strict_namespaceObject, "group_by", function() { return Strict_groupBy; }); 147 | __webpack_require__.d(Strict_namespaceObject, "has", function() { return has; }); 148 | __webpack_require__.d(Strict_namespaceObject, "head", function() { return head; }); 149 | __webpack_require__.d(Strict_namespaceObject, "hi", function() { return hi; }); 150 | __webpack_require__.d(Strict_namespaceObject, "html", function() { return html; }); 151 | __webpack_require__.d(Strict_namespaceObject, "identity", function() { return identity; }); 152 | __webpack_require__.d(Strict_namespaceObject, "indexBy", function() { return Strict_indexBy; }); 153 | __webpack_require__.d(Strict_namespaceObject, "index_by", function() { return Strict_indexBy; }); 154 | __webpack_require__.d(Strict_namespaceObject, "initial", function() { return initial; }); 155 | __webpack_require__.d(Strict_namespaceObject, "intersection", function() { return Strict_intersection; }); 156 | __webpack_require__.d(Strict_namespaceObject, "intersectionBy", function() { return Strict_intersectionBy; }); 157 | __webpack_require__.d(Strict_namespaceObject, "intersection_by", function() { return Strict_intersectionBy; }); 158 | __webpack_require__.d(Strict_namespaceObject, "intersectionWith", function() { return Strict_intersectionWith; }); 159 | __webpack_require__.d(Strict_namespaceObject, "intersection_with", function() { return Strict_intersectionWith; }); 160 | __webpack_require__.d(Strict_namespaceObject, "isArray", function() { return Strict_isArray; }); 161 | __webpack_require__.d(Strict_namespaceObject, "is_array", function() { return Strict_isArray; }); 162 | __webpack_require__.d(Strict_namespaceObject, "isFunction", function() { return isFunction; }); 163 | __webpack_require__.d(Strict_namespaceObject, "is_function", function() { return isFunction; }); 164 | __webpack_require__.d(Strict_namespaceObject, "isIterable", function() { return isIterable; }); 165 | __webpack_require__.d(Strict_namespaceObject, "is_iterable", function() { return isIterable; }); 166 | __webpack_require__.d(Strict_namespaceObject, "isMatch", function() { return Strict_isMatch; }); 167 | __webpack_require__.d(Strict_namespaceObject, "is_match", function() { return Strict_isMatch; }); 168 | __webpack_require__.d(Strict_namespaceObject, "isStop", function() { return isStop; }); 169 | __webpack_require__.d(Strict_namespaceObject, "is_stop", function() { return isStop; }); 170 | __webpack_require__.d(Strict_namespaceObject, "isString", function() { return isString; }); 171 | __webpack_require__.d(Strict_namespaceObject, "is_string", function() { return isString; }); 172 | __webpack_require__.d(Strict_namespaceObject, "isUndefined", function() { return isUndefined; }); 173 | __webpack_require__.d(Strict_namespaceObject, "is_undefined", function() { return isUndefined; }); 174 | __webpack_require__.d(Strict_namespaceObject, "join", function() { return Strict_join; }); 175 | __webpack_require__.d(Strict_namespaceObject, "keys", function() { return keys; }); 176 | __webpack_require__.d(Strict_namespaceObject, "last", function() { return last; }); 177 | __webpack_require__.d(Strict_namespaceObject, "log", function() { return Strict_log; }); 178 | __webpack_require__.d(Strict_namespaceObject, "map", function() { return Strict_map; }); 179 | __webpack_require__.d(Strict_namespaceObject, "mapEntries", function() { return Strict_mapEntries; }); 180 | __webpack_require__.d(Strict_namespaceObject, "map_entries", function() { return Strict_mapEntries; }); 181 | __webpack_require__.d(Strict_namespaceObject, "entriesMap", function() { return Strict_mapEntries; }); 182 | __webpack_require__.d(Strict_namespaceObject, "entries_map", function() { return Strict_mapEntries; }); 183 | __webpack_require__.d(Strict_namespaceObject, "mapObject", function() { return Strict_mapObject; }); 184 | __webpack_require__.d(Strict_namespaceObject, "map_object", function() { return Strict_mapObject; }); 185 | __webpack_require__.d(Strict_namespaceObject, "match", function() { return Strict_match; }); 186 | __webpack_require__.d(Strict_namespaceObject, "max", function() { return max; }); 187 | __webpack_require__.d(Strict_namespaceObject, "maxBy", function() { return Strict_maxBy; }); 188 | __webpack_require__.d(Strict_namespaceObject, "max_by", function() { return Strict_maxBy; }); 189 | __webpack_require__.d(Strict_namespaceObject, "min", function() { return min; }); 190 | __webpack_require__.d(Strict_namespaceObject, "minBy", function() { return Strict_minBy; }); 191 | __webpack_require__.d(Strict_namespaceObject, "min_by", function() { return Strict_minBy; }); 192 | __webpack_require__.d(Strict_namespaceObject, "negate", function() { return negate; }); 193 | __webpack_require__.d(Strict_namespaceObject, "noop", function() { return noop; }); 194 | __webpack_require__.d(Strict_namespaceObject, "nop", function() { return Strict_nop; }); 195 | __webpack_require__.d(Strict_namespaceObject, "not", function() { return not; }); 196 | __webpack_require__.d(Strict_namespaceObject, "object", function() { return object_object; }); 197 | __webpack_require__.d(Strict_namespaceObject, "fromEntries", function() { return object_object; }); 198 | __webpack_require__.d(Strict_namespaceObject, "from_entries", function() { return object_object; }); 199 | __webpack_require__.d(Strict_namespaceObject, "omit", function() { return Strict_omit; }); 200 | __webpack_require__.d(Strict_namespaceObject, "partition", function() { return Strict_partition; }); 201 | __webpack_require__.d(Strict_namespaceObject, "pick", function() { return Strict_pick; }); 202 | __webpack_require__.d(Strict_namespaceObject, "pipe", function() { return pipe; }); 203 | __webpack_require__.d(Strict_namespaceObject, "pipe1", function() { return pipe1; }); 204 | __webpack_require__.d(Strict_namespaceObject, "pipeS", function() { return pipeS; }); 205 | __webpack_require__.d(Strict_namespaceObject, "pluck", function() { return Strict_pluck; }); 206 | __webpack_require__.d(Strict_namespaceObject, "prepend", function() { return Strict_prepend; }); 207 | __webpack_require__.d(Strict_namespaceObject, "promiseAllEntries", function() { return promiseAllEntries; }); 208 | __webpack_require__.d(Strict_namespaceObject, "promise_all_entries", function() { return promiseAllEntries; }); 209 | __webpack_require__.d(Strict_namespaceObject, "promiseAllObject", function() { return promiseAllObject; }); 210 | __webpack_require__.d(Strict_namespaceObject, "promise_all_object", function() { return promiseAllObject; }); 211 | __webpack_require__.d(Strict_namespaceObject, "range", function() { return range; }); 212 | __webpack_require__.d(Strict_namespaceObject, "reduce", function() { return reduce; }); 213 | __webpack_require__.d(Strict_namespaceObject, "reduceS", function() { return reduceS; }); 214 | __webpack_require__.d(Strict_namespaceObject, "reject", function() { return Strict_reject; }); 215 | __webpack_require__.d(Strict_namespaceObject, "sel", function() { return Strict_sel; }); 216 | __webpack_require__.d(Strict_namespaceObject, "some", function() { return Strict_some; }); 217 | __webpack_require__.d(Strict_namespaceObject, "sort", function() { return sort; }); 218 | __webpack_require__.d(Strict_namespaceObject, "sortBy", function() { return Strict_sortBy; }); 219 | __webpack_require__.d(Strict_namespaceObject, "sort_by", function() { return Strict_sortBy; }); 220 | __webpack_require__.d(Strict_namespaceObject, "sortByDesc", function() { return Strict_sortByDesc; }); 221 | __webpack_require__.d(Strict_namespaceObject, "sort_by_desc", function() { return Strict_sortByDesc; }); 222 | __webpack_require__.d(Strict_namespaceObject, "sortDesc", function() { return sortDesc_sort; }); 223 | __webpack_require__.d(Strict_namespaceObject, "sort_desc", function() { return sortDesc_sort; }); 224 | __webpack_require__.d(Strict_namespaceObject, "split", function() { return split; }); 225 | __webpack_require__.d(Strict_namespaceObject, "splitEvery", function() { return Strict_splitEvery; }); 226 | __webpack_require__.d(Strict_namespaceObject, "split_every", function() { return Strict_splitEvery; }); 227 | __webpack_require__.d(Strict_namespaceObject, "stop", function() { return stop; }); 228 | __webpack_require__.d(Strict_namespaceObject, "stopIf", function() { return stopIf; }); 229 | __webpack_require__.d(Strict_namespaceObject, "stop_if", function() { return stopIf; }); 230 | __webpack_require__.d(Strict_namespaceObject, "string", function() { return string; }); 231 | __webpack_require__.d(Strict_namespaceObject, "strMap", function() { return Strict_strMap; }); 232 | __webpack_require__.d(Strict_namespaceObject, "str_map", function() { return Strict_strMap; }); 233 | __webpack_require__.d(Strict_namespaceObject, "scat", function() { return Strict_strMap; }); 234 | __webpack_require__.d(Strict_namespaceObject, "tail", function() { return tail; }); 235 | __webpack_require__.d(Strict_namespaceObject, "rest", function() { return tail; }); 236 | __webpack_require__.d(Strict_namespaceObject, "take", function() { return Strict_take; }); 237 | __webpack_require__.d(Strict_namespaceObject, "take1", function() { return Strict_take1; }); 238 | __webpack_require__.d(Strict_namespaceObject, "takeAll", function() { return takeAll; }); 239 | __webpack_require__.d(Strict_namespaceObject, "take_all", function() { return takeAll; }); 240 | __webpack_require__.d(Strict_namespaceObject, "takeUntil", function() { return Strict_takeUntil; }); 241 | __webpack_require__.d(Strict_namespaceObject, "take_until", function() { return Strict_takeUntil; }); 242 | __webpack_require__.d(Strict_namespaceObject, "takeWhile", function() { return Strict_takeWhile; }); 243 | __webpack_require__.d(Strict_namespaceObject, "take_while", function() { return Strict_takeWhile; }); 244 | __webpack_require__.d(Strict_namespaceObject, "tap", function() { return tap; }); 245 | __webpack_require__.d(Strict_namespaceObject, "throttle", function() { return Strict_throttle; }); 246 | __webpack_require__.d(Strict_namespaceObject, "toIter", function() { return toIter; }); 247 | __webpack_require__.d(Strict_namespaceObject, "to_iter", function() { return toIter; }); 248 | __webpack_require__.d(Strict_namespaceObject, "union", function() { return Strict_union; }); 249 | __webpack_require__.d(Strict_namespaceObject, "unionBy", function() { return Strict_unionBy; }); 250 | __webpack_require__.d(Strict_namespaceObject, "union_by", function() { return Strict_unionBy; }); 251 | __webpack_require__.d(Strict_namespaceObject, "unique", function() { return unique; }); 252 | __webpack_require__.d(Strict_namespaceObject, "uniq", function() { return unique; }); 253 | __webpack_require__.d(Strict_namespaceObject, "uniqueBy", function() { return Strict_uniqueBy; }); 254 | __webpack_require__.d(Strict_namespaceObject, "unique_by", function() { return Strict_uniqueBy; }); 255 | __webpack_require__.d(Strict_namespaceObject, "unzip", function() { return unzip; }); 256 | __webpack_require__.d(Strict_namespaceObject, "values", function() { return values; }); 257 | __webpack_require__.d(Strict_namespaceObject, "zip", function() { return Strict_zip; }); 258 | __webpack_require__.d(Strict_namespaceObject, "zipObj", function() { return Strict_zipObj; }); 259 | __webpack_require__.d(Strict_namespaceObject, "zip_obj", function() { return Strict_zipObj; }); 260 | __webpack_require__.d(Strict_namespaceObject, "zipWith", function() { return Strict_zipWith; }); 261 | __webpack_require__.d(Strict_namespaceObject, "zip_with", function() { return Strict_zipWith; }); 262 | var Lazy_namespaceObject = {}; 263 | __webpack_require__.r(Lazy_namespaceObject); 264 | __webpack_require__.d(Lazy_namespaceObject, "append", function() { return appendLazy; }); 265 | __webpack_require__.d(Lazy_namespaceObject, "chunk", function() { return Lazy_chunkLazy; }); 266 | __webpack_require__.d(Lazy_namespaceObject, "compact", function() { return compactLazy; }); 267 | __webpack_require__.d(Lazy_namespaceObject, "concat", function() { return concatLazy; }); 268 | __webpack_require__.d(Lazy_namespaceObject, "constant", function() { return constantLazy; }); 269 | __webpack_require__.d(Lazy_namespaceObject, "deepFlat", function() { return deepFlatLazy; }); 270 | __webpack_require__.d(Lazy_namespaceObject, "deep_flat", function() { return deepFlatLazy; }); 271 | __webpack_require__.d(Lazy_namespaceObject, "deepFlatten", function() { return deepFlatLazy; }); 272 | __webpack_require__.d(Lazy_namespaceObject, "deep_flatten", function() { return deepFlatLazy; }); 273 | __webpack_require__.d(Lazy_namespaceObject, "difference", function() { return Lazy_differenceLazy; }); 274 | __webpack_require__.d(Lazy_namespaceObject, "differenceWith", function() { return Lazy_differenceWithLazy; }); 275 | __webpack_require__.d(Lazy_namespaceObject, "difference_with", function() { return Lazy_differenceWithLazy; }); 276 | __webpack_require__.d(Lazy_namespaceObject, "differenceBy", function() { return Lazy_differenceByLazy; }); 277 | __webpack_require__.d(Lazy_namespaceObject, "difference_by", function() { return Lazy_differenceByLazy; }); 278 | __webpack_require__.d(Lazy_namespaceObject, "drop", function() { return Lazy_dropLazy; }); 279 | __webpack_require__.d(Lazy_namespaceObject, "dropUntil", function() { return Lazy_dropUntilLazy; }); 280 | __webpack_require__.d(Lazy_namespaceObject, "drop_until", function() { return Lazy_dropUntilLazy; }); 281 | __webpack_require__.d(Lazy_namespaceObject, "dropWhile", function() { return Lazy_dropWhileLazy; }); 282 | __webpack_require__.d(Lazy_namespaceObject, "drop_while", function() { return Lazy_dropWhileLazy; }); 283 | __webpack_require__.d(Lazy_namespaceObject, "empty", function() { return emptyLazy; }); 284 | __webpack_require__.d(Lazy_namespaceObject, "entries", function() { return entriesLazy; }); 285 | __webpack_require__.d(Lazy_namespaceObject, "filter", function() { return Lazy_filterLazy; }); 286 | __webpack_require__.d(Lazy_namespaceObject, "flat", function() { return flatLazy; }); 287 | __webpack_require__.d(Lazy_namespaceObject, "flatMap", function() { return Lazy_flatMapLazy; }); 288 | __webpack_require__.d(Lazy_namespaceObject, "flat_map", function() { return Lazy_flatMapLazy; }); 289 | __webpack_require__.d(Lazy_namespaceObject, "zipIndexs", function() { return zipIndexs; }); 290 | __webpack_require__.d(Lazy_namespaceObject, "zip_indexs", function() { return zipIndexs; }); 291 | __webpack_require__.d(Lazy_namespaceObject, "indexValues", function() { return zipIndexs; }); 292 | __webpack_require__.d(Lazy_namespaceObject, "index_values", function() { return zipIndexs; }); 293 | __webpack_require__.d(Lazy_namespaceObject, "intersection", function() { return Lazy_intersectionLazy; }); 294 | __webpack_require__.d(Lazy_namespaceObject, "intersectionWith", function() { return Lazy_intersectionWithLazy; }); 295 | __webpack_require__.d(Lazy_namespaceObject, "intersection_with", function() { return Lazy_intersectionWithLazy; }); 296 | __webpack_require__.d(Lazy_namespaceObject, "intersectionBy", function() { return Lazy_intersectionByLazy; }); 297 | __webpack_require__.d(Lazy_namespaceObject, "intersection_by", function() { return Lazy_intersectionByLazy; }); 298 | __webpack_require__.d(Lazy_namespaceObject, "interval", function() { return intervalLazy; }); 299 | __webpack_require__.d(Lazy_namespaceObject, "keys", function() { return keysLazy; }); 300 | __webpack_require__.d(Lazy_namespaceObject, "mapEntries", function() { return Lazy_mapEntriesLazy; }); 301 | __webpack_require__.d(Lazy_namespaceObject, "map_entries", function() { return Lazy_mapEntriesLazy; }); 302 | __webpack_require__.d(Lazy_namespaceObject, "map", function() { return Lazy_mapLazy; }); 303 | __webpack_require__.d(Lazy_namespaceObject, "prepend", function() { return prependLazy; }); 304 | __webpack_require__.d(Lazy_namespaceObject, "range", function() { return rangeLazy; }); 305 | __webpack_require__.d(Lazy_namespaceObject, "reject", function() { return Lazy_rejectLazy; }); 306 | __webpack_require__.d(Lazy_namespaceObject, "reverse", function() { return reverseLazy; }); 307 | __webpack_require__.d(Lazy_namespaceObject, "splitEvery", function() { return Lazy_splitEveryLazy; }); 308 | __webpack_require__.d(Lazy_namespaceObject, "split_every", function() { return Lazy_splitEveryLazy; }); 309 | __webpack_require__.d(Lazy_namespaceObject, "take", function() { return Lazy_takeLazy; }); 310 | __webpack_require__.d(Lazy_namespaceObject, "takeWhile", function() { return Lazy_takeWhileLazy; }); 311 | __webpack_require__.d(Lazy_namespaceObject, "take_while", function() { return Lazy_takeWhileLazy; }); 312 | __webpack_require__.d(Lazy_namespaceObject, "takeUntil", function() { return Lazy_takeUntilLazy; }); 313 | __webpack_require__.d(Lazy_namespaceObject, "take_until", function() { return Lazy_takeUntilLazy; }); 314 | __webpack_require__.d(Lazy_namespaceObject, "unionBy", function() { return Lazy_unionByLazy; }); 315 | __webpack_require__.d(Lazy_namespaceObject, "union_by", function() { return Lazy_unionByLazy; }); 316 | __webpack_require__.d(Lazy_namespaceObject, "union", function() { return Lazy_unionLazy; }); 317 | __webpack_require__.d(Lazy_namespaceObject, "uniqueBy", function() { return Lazy_uniqueByLazy; }); 318 | __webpack_require__.d(Lazy_namespaceObject, "unique_by", function() { return Lazy_uniqueByLazy; }); 319 | __webpack_require__.d(Lazy_namespaceObject, "unique", function() { return uniqueLazy; }); 320 | __webpack_require__.d(Lazy_namespaceObject, "values", function() { return valuesLazy; }); 321 | __webpack_require__.d(Lazy_namespaceObject, "zip", function() { return Lazy_zipLazy; }); 322 | var Concurrency_namespaceObject = {}; 323 | __webpack_require__.r(Concurrency_namespaceObject); 324 | __webpack_require__.d(Concurrency_namespaceObject, "calls", function() { return callsC; }); 325 | __webpack_require__.d(Concurrency_namespaceObject, "compact", function() { return compactC; }); 326 | __webpack_require__.d(Concurrency_namespaceObject, "drop", function() { return Concurrency_dropC; }); 327 | __webpack_require__.d(Concurrency_namespaceObject, "every", function() { return Concurrency_everyC; }); 328 | __webpack_require__.d(Concurrency_namespaceObject, "filter", function() { return Concurrency_filterC; }); 329 | __webpack_require__.d(Concurrency_namespaceObject, "find", function() { return Concurrency_findC; }); 330 | __webpack_require__.d(Concurrency_namespaceObject, "head", function() { return headC; }); 331 | __webpack_require__.d(Concurrency_namespaceObject, "map", function() { return Concurrency_mapC; }); 332 | __webpack_require__.d(Concurrency_namespaceObject, "mapEntries", function() { return Concurrency_mapEntriesC; }); 333 | __webpack_require__.d(Concurrency_namespaceObject, "object", function() { return objectC; }); 334 | __webpack_require__.d(Concurrency_namespaceObject, "fromEntries", function() { return objectC; }); 335 | __webpack_require__.d(Concurrency_namespaceObject, "from_entries", function() { return objectC; }); 336 | __webpack_require__.d(Concurrency_namespaceObject, "race", function() { return raceC; }); 337 | __webpack_require__.d(Concurrency_namespaceObject, "reduce", function() { return Concurrency_reduceC; }); 338 | __webpack_require__.d(Concurrency_namespaceObject, "some", function() { return Concurrency_someC; }); 339 | __webpack_require__.d(Concurrency_namespaceObject, "tail", function() { return tailC; }); 340 | __webpack_require__.d(Concurrency_namespaceObject, "take1", function() { return take1C; }); 341 | __webpack_require__.d(Concurrency_namespaceObject, "takeAll", function() { return takeAllC; }); 342 | __webpack_require__.d(Concurrency_namespaceObject, "take", function() { return Concurrency_takeC; }); 343 | __webpack_require__.d(Concurrency_namespaceObject, "takeRace", function() { return Concurrency_takeRaceC; }); 344 | 345 | // CONCATENATED MODULE: ./Strict/curry.js 346 | function curry(f) { 347 | return (a, ..._) => _.length < 1 ? (..._) => f(a, ..._) : f(a, ..._); 348 | } 349 | // CONCATENATED MODULE: ./Strict/add.js 350 | 351 | 352 | /* harmony default export */ var add = (curry(function add(a, b) { 353 | return a + b; 354 | })); 355 | 356 | // CONCATENATED MODULE: ./Lazy/emptyLazy.js 357 | const emptyIter = (function *() {} ()); 358 | function emptyLazy() { return emptyIter; }; 359 | 360 | // CONCATENATED MODULE: ./Strict/toIter.js 361 | 362 | 363 | function toIter(iterable) { 364 | return iterable && iterable[Symbol.iterator] ? iterable[Symbol.iterator]() : emptyLazy(); 365 | } 366 | // CONCATENATED MODULE: ./Strict/nop.js 367 | const nop = Symbol.for('nop'); 368 | 369 | /* harmony default export */ var Strict_nop = (nop); 370 | // CONCATENATED MODULE: ./Strict/take.js 371 | 372 | 373 | 374 | 375 | /* harmony default export */ var Strict_take = (curry(function take(l, iter) { 376 | if (l < 1) return []; 377 | let res = []; 378 | iter = toIter(iter); 379 | return function recur() { 380 | let cur; 381 | while (!(cur = iter.next()).done) { 382 | const a = cur.value; 383 | if (a instanceof Promise) { 384 | return a 385 | .then(a => (res.push(a), res).length == l ? res : recur()) 386 | .catch(e => e == Strict_nop ? recur() : Promise.reject(e)); 387 | } 388 | res.push(a); 389 | if (res.length == l) return res; 390 | } 391 | return res; 392 | } (); 393 | })); 394 | // CONCATENATED MODULE: ./Strict/takeAll.js 395 | 396 | 397 | function takeAll(iter) { 398 | return Strict_take(Infinity, iter); 399 | } 400 | // CONCATENATED MODULE: ./Lazy/appendLazy.js 401 | 402 | 403 | /* harmony default export */ var appendLazy = (curry(function *appendLazy(a, iter) { 404 | yield* iter; 405 | yield a; 406 | })); 407 | // CONCATENATED MODULE: ./Strict/append.js 408 | 409 | 410 | 411 | 412 | /* harmony default export */ var Strict_append = (curry(function append(a, iter) { 413 | return takeAll(appendLazy(a, iter)); 414 | })); 415 | // CONCATENATED MODULE: ./Strict/apply.js 416 | 417 | 418 | /* harmony default export */ var apply = (curry(function apply(f, iter) { 419 | return f(...iter); 420 | })); 421 | // CONCATENATED MODULE: ./Strict/isArray.js 422 | const { isArray } = Array; 423 | 424 | /* harmony default export */ var Strict_isArray = (isArray); 425 | // CONCATENATED MODULE: ./Strict/go1.js 426 | /* harmony default export */ var go1 = ((a, f) => a instanceof Promise ? a.then(f) : f(a)); 427 | // CONCATENATED MODULE: ./.internal/go2.js 428 | 429 | 430 | function go2(acc, a, f){ 431 | return a instanceof Promise ? 432 | a.then(a => f(acc, a), e => e == Strict_nop ? acc : Promise.reject(e)) : 433 | f(acc, a); 434 | } 435 | // CONCATENATED MODULE: ./Strict/head.js 436 | 437 | 438 | 439 | function head(iter) { 440 | return go1(Strict_take(1, iter), ([h]) => h); 441 | } 442 | // CONCATENATED MODULE: ./Strict/reduce.js 443 | 444 | 445 | 446 | 447 | 448 | function reduce(f, acc, iter) { 449 | if (arguments.length == 1) return (..._) => reduce(f, ..._); 450 | if (arguments.length == 2) return reduce(f, head(iter = toIter(acc)), iter); 451 | 452 | iter = toIter(iter); 453 | return go1(acc, function recur(acc) { 454 | let cur; 455 | while (!(cur = iter.next()).done) { 456 | acc = go2(acc, cur.value, f); 457 | if (acc instanceof Promise) return acc.then(recur); 458 | } 459 | return acc; 460 | }); 461 | } 462 | // CONCATENATED MODULE: ./Lazy/filterLazy.js 463 | 464 | 465 | 466 | 467 | 468 | /* harmony default export */ var Lazy_filterLazy = (curry(function* filterLazy(f, iter) { 469 | for (const a of toIter(iter)) { 470 | const b = go1(a, f); 471 | if (b instanceof Promise) yield b.then(b => b ? a : Promise.reject(Strict_nop)); 472 | else if (b) yield a; 473 | } 474 | })); 475 | // CONCATENATED MODULE: ./Strict/find.js 476 | 477 | 478 | 479 | 480 | /* harmony default export */ var Strict_find = (curry(function find(f, iter) { 481 | return head(Lazy_filterLazy(f, iter)); 482 | })); 483 | // CONCATENATED MODULE: ./.internal/go1Sync.js 484 | /* harmony default export */ var go1Sync = ((a, f) => f(a)); 485 | // CONCATENATED MODULE: ./Strict/go.js 486 | 487 | 488 | 489 | function go(..._) { 490 | return reduce(go1Sync, _); 491 | } 492 | // CONCATENATED MODULE: ./Lazy/mapLazy.js 493 | 494 | 495 | 496 | 497 | /* harmony default export */ var Lazy_mapLazy = (curry(function* mapLazy(f, iter) { 498 | for (const a of toIter(iter)) yield go1(a, f); 499 | })); 500 | // CONCATENATED MODULE: ./Strict/noop.js 501 | function noop() {}; 502 | // CONCATENATED MODULE: ./Lazy/takeUntilLazy.js 503 | 504 | 505 | 506 | 507 | 508 | 509 | /* harmony default export */ var Lazy_takeUntilLazy = (curry(function* takeUntilLazy(f, iter) { 510 | let prev = null, ok = false; 511 | for (const a of toIter(iter)) { 512 | const _ok = ok || go1(a, f); 513 | if (_ok instanceof Promise) { 514 | _ok.catch(noop); 515 | yield prev = (prev || Promise.resolve()) 516 | .then(_ => _ok) 517 | .then(_ok => ok ? Promise.reject(Strict_nop) : ((ok = _ok), a)); 518 | prev = prev.catch(noop); 519 | } else { 520 | ok = _ok; 521 | yield a; 522 | } 523 | if (ok) break; 524 | } 525 | })); 526 | // CONCATENATED MODULE: ./Strict/not.js 527 | function not(a) { 528 | return !a; 529 | } 530 | // CONCATENATED MODULE: ./Strict/every.js 531 | 532 | 533 | 534 | 535 | 536 | 537 | /* harmony default export */ var Strict_every = (curry(function every(f, iter) { 538 | return go( 539 | Lazy_mapLazy(f, iter), 540 | Lazy_takeUntilLazy(not), 541 | reduce((a, b) => a && b), 542 | (a = false) => a, 543 | Boolean); 544 | })); 545 | // CONCATENATED MODULE: ./Lazy/entriesLazy.js 546 | function* entriesLazy(obj) { 547 | for (const k in obj) yield [k, obj[k]]; 548 | } 549 | // CONCATENATED MODULE: ./Strict/isMatch.js 550 | 551 | 552 | 553 | 554 | 555 | /* harmony default export */ var Strict_isMatch = (curry(function isMatch(a, b) { 556 | return ( 557 | typeof a == 'function' ? !!a(b) 558 | : 559 | Strict_isArray(a) && Strict_isArray(b) ? Strict_every(v => b.includes(v), a) 560 | : 561 | typeof b == 'object' ? Strict_every(([k, v]) => b[k] == v, entriesLazy(a)) 562 | : 563 | a instanceof RegExp ? b.match(a) 564 | : 565 | a == b 566 | ); 567 | })); 568 | // CONCATENATED MODULE: ./Strict/findWhere.js 569 | 570 | 571 | 572 | 573 | /* harmony default export */ var Strict_findWhere = (curry(function findWhere(w, iter) { 574 | return Strict_find(Strict_isMatch(w), iter); 575 | })); 576 | // CONCATENATED MODULE: ./Strict/baseSel.js 577 | 578 | 579 | 580 | 581 | 582 | /* harmony default export */ var baseSel = (sep => curry(function sel(selector, acc) { 583 | return ( 584 | !selector ? 585 | acc 586 | : 587 | Strict_isArray(selector) ? 588 | reduce((acc, selector) => sel(selector, acc), acc, selector) 589 | : 590 | typeof selector == 'object' || typeof selector == 'function' ? 591 | Strict_findWhere(selector, acc) 592 | : 593 | reduce( 594 | (acc, key, s = key[0]) => 595 | !acc ? acc : 596 | s == '#' ? Strict_findWhere({ id: key.substr(1) }, acc) : 597 | s == '[' || s == '{' ? Strict_findWhere(JSON.parse(key), acc) : 598 | acc[key], 599 | acc, 600 | selector.split(sep)) 601 | ); 602 | })); 603 | // CONCATENATED MODULE: ./Strict/call.js 604 | 605 | 606 | /* harmony default export */ var call = (curry(function call(f, ...args) { 607 | return f(...args); 608 | })); 609 | // CONCATENATED MODULE: ./Strict/isIterable.js 610 | function isIterable(a) { 611 | return a != null && !!a[Symbol.iterator]; 612 | } 613 | // CONCATENATED MODULE: ./Lazy/mapEntriesLazy.js 614 | 615 | 616 | 617 | 618 | /* harmony default export */ var Lazy_mapEntriesLazy = (curry(function* mapEntriesLazy(f, iter) { 619 | for (const [k, a] of toIter(iter)) yield go1(go1(a, f), b => [k, b]); 620 | })); 621 | // CONCATENATED MODULE: ./.internal/baseCalls.js 622 | 623 | 624 | 625 | 626 | const baseCalls = (map, object) => function calls(fs, ...args) { 627 | return isIterable(fs) ? 628 | map(f => f(...args), fs) : 629 | object(Lazy_mapEntriesLazy(f => f(...args), entriesLazy(fs))); 630 | }; 631 | 632 | /* harmony default export */ var _internal_baseCalls = (baseCalls); 633 | // CONCATENATED MODULE: ./Strict/map.js 634 | 635 | 636 | 637 | 638 | /* harmony default export */ var Strict_map = (curry(function map(f, iter) { 639 | return takeAll(Lazy_mapLazy(f, iter)); 640 | })); 641 | // CONCATENATED MODULE: ./Strict/object.js 642 | 643 | 644 | function object_object(iter) { 645 | return reduce((obj, [k, v]) => (obj[k] = v, obj), {}, iter); 646 | } 647 | // CONCATENATED MODULE: ./Strict/calls.js 648 | 649 | 650 | 651 | 652 | /* harmony default export */ var Strict_calls = (_internal_baseCalls(Strict_map, object_object)); 653 | // CONCATENATED MODULE: ./Lazy/rangeLazy.js 654 | function* rangeLazy(start = 0, stop = start, step = 1) { 655 | if (arguments.length === 1) start = 0; 656 | if (arguments.length < 3 && start > stop) step *= -1; 657 | 658 | if (start < stop) { 659 | while (start < stop) { 660 | yield start; 661 | start += step; 662 | } 663 | } else { 664 | while (start > stop) { 665 | yield start; 666 | start += step; 667 | } 668 | } 669 | } 670 | // CONCATENATED MODULE: ./Lazy/chunkLazy.js 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | /* harmony default export */ var Lazy_chunkLazy = (curry(function chunkLazy(n, iter) { 680 | iter = toIter(iter); 681 | return go( 682 | rangeLazy(Infinity), 683 | Lazy_mapLazy(_ => Strict_take(n, iter)), 684 | Lazy_takeUntilLazy(c => c.length < n)) 685 | })); 686 | // CONCATENATED MODULE: ./Strict/chunk.js 687 | 688 | 689 | 690 | 691 | /* harmony default export */ var Strict_chunk = (curry(function chunk(n, iter) { 692 | return takeAll(Lazy_chunkLazy(n, iter)); 693 | })); 694 | // CONCATENATED MODULE: ./Strict/filter.js 695 | 696 | 697 | 698 | 699 | /* harmony default export */ var Strict_filter = (curry(function filter(f, iter) { 700 | return takeAll(Lazy_filterLazy(f, iter)); 701 | })); 702 | // CONCATENATED MODULE: ./Strict/compact.js 703 | 704 | 705 | /* harmony default export */ var compact = (Strict_filter(a => a)); 706 | // CONCATENATED MODULE: ./Strict/constant.js 707 | function constant(a) { 708 | return _ => a; 709 | } 710 | // CONCATENATED MODULE: ./Strict/countBy.js 711 | 712 | 713 | 714 | function incSel(parent, k) { 715 | parent[k] ? parent[k]++ : parent[k] = 1; 716 | return parent; 717 | } 718 | 719 | /* harmony default export */ var Strict_countBy = (curry(function countBy(f, iter) { 720 | return reduce((counts, a) => incSel(counts, f(a)), {}, iter); 721 | })); 722 | // CONCATENATED MODULE: ./Strict/delay.js 723 | 724 | 725 | /* harmony default export */ var delay = (curry(async function delay(time, a) { 726 | await new Promise(resolve => setTimeout(resolve, time)); 727 | return a; 728 | })); 729 | // CONCATENATED MODULE: ./Strict/debounce.js 730 | 731 | 732 | 733 | /* harmony default export */ var Strict_debounce = (curry(function debounce(f, time) { 734 | let i = 0; 735 | return function _debounce(...args) { 736 | return delay(time, ++i).then(id => id === i && f(...args)); 737 | }; 738 | })); 739 | // CONCATENATED MODULE: ./Strict/last.js 740 | function last(arr) { 741 | return arr[arr.length - 1]; 742 | } 743 | // CONCATENATED MODULE: ./Lazy/flatLazy.js 744 | 745 | 746 | 747 | 748 | 749 | function flatLazy(iter, depth = 1) { 750 | let concurCheck = null; 751 | const iterStack = [toIter(iter)]; 752 | return { 753 | next: function recur() { 754 | const iter = last(iterStack); 755 | if (!iter) return { done: true }; 756 | const cur = iter.next(); 757 | if (cur.done) { 758 | iterStack.pop(); 759 | return recur(); 760 | } else if (iterStack.length <= depth && isIterable(cur.value) && typeof cur.value != 'string') { 761 | iterStack.push(cur.value[Symbol.iterator]()); 762 | return recur(); 763 | } else if (cur.value instanceof Promise) { 764 | if (concurCheck && !concurCheck.done) { 765 | iterStack.length = 0; 766 | return { value: Promise.reject(new Error("'L.flat' can not be used with 'C' function.")), done: false }; 767 | } 768 | concurCheck = concurCheck || {}; 769 | return { 770 | value: cur.value.then(value => { 771 | if (!concurCheck.hasOwnProperty('done')) concurCheck.done = true; 772 | if (iterStack.length > depth || !isIterable(value) || typeof value == 'string') return value; 773 | const iter = value[Symbol.iterator](), cur = iter.next(); 774 | return cur.done ? Promise.reject(Strict_nop) : (iterStack.push(iter), cur.value); 775 | }).catch(e => { 776 | if (!concurCheck.hasOwnProperty('done')) concurCheck.done = true; 777 | return Promise.reject(e); 778 | }), 779 | done: false 780 | }; 781 | } else { 782 | return cur; 783 | } 784 | }, 785 | [Symbol.iterator]() { return this; } 786 | }; 787 | } 788 | // CONCATENATED MODULE: ./Lazy/deepFlatLazy.js 789 | 790 | 791 | function deepFlatLazy(iter) { 792 | return flatLazy(iter, Infinity); 793 | } 794 | // CONCATENATED MODULE: ./Strict/deepFlat.js 795 | 796 | 797 | 798 | function deepFlat(iter) { 799 | return takeAll(deepFlatLazy(iter)); 800 | } 801 | // CONCATENATED MODULE: ./.internal/baseExtend.js 802 | 803 | 804 | 805 | 806 | function baseExtend(set, obj, objs) { 807 | const type = typeof obj; 808 | obj && 809 | (type == 'object' || type == 'function') && 810 | reduce(reduce(set), obj, Lazy_mapLazy(entriesLazy, objs)); 811 | return obj; 812 | } 813 | // CONCATENATED MODULE: ./Strict/has.js 814 | 815 | 816 | /* harmony default export */ var has = (curry(function has(k, obj) { 817 | return !!(obj && obj.hasOwnProperty(k)); 818 | })); 819 | // CONCATENATED MODULE: ./Strict/defaults.js 820 | 821 | 822 | 823 | const setter = (obj, [k, v]) => { 824 | return (has(k, obj) || (obj[k] = v, obj), obj); 825 | }; 826 | 827 | function defaults(obj, ...objs) { 828 | return baseExtend(setter, obj, objs); 829 | } 830 | 831 | /* harmony default export */ var Strict_defaults = (defaults); 832 | // CONCATENATED MODULE: ./Strict/defaultTo.js 833 | 834 | 835 | /* harmony default export */ var defaultTo = (curry(function defaultTo(a, b) { 836 | return (b == null || Number.isNaN(b)) ? a : b; 837 | })); 838 | // CONCATENATED MODULE: ./Strict/identity.js 839 | /* harmony default export */ var identity = (a => a); 840 | // CONCATENATED MODULE: ./Lazy/rejectLazy.js 841 | 842 | 843 | 844 | 845 | 846 | /* harmony default export */ var Lazy_rejectLazy = (curry(function rejectLazy(f, iter) { 847 | return Lazy_filterLazy(a => go1(f(a), not), iter); 848 | })); 849 | // CONCATENATED MODULE: ./Lazy/differenceByLazy.js 850 | 851 | 852 | 853 | 854 | 855 | 856 | /* harmony default export */ var Lazy_differenceByLazy = (curry(function differenceByLazy(f, iter2, iter) { 857 | let set; 858 | return Lazy_rejectLazy(a => go1( 859 | set || go1(Strict_map(f, iter2), b => set = new Set(b)), 860 | set => go(a, f, b => set.has(b)) 861 | ), iter); 862 | })); 863 | // CONCATENATED MODULE: ./Lazy/differenceLazy.js 864 | 865 | 866 | 867 | 868 | /* harmony default export */ var Lazy_differenceLazy = (curry(function differenceLazy(b, a) { 869 | return Lazy_differenceByLazy(identity, b, a); 870 | })); 871 | 872 | // CONCATENATED MODULE: ./Strict/difference.js 873 | 874 | 875 | 876 | 877 | 878 | /* harmony default export */ var Strict_difference = (curry(function difference(b, a) { 879 | return go( 880 | Lazy_differenceLazy(b, a), 881 | takeAll 882 | ); 883 | })); 884 | // CONCATENATED MODULE: ./Strict/differenceBy.js 885 | 886 | 887 | 888 | 889 | 890 | /* harmony default export */ var Strict_differenceBy = (curry(function differenceBy(f, b, a) { 891 | return go( 892 | Lazy_differenceByLazy(f, b, a), 893 | takeAll 894 | ) 895 | })); 896 | // CONCATENATED MODULE: ./Lazy/differenceWithLazy.js 897 | 898 | 899 | 900 | 901 | 902 | 903 | /* harmony default export */ var Lazy_differenceWithLazy = (curry(function differenceWithLazy(f, iter1, iter2) { 904 | return Lazy_rejectLazy( 905 | a => go1(Strict_take(1, Lazy_filterLazy(b => f(a, b), iter2)), b => b.length), 906 | iter1); 907 | })); 908 | // CONCATENATED MODULE: ./Strict/differenceWith.js 909 | 910 | 911 | 912 | 913 | /* harmony default export */ var Strict_differenceWith = (curry(function differenceWith(f, iter1, iter2) { 914 | return takeAll(Lazy_differenceWithLazy(f, iter1, iter2)); 915 | })); 916 | // CONCATENATED MODULE: ./Lazy/dropLazy.js 917 | 918 | 919 | 920 | 921 | 922 | /* harmony default export */ var Lazy_dropLazy = (curry(function* dropLazy(l, iter) { 923 | if (l < 1) yield* iter; 924 | let prev = null, i = 0; 925 | iter = toIter(iter); 926 | for(const a of iter) { 927 | if (a instanceof Promise) { 928 | a.catch(noop); 929 | yield prev = (prev || Promise.resolve()) 930 | .then(_ => a) 931 | .then(b => ++i > l ? b : Promise.reject(Strict_nop)); 932 | prev = prev.catch(noop); 933 | } else if (++i == l) return yield* iter; 934 | } 935 | })); 936 | // CONCATENATED MODULE: ./Strict/drop.js 937 | 938 | 939 | 940 | 941 | /* harmony default export */ var Strict_drop = (curry(function drop(l, iter) { 942 | return takeAll(Lazy_dropLazy(l, iter)); 943 | })); 944 | // CONCATENATED MODULE: ./Strict/dropRight.js 945 | 946 | 947 | 948 | 949 | 950 | /* harmony default export */ var dropRight = (curry(function drop(l, iter) { 951 | return go1(takeAll(iter), arr => Strict_take(arr.length - l, arr)); 952 | })); 953 | // CONCATENATED MODULE: ./Lazy/dropUntilLazy.js 954 | 955 | 956 | 957 | 958 | 959 | 960 | /* harmony default export */ var Lazy_dropUntilLazy = (curry(function* dropUntilLazy(f, iter) { 961 | let prev = null, ok = false; 962 | iter = toIter(iter); 963 | for(const a of iter) { 964 | const cond = ok || go1(a, f); 965 | if (cond instanceof Promise) { 966 | cond.catch(noop); 967 | yield prev = (prev || Promise.resolve()) 968 | .then(_ => cond) 969 | .then(c => ok ? a : (ok = c, Promise.reject(Strict_nop))); 970 | prev = prev.catch(noop); 971 | } else ok = cond; 972 | if (ok) return yield* iter; 973 | } 974 | })); 975 | // CONCATENATED MODULE: ./Strict/dropUntil.js 976 | 977 | 978 | 979 | 980 | /* harmony default export */ var dropUntil = (curry(function dropWhile(f, iter) { 981 | return takeAll(Lazy_dropUntilLazy(f, iter)); 982 | })); 983 | // CONCATENATED MODULE: ./Lazy/dropWhileLazy.js 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | /* harmony default export */ var Lazy_dropWhileLazy = (curry(function* dropWhileLazy(f, iter) { 992 | let prev = null, ok = false; 993 | iter = toIter(iter); 994 | for(const a of iter) { 995 | const cond = ok || go1(a, f); 996 | if (cond instanceof Promise) { 997 | cond.catch(noop); 998 | yield prev = (prev || Promise.resolve()) 999 | .then(_ => cond) 1000 | .then(c => (ok = !c) ? a : Promise.reject(Strict_nop)); 1001 | prev = prev.catch(noop); 1002 | } else if (ok || (ok = !cond)) return yield* flatLazy([a, iter]); 1003 | } 1004 | })); 1005 | // CONCATENATED MODULE: ./Strict/dropWhile.js 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | /* harmony default export */ var Strict_dropWhile = (curry(function dropWhile(f, iter) { 1012 | return go1(iter, _iter => takeAll(Lazy_dropWhileLazy(f, _iter))); 1013 | })); 1014 | // CONCATENATED MODULE: ./Strict/each.js 1015 | 1016 | 1017 | 1018 | 1019 | /* harmony default export */ var Strict_each = (curry(function each(f, iter) { 1020 | return Strict_map(a => go1(f(a), _ => a), iter); 1021 | })); 1022 | // CONCATENATED MODULE: ./Strict/entries.js 1023 | 1024 | 1025 | 1026 | function entries_entries(a) { 1027 | return takeAll(entriesLazy(a)); 1028 | } 1029 | // CONCATENATED MODULE: ./Strict/extend.js 1030 | 1031 | 1032 | const extend_setter = (obj, [k, v]) => (obj[k] = v, obj); 1033 | 1034 | function extend(obj, ...objs) { 1035 | return baseExtend(extend_setter, obj, objs); 1036 | } 1037 | // CONCATENATED MODULE: ./Strict/flat.js 1038 | 1039 | 1040 | 1041 | function flat(iter, depth = 1) { 1042 | return takeAll(flatLazy(iter, depth)); 1043 | } 1044 | // CONCATENATED MODULE: ./Strict/flatMap.js 1045 | 1046 | 1047 | 1048 | 1049 | /* harmony default export */ var Strict_flatMap = (curry(function flatMap(f, iter) { 1050 | return flat(Lazy_mapLazy(f, iter)); 1051 | })); 1052 | // CONCATENATED MODULE: ./Strict/isStop.js 1053 | const SymbolStop = Symbol.for('stop'); 1054 | 1055 | function isStop(a) { 1056 | return !!(a && a[SymbolStop]); 1057 | } 1058 | // CONCATENATED MODULE: ./Strict/reduceS.js 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | function reduceS(f, acc, iter) { 1066 | if (arguments.length == 1) return (..._) => reduceS(f, ..._); 1067 | if (arguments.length == 2) return reduceS(f, head(iter = toIter(acc)), iter); 1068 | 1069 | iter = toIter(iter); 1070 | return go1(acc, function recur(acc) { 1071 | let cur; 1072 | while (!isStop(acc) && !(cur = iter.next()).done) { 1073 | acc = go2(acc, cur.value, f); 1074 | if (acc instanceof Promise) return acc.then(recur); 1075 | } 1076 | return isStop(acc) ? acc.value : acc; 1077 | }); 1078 | } 1079 | // CONCATENATED MODULE: ./Strict/goS.js 1080 | 1081 | 1082 | 1083 | function goS(..._) { 1084 | return reduceS(go1Sync, _); 1085 | } 1086 | // CONCATENATED MODULE: ./Strict/groupBy.js 1087 | 1088 | 1089 | 1090 | 1091 | /* harmony default export */ var Strict_groupBy = (curry(function groupBy(f, iter) { 1092 | return reduce( 1093 | (group, a) => go1( 1094 | f(a), 1095 | k => ((group[k] || (group[k] = [])).push(a), group)), 1096 | {}, 1097 | iter); 1098 | })); 1099 | // CONCATENATED MODULE: ./Strict/tap.js 1100 | 1101 | 1102 | 1103 | 1104 | function tap(f, ...fs) { 1105 | return (a, ...as) => go1(reduce(go1Sync, f(a, ...as), fs), _ => a); 1106 | } 1107 | // CONCATENATED MODULE: ./Strict/log.js 1108 | const { log } = console; 1109 | 1110 | /* harmony default export */ var Strict_log = (log); 1111 | // CONCATENATED MODULE: ./Strict/hi.js 1112 | 1113 | 1114 | 1115 | const hi_f = tap(Strict_log); 1116 | 1117 | function hi(..._) { return hi_f(..._); } 1118 | // CONCATENATED MODULE: ./Strict/html.js 1119 | 1120 | 1121 | 1122 | 1123 | function html(strs, ...datas) { 1124 | datas = Lazy_mapLazy(d => d === undefined ? '' : d, datas); 1125 | return go1( 1126 | reduce((res, str) => go1(datas.next().value, data => `${res}${data}${str}`), strs), 1127 | a => a.replace(/\s*(\>|\<)\s*/g, '$1').trim()); 1128 | } 1129 | // CONCATENATED MODULE: ./Strict/indexBy.js 1130 | 1131 | 1132 | 1133 | /* harmony default export */ var Strict_indexBy = (curry(function indexBy(f, iter) { 1134 | return reduce((obj, a) => (obj[f(a)] = a, obj), {}, iter); 1135 | })); 1136 | // CONCATENATED MODULE: ./Strict/initial.js 1137 | 1138 | 1139 | function initial(a) { 1140 | return dropRight(1, a); 1141 | } 1142 | // CONCATENATED MODULE: ./Strict/pipe.js 1143 | 1144 | 1145 | 1146 | function pipe(f, ...fs) { 1147 | return (...as) => reduce(go1Sync, f(...as), fs); 1148 | } 1149 | // CONCATENATED MODULE: ./Lazy/uniqueByLazy.js 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | const uniqueByLazy_uniqueByLazy = curry(function uniqueByLazy(f, iter) { 1156 | const s = new Set(); 1157 | return go1( 1158 | iter, 1159 | Lazy_filterLazy(pipe( 1160 | f, 1161 | b => s.has(b) ? false : s.add(b)))); 1162 | }); 1163 | 1164 | /* harmony default export */ var Lazy_uniqueByLazy = (uniqueByLazy_uniqueByLazy); 1165 | // CONCATENATED MODULE: ./Lazy/uniqueLazy.js 1166 | 1167 | 1168 | 1169 | function uniqueLazy(obj) { 1170 | return Lazy_uniqueByLazy(identity, obj); 1171 | }; 1172 | // CONCATENATED MODULE: ./Lazy/intersectionByLazy.js 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | /* harmony default export */ var Lazy_intersectionByLazy = (curry(function intersectionByLazy(f, iter2, iter) { 1181 | let set = null; 1182 | return uniqueLazy( 1183 | Lazy_filterLazy( 1184 | a => go1( 1185 | set || go1(Lazy_mapLazy(f, iter2), l => set = new Set(l)), 1186 | set => go(a, f, b => set.has(b)) 1187 | ), 1188 | iter)); 1189 | })); 1190 | // CONCATENATED MODULE: ./Lazy/intersectionLazy.js 1191 | 1192 | 1193 | 1194 | 1195 | /* harmony default export */ var Lazy_intersectionLazy = (curry(function intersectionLazy(a, b) { 1196 | return Lazy_intersectionByLazy(identity, a, b); 1197 | })); 1198 | // CONCATENATED MODULE: ./Strict/intersection.js 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | /* harmony default export */ var Strict_intersection = (curry(function intersection(a, b) { 1205 | return go( 1206 | b, 1207 | Lazy_intersectionLazy(a), 1208 | takeAll 1209 | ) 1210 | })); 1211 | // CONCATENATED MODULE: ./Strict/intersectionBy.js 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | /* harmony default export */ var Strict_intersectionBy = (curry(function intersectionBy(f, b, a) { 1218 | return go(Lazy_intersectionByLazy(f, b, a), takeAll); 1219 | })); 1220 | // CONCATENATED MODULE: ./Lazy/intersectionWithLazy.js 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | /* harmony default export */ var Lazy_intersectionWithLazy = (curry(function intersectionWithLazy(f, iter1, iter2) { 1228 | return Lazy_filterLazy( 1229 | a => go1(Strict_take(1, Lazy_filterLazy(b => f(a, b), iter2)), b => b.length), 1230 | iter1); 1231 | })); 1232 | // CONCATENATED MODULE: ./Strict/intersectionWith.js 1233 | 1234 | 1235 | 1236 | 1237 | /* harmony default export */ var Strict_intersectionWith = (curry(function intersectionWith(f, iter1, iter2) { 1238 | return takeAll(Lazy_intersectionWithLazy(f, iter1, iter2)); 1239 | })); 1240 | // CONCATENATED MODULE: ./Strict/isFunction.js 1241 | function isFunction(a) { 1242 | return typeof a == 'function'; 1243 | } 1244 | // CONCATENATED MODULE: ./Strict/isString.js 1245 | function isString(a) { 1246 | return typeof a == 'string'; 1247 | } 1248 | // CONCATENATED MODULE: ./Strict/isUndefined.js 1249 | /* harmony default export */ var isUndefined = (a => a === undefined); 1250 | // CONCATENATED MODULE: ./Strict/join.js 1251 | 1252 | 1253 | 1254 | /* harmony default export */ var Strict_join = (curry(function join(sep, iter) { 1255 | return reduce((acc, a) => `${acc}${sep}${a}`, iter); 1256 | })); 1257 | // CONCATENATED MODULE: ./Lazy/keysLazy.js 1258 | function* keysLazy(obj) { 1259 | for (const k in obj) yield k; 1260 | }; 1261 | // CONCATENATED MODULE: ./Strict/keys.js 1262 | 1263 | 1264 | 1265 | function keys(a) { 1266 | return takeAll(keysLazy(a)); 1267 | } 1268 | // CONCATENATED MODULE: ./Strict/mapEntries.js 1269 | 1270 | 1271 | 1272 | 1273 | /* harmony default export */ var Strict_mapEntries = (curry(function mapEntries(f, iter) { 1274 | return takeAll(Lazy_mapEntriesLazy(f, iter)); 1275 | })); 1276 | // CONCATENATED MODULE: ./Strict/mapObject.js 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | /* harmony default export */ var Strict_mapObject = (curry(function mapObject(f, obj) { 1283 | return object_object(Lazy_mapEntriesLazy(f, entriesLazy(obj))); 1284 | })); 1285 | // CONCATENATED MODULE: ./Lazy/valuesLazy.js 1286 | function* valuesLazy(obj) { 1287 | for (const k in obj) yield obj[k]; 1288 | } 1289 | // CONCATENATED MODULE: ./Strict/values.js 1290 | 1291 | 1292 | 1293 | function values(a) { 1294 | return takeAll(valuesLazy(a)); 1295 | } 1296 | // CONCATENATED MODULE: ./Strict/match.js 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | function baseMatch(targets) { 1304 | var cbs = []; 1305 | 1306 | function evl() { 1307 | return go( 1308 | targets, 1309 | values, 1310 | targets => 1311 | go(cbs, 1312 | Strict_find(pb => { return pb._case(...targets); }), 1313 | pb => pb._body(...targets))); 1314 | } 1315 | 1316 | function _case(f) { 1317 | cbs.push({ _case: typeof f == 'function' ? pipe(...arguments) : Strict_isMatch(f) }); 1318 | return _body; 1319 | } 1320 | _case.case = _case; 1321 | 1322 | function _body() { 1323 | cbs[cbs.length-1]._body = pipe(...arguments); 1324 | return _case; 1325 | } 1326 | 1327 | _case.else = function() { 1328 | _case(_=> true) (...arguments); 1329 | return targets ? evl() : (...targets2) => ((targets = targets2), evl()); 1330 | }; 1331 | 1332 | return _case; 1333 | } 1334 | 1335 | function match(..._) { 1336 | return baseMatch(_); 1337 | } 1338 | 1339 | match.case = (..._) => baseMatch(null).case(..._); 1340 | 1341 | /* harmony default export */ var Strict_match = (match); 1342 | // CONCATENATED MODULE: ./Strict/maxBy.js 1343 | 1344 | 1345 | 1346 | /* harmony default export */ var Strict_maxBy = (curry(function maxBy(f, iter) { 1347 | return reduce((a, b) => f(a) >= f(b) ? a : b, iter); 1348 | })); 1349 | // CONCATENATED MODULE: ./Strict/max.js 1350 | 1351 | 1352 | function max(iter) { 1353 | return Strict_maxBy(a => a, iter); 1354 | } 1355 | // CONCATENATED MODULE: ./Strict/minBy.js 1356 | 1357 | 1358 | 1359 | /* harmony default export */ var Strict_minBy = (curry(function minBy(f, iter) { 1360 | return reduce((a, b) => f(a) <= f(b) ? a : b, iter); 1361 | })); 1362 | // CONCATENATED MODULE: ./Strict/min.js 1363 | 1364 | 1365 | function min(iter) { 1366 | return Strict_minBy(a => a, iter); 1367 | } 1368 | // CONCATENATED MODULE: ./Strict/negate.js 1369 | 1370 | 1371 | 1372 | function negate(f) { 1373 | return (..._) => go1(f(..._), not); 1374 | } 1375 | // CONCATENATED MODULE: ./Strict/omit.js 1376 | 1377 | 1378 | 1379 | 1380 | 1381 | /* harmony default export */ var Strict_omit = (curry(function omit(ks, obj) { 1382 | return object_object( 1383 | Lazy_rejectLazy(([k]) => ks.includes(k), 1384 | entriesLazy(obj))); 1385 | })); 1386 | // CONCATENATED MODULE: ./Strict/pipe1.js 1387 | 1388 | 1389 | /* harmony default export */ var pipe1 = ((g, f) => a => go1(g(a), f)); 1390 | 1391 | // CONCATENATED MODULE: ./Strict/partition.js 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | /* harmony default export */ var Strict_partition = (curry(function partition(f, iter) { 1398 | return go1( 1399 | Strict_groupBy(pipe1(f, Boolean), iter), 1400 | group => [group['true'], group['false']]); 1401 | })); 1402 | // CONCATENATED MODULE: ./Strict/pick.js 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | /* harmony default export */ var Strict_pick = (curry(function pick(ks, obj) { 1409 | return object_object( 1410 | Lazy_rejectLazy(([_, v]) => v === undefined, 1411 | Lazy_mapLazy(k => [k, obj[k]], ks))); 1412 | })); 1413 | // CONCATENATED MODULE: ./Strict/pipeS.js 1414 | 1415 | 1416 | 1417 | function pipeS(f, ...fs) { 1418 | return (...as) => reduceS(go1Sync, f(...as), fs); 1419 | } 1420 | // CONCATENATED MODULE: ./Strict/pluck.js 1421 | 1422 | 1423 | 1424 | /* harmony default export */ var Strict_pluck = (curry(function pluck(k, iter) { 1425 | return Strict_map(a => a[k], iter); 1426 | })); 1427 | // CONCATENATED MODULE: ./Lazy/prependLazy.js 1428 | 1429 | 1430 | /* harmony default export */ var prependLazy = (curry(function *prependLazy(a, iter) { 1431 | yield a; 1432 | yield* iter; 1433 | })); 1434 | // CONCATENATED MODULE: ./Strict/prepend.js 1435 | 1436 | 1437 | 1438 | 1439 | /* harmony default export */ var Strict_prepend = (curry(function prepend(a, iter) { 1440 | return takeAll(prependLazy(a, iter)); 1441 | })); 1442 | // CONCATENATED MODULE: ./Strict/promiseAllEntries.js 1443 | 1444 | 1445 | 1446 | function promiseAllEntries(entries) { 1447 | return Strict_mapEntries(identity, entries); 1448 | } 1449 | // CONCATENATED MODULE: ./Strict/promiseAllObject.js 1450 | 1451 | 1452 | 1453 | function promiseAllObject(obj) { 1454 | return Strict_mapObject(identity, obj); 1455 | } 1456 | // CONCATENATED MODULE: ./Strict/range.js 1457 | 1458 | 1459 | 1460 | function range(..._) { 1461 | return takeAll(rangeLazy(..._)); 1462 | } 1463 | // CONCATENATED MODULE: ./Strict/reject.js 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | /* harmony default export */ var Strict_reject = (curry(function reject(f, iter) { 1470 | return Strict_filter(a => go1(f(a), not), iter); 1471 | })); 1472 | // CONCATENATED MODULE: ./Strict/sel.js 1473 | 1474 | 1475 | /* harmony default export */ var Strict_sel = (baseSel('.')); 1476 | // CONCATENATED MODULE: ./Strict/some.js 1477 | 1478 | 1479 | 1480 | 1481 | 1482 | 1483 | /* harmony default export */ var Strict_some = (curry(function some(f, iter) { 1484 | return go( 1485 | Lazy_mapLazy(f, iter), 1486 | Lazy_takeUntilLazy(identity), 1487 | reduce((a, b) => a || b), 1488 | (a = false) => a, 1489 | Boolean); 1490 | })); 1491 | // CONCATENATED MODULE: ./.internal/baseSortBy.js 1492 | 1493 | 1494 | 1495 | const arrComparator = (arr) => (a, b) => { 1496 | let i = -1; 1497 | while (++i < arr.length) { 1498 | const ai = a[arr[i]], bi = b[arr[i]]; 1499 | if (ai === bi) continue; 1500 | return ai < bi ? -1 : 1; 1501 | } 1502 | return 0; 1503 | }; 1504 | 1505 | function baseSortBy(left, right, f, arr) { 1506 | return Strict_isArray(f) ? baseSortBy(left, right, arrComparator(f), arr) : 1507 | typeof f == 'string' ? baseSortBy(left, right, a => a[f], arr) : 1508 | f.length == 2 ? [...arr].sort(right == -1 ? pipe(f, n => n * -1) : f) : 1509 | [...arr].sort((a, b, fa = f(a), fb = f(b)) => fa == fb ? 0 : fa < fb ? left : right) 1510 | } 1511 | // CONCATENATED MODULE: ./Strict/sortBy.js 1512 | 1513 | 1514 | 1515 | /* harmony default export */ var Strict_sortBy = (curry(function sortBy(f, arr) { 1516 | return baseSortBy(-1, 1, f, arr); 1517 | })); 1518 | // CONCATENATED MODULE: ./Strict/sort.js 1519 | 1520 | 1521 | function sort(arr) { 1522 | return Strict_sortBy(a => a, arr); 1523 | } 1524 | // CONCATENATED MODULE: ./Strict/sortByDesc.js 1525 | 1526 | 1527 | 1528 | /* harmony default export */ var Strict_sortByDesc = (curry(function sortByDesc(f, arr) { 1529 | return baseSortBy(1, -1, f, arr); 1530 | })); 1531 | // CONCATENATED MODULE: ./Strict/sortDesc.js 1532 | 1533 | 1534 | function sortDesc_sort(arr) { 1535 | return Strict_sortByDesc(a => a, arr); 1536 | } 1537 | // CONCATENATED MODULE: ./Strict/split.js 1538 | 1539 | 1540 | /* harmony default export */ var split = (curry(function split(sep, str) { 1541 | return (str || "").split(sep); 1542 | })); 1543 | // CONCATENATED MODULE: ./Lazy/splitEveryLazy.js 1544 | 1545 | 1546 | 1547 | 1548 | 1549 | 1550 | /* harmony default export */ var Lazy_splitEveryLazy = (curry(function splitEveryLazy(n, str) { 1551 | if (!str) return emptyLazy(); 1552 | return Lazy_mapLazy(i => str.substr(i * n, n), rangeLazy(Math.ceil(str.length / n))); 1553 | })); 1554 | // CONCATENATED MODULE: ./Strict/splitEvery.js 1555 | 1556 | 1557 | 1558 | 1559 | /* harmony default export */ var Strict_splitEvery = (curry(function splitEvery(n, str) { 1560 | return takeAll(Lazy_splitEveryLazy(n, str)); 1561 | })); 1562 | // CONCATENATED MODULE: ./Strict/stop.js 1563 | const stop_SymbolStop = Symbol.for('stop'); 1564 | 1565 | function stop(value) { 1566 | return { [stop_SymbolStop]: true, value }; 1567 | } 1568 | // CONCATENATED MODULE: ./Strict/stopIf.js 1569 | 1570 | 1571 | 1572 | function stopIf(f, stopVal) { 1573 | return Strict_match.case(f)(arguments.length == 2 ? _ => stop(stopVal) : stop).else(a => a); 1574 | } 1575 | // CONCATENATED MODULE: ./Strict/string.js 1576 | 1577 | 1578 | function string(iter) { 1579 | return reduce((a, b) => `${a}${b}`, iter); 1580 | } 1581 | // CONCATENATED MODULE: ./Strict/strMap.js 1582 | 1583 | 1584 | 1585 | 1586 | /* harmony default export */ var Strict_strMap = (curry(function strMap(f, iter) { 1587 | return string(Lazy_mapLazy(f, iter)); 1588 | })); 1589 | // CONCATENATED MODULE: ./Strict/tail.js 1590 | 1591 | 1592 | function tail(iter) { 1593 | return Strict_drop(1, iter); 1594 | } 1595 | // CONCATENATED MODULE: ./Strict/take1.js 1596 | 1597 | 1598 | const take1 = Strict_take(1); 1599 | 1600 | /* harmony default export */ var Strict_take1 = (take1); 1601 | // CONCATENATED MODULE: ./Strict/takeUntil.js 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | /* harmony default export */ var Strict_takeUntil = (curry(function takeUntil(f, iter) { 1608 | let res = []; 1609 | iter = toIter(iter); 1610 | return function recur() { 1611 | let cur; 1612 | while (!(cur = iter.next()).done) { 1613 | const a = cur.value; 1614 | const b = go1(a, a => (res.push(a), f(a, res))); 1615 | if (b instanceof Promise) 1616 | return b.then(b => b ? res : recur()).catch(e => e == Strict_nop ? recur() : Promise.reject(e)); 1617 | if (b) break; 1618 | } 1619 | return res; 1620 | } (); 1621 | })); 1622 | // CONCATENATED MODULE: ./Strict/takeWhile.js 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | /* harmony default export */ var Strict_takeWhile = (curry(function takeWhile(f, iter) { 1629 | let res = []; 1630 | iter = toIter(iter); 1631 | return function recur() { 1632 | let cur; 1633 | while (!(cur = iter.next()).done) { 1634 | const a = cur.value; 1635 | const b = go1(a, a => f(a, res)); 1636 | if (!b) return res; 1637 | if (b instanceof Promise) { 1638 | return b 1639 | .then(async b => b ? (res.push(await a), recur()) : res) 1640 | .catch(e => e == Strict_nop ? recur() : Promise.reject(e)); 1641 | } 1642 | res.push(a); 1643 | } 1644 | return res; 1645 | } (); 1646 | })); 1647 | // CONCATENATED MODULE: ./Strict/throttle.js 1648 | 1649 | 1650 | 1651 | /* harmony default export */ var Strict_throttle = (curry(function throttle(f, time) { 1652 | let block = false; 1653 | return function _throttle(...args) { 1654 | if (block) return; 1655 | block = true; 1656 | delay(time, null).then(_ => (block = false)); 1657 | return f(...args); 1658 | }; 1659 | })); 1660 | // CONCATENATED MODULE: ./Lazy/unionByLazy.js 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | /* harmony default export */ var Lazy_unionByLazy = (curry(function unionByLazy(f, a, b) { 1667 | return go( 1668 | [a, b], 1669 | flatLazy, 1670 | Lazy_uniqueByLazy(f)) 1671 | })); 1672 | // CONCATENATED MODULE: ./Lazy/unionLazy.js 1673 | 1674 | 1675 | 1676 | 1677 | /* harmony default export */ var Lazy_unionLazy = (curry(function unionLazy(a, b) { 1678 | return Lazy_unionByLazy(identity, a, b); 1679 | })); 1680 | // CONCATENATED MODULE: ./Strict/union.js 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | /* harmony default export */ var Strict_union = (curry(function union(a, b) { 1687 | return go1( 1688 | Lazy_unionLazy(a, b), 1689 | takeAll 1690 | ) 1691 | })); 1692 | // CONCATENATED MODULE: ./Strict/unionBy.js 1693 | 1694 | 1695 | 1696 | 1697 | 1698 | /* harmony default export */ var Strict_unionBy = (curry(function unionBy(f, a, b) { 1699 | return go1(Lazy_unionByLazy(f, a, b), takeAll); 1700 | })); 1701 | 1702 | // CONCATENATED MODULE: ./Strict/uniqueBy.js 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | /* harmony default export */ var Strict_uniqueBy = (curry(function uniqueBy(f, iter) { 1712 | return isIterable(iter) ? 1713 | takeAll(Lazy_uniqueByLazy(f, iter)) : 1714 | object_object(Lazy_uniqueByLazy(e => f(last(e)), entriesLazy(iter))); 1715 | })); 1716 | // CONCATENATED MODULE: ./Strict/unique.js 1717 | 1718 | 1719 | 1720 | function unique(a) { 1721 | return Strict_uniqueBy(identity, a); 1722 | } 1723 | // CONCATENATED MODULE: ./Lazy/takeWhileLazy.js 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | const resolved = Promise.resolve(); 1731 | /* harmony default export */ var Lazy_takeWhileLazy = (curry(function* takeWhileLazy(f, iter) { 1732 | let prev = resolved, ok = true; 1733 | for (const a of toIter(iter)) { 1734 | const _ok = ok && go1(a, f); 1735 | if (_ok instanceof Promise) { 1736 | _ok.catch(noop); 1737 | yield prev = prev.then(_ => _ok).then(_ok => (ok = _ok) ? a : Promise.reject(Strict_nop)); 1738 | prev = prev.catch(noop); 1739 | } else if (ok = _ok) { 1740 | yield a; 1741 | } 1742 | if (!ok) break; 1743 | } 1744 | })); 1745 | // CONCATENATED MODULE: ./Lazy/zipLazy.js 1746 | 1747 | 1748 | 1749 | 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | /* harmony default export */ var Lazy_zipLazy = (curry(function zipLazy(...iterables) { 1756 | const iterators = Strict_map(toIter, iterables); 1757 | return go( 1758 | rangeLazy(Infinity), 1759 | Lazy_mapLazy(_ => Strict_map(it => it.next(), iterators)), 1760 | Lazy_takeWhileLazy(Strict_some(cur => !cur.done)), 1761 | Lazy_mapLazy(Strict_map(cur => cur.value))) 1762 | })); 1763 | // CONCATENATED MODULE: ./Strict/zip.js 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | /* harmony default export */ var Strict_zip = (curry(function zip(...iters) { 1771 | return go(iters, takeAll, apply(Lazy_zipLazy), takeAll); 1772 | })); 1773 | // CONCATENATED MODULE: ./Strict/unzip.js 1774 | 1775 | 1776 | function unzip(iter) { 1777 | return Strict_zip(...iter); 1778 | }; 1779 | // CONCATENATED MODULE: ./Strict/zipObj.js 1780 | 1781 | 1782 | 1783 | 1784 | /* harmony default export */ var Strict_zipObj = (curry(function zipObj(...iterables) { 1785 | return object_object(Lazy_zipLazy(...iterables)); 1786 | })); 1787 | // CONCATENATED MODULE: ./Strict/zipWith.js 1788 | 1789 | 1790 | 1791 | 1792 | /* harmony default export */ var Strict_zipWith = (curry(function zipWith(f, ...iterables) { 1793 | return Strict_map(group => f(...group), Lazy_zipLazy(...iterables)) 1794 | })); 1795 | // CONCATENATED MODULE: ./Strict/index.js 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1807 | 1808 | 1809 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 1817 | 1818 | 1819 | 1820 | 1821 | 1822 | 1823 | 1824 | //ok 1825 | 1826 | 1827 | 1828 | 1829 | 1830 | 1831 | 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 1845 | 1846 | 1847 | 1848 | 1849 | 1850 | 1851 | 1852 | 1853 | 1854 | 1855 | 1856 | 1857 | 1858 | 1859 | 1860 | 1861 | 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | 1880 | 1881 | 1882 | 1883 | 1884 | 1885 | 1886 | 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | // CONCATENATED MODULE: ./Lazy/compactLazy.js 1911 | 1912 | 1913 | /* harmony default export */ var compactLazy = (Lazy_filterLazy(a => a)); 1914 | // CONCATENATED MODULE: ./Lazy/concatLazy.js 1915 | 1916 | 1917 | /* harmony default export */ var concatLazy = (curry(function *concatLazy(a, b) { 1918 | yield* b; 1919 | yield* a; 1920 | })); 1921 | // CONCATENATED MODULE: ./Lazy/constantLazy.js 1922 | function* constantLazy(a) { yield a; } 1923 | // CONCATENATED MODULE: ./Lazy/flatMapLazy.js 1924 | 1925 | 1926 | 1927 | 1928 | /* harmony default export */ var Lazy_flatMapLazy = (curry(function flatMapLazy(f, iter) { 1929 | return flatLazy(Lazy_mapLazy(f, iter)); 1930 | })); 1931 | // CONCATENATED MODULE: ./Lazy/zipIndexs.js 1932 | 1933 | 1934 | function* zipIndexs(iter) { 1935 | let i = -1; 1936 | for (const a of toIter(iter)) yield [++i, a]; 1937 | }; 1938 | // CONCATENATED MODULE: ./Lazy/intervalLazy.js 1939 | 1940 | 1941 | 1942 | 1943 | function intervalLazy(time) { 1944 | return Lazy_mapLazy(delay(time), rangeLazy(Infinity)); 1945 | } 1946 | // CONCATENATED MODULE: ./Lazy/reverseLazy.js 1947 | function* reverseLazy(arr) { 1948 | var l = arr.length; 1949 | while (l--) yield arr[l]; 1950 | } 1951 | // CONCATENATED MODULE: ./Lazy/takeLazy.js 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | /* harmony default export */ var Lazy_takeLazy = (curry(function* takeLazy(l, iter) { 1958 | if (l < 1) return; 1959 | let prev = null; 1960 | for (const a of toIter(iter)) { 1961 | if (a instanceof Promise) { 1962 | a.catch(noop); 1963 | yield prev = (prev || Promise.resolve()) 1964 | .then(_ => a) 1965 | .then(a => --l > -1 ? a : Promise.reject(Strict_nop)); 1966 | prev = prev.catch(noop); 1967 | } else { 1968 | yield (--l, a); 1969 | } 1970 | if (!l) break; 1971 | } 1972 | })); 1973 | // CONCATENATED MODULE: ./Lazy/index.js 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | // CONCATENATED MODULE: ./.internal/catchNoop.js 2014 | function catchNoop(arr) { 2015 | arr.forEach(a => a instanceof Promise ? a.catch(function() {}) : a); 2016 | return arr; 2017 | } 2018 | 2019 | /* harmony default export */ var _internal_catchNoop = (catchNoop); 2020 | // CONCATENATED MODULE: ./Concurrency/takeC.js 2021 | 2022 | 2023 | 2024 | 2025 | /* harmony default export */ var Concurrency_takeC = (curry(function takeC(l, iter) { 2026 | return Strict_take(l, _internal_catchNoop([...iter])); 2027 | })); 2028 | // CONCATENATED MODULE: ./Concurrency/takeAllC.js 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | 2036 | 2037 | 2038 | 2039 | function takeAllC(n, iter) { 2040 | if (arguments.length == 1) return typeof n == 'number' ? _ => takeAllC(n, _) : Concurrency_takeC(Infinity, n); 2041 | iter = toIter(iter); 2042 | let closed = false; 2043 | return go( 2044 | rangeLazy(Infinity), 2045 | Lazy_mapLazy(_ => go( 2046 | rangeLazy(n), 2047 | Lazy_mapLazy(_ => iter.next()), 2048 | Strict_takeWhile(({done}) => !(closed = done)), 2049 | Strict_map(({value}) => value))), 2050 | Lazy_takeUntilLazy(_ => closed), 2051 | flat); 2052 | } 2053 | // CONCATENATED MODULE: ./Concurrency/mapC.js 2054 | 2055 | 2056 | 2057 | 2058 | /* harmony default export */ var Concurrency_mapC = (curry(function mapC(f, iter) { 2059 | return takeAllC(Lazy_mapLazy(f, iter)); 2060 | })); 2061 | // CONCATENATED MODULE: ./Concurrency/reduceC.js 2062 | 2063 | 2064 | 2065 | 2066 | /* harmony default export */ var Concurrency_reduceC = (curry(function reduceC(f, acc, iter) { 2067 | return arguments.length == 2 ? 2068 | reduce(f, _internal_catchNoop([...acc])) : 2069 | reduce(f, acc, _internal_catchNoop([...iter])); 2070 | })); 2071 | // CONCATENATED MODULE: ./Concurrency/objectC.js 2072 | 2073 | 2074 | function objectC(iter) { 2075 | return Concurrency_reduceC((obj, [k, v]) => (obj[k] = v, obj), {}, iter); 2076 | } 2077 | // CONCATENATED MODULE: ./Concurrency/callsC.js 2078 | 2079 | 2080 | 2081 | 2082 | /* harmony default export */ var callsC = (_internal_baseCalls(Concurrency_mapC, objectC)); 2083 | // CONCATENATED MODULE: ./Concurrency/filterC.js 2084 | 2085 | 2086 | 2087 | 2088 | /* harmony default export */ var Concurrency_filterC = (curry(function filterC(f, iter) { 2089 | return takeAllC(Lazy_filterLazy(f, iter)); 2090 | })); 2091 | // CONCATENATED MODULE: ./Concurrency/compactC.js 2092 | 2093 | 2094 | /* harmony default export */ var compactC = (Concurrency_filterC(a => a)); 2095 | // CONCATENATED MODULE: ./Concurrency/dropC.js 2096 | 2097 | 2098 | 2099 | 2100 | /* harmony default export */ var Concurrency_dropC = (curry(function dropC(l, iter) { 2101 | return Strict_drop(l, _internal_catchNoop([...iter])); 2102 | })); 2103 | // CONCATENATED MODULE: ./Concurrency/everyC.js 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | /* harmony default export */ var Concurrency_everyC = (curry(function everyC(f, iter) { 2112 | return go( 2113 | Lazy_mapLazy(f, iter), 2114 | Lazy_takeUntilLazy(not), 2115 | Concurrency_reduceC((a, b) => a && b), 2116 | (a = false) => a, 2117 | Boolean); 2118 | })); 2119 | // CONCATENATED MODULE: ./Concurrency/headC.js 2120 | 2121 | 2122 | 2123 | function headC(iter) { 2124 | return go1(Concurrency_takeC(1, iter), ([h]) => h); 2125 | } 2126 | // CONCATENATED MODULE: ./Concurrency/findC.js 2127 | 2128 | 2129 | 2130 | 2131 | /* harmony default export */ var Concurrency_findC = (curry(function findC(f, iter) { 2132 | return headC(Lazy_filterLazy(f, iter)); 2133 | })); 2134 | // CONCATENATED MODULE: ./Concurrency/mapEntriesC.js 2135 | 2136 | 2137 | 2138 | 2139 | /* harmony default export */ var Concurrency_mapEntriesC = (curry(async function mapEntriesC(f, iter) { 2140 | return takeAllC(Lazy_mapEntriesLazy(f, iter)); 2141 | })); 2142 | // CONCATENATED MODULE: ./Concurrency/takeRaceC.js 2143 | 2144 | 2145 | 2146 | /* harmony default export */ var Concurrency_takeRaceC = (curry(function takeRaceC(l, iter) { 2147 | return new Promise((resolve, reject) => { 2148 | let res = []; 2149 | Promise.all([...iter].map(async a => { 2150 | try { 2151 | const b = await a; 2152 | res.push(b); 2153 | if (res.length == l) resolve(res); 2154 | return b; 2155 | } catch (e) { 2156 | if (e != Strict_nop) throw e; 2157 | } 2158 | })).then(_ => resolve(res)).catch(reject); 2159 | }) 2160 | })); 2161 | // CONCATENATED MODULE: ./Concurrency/raceC.js 2162 | 2163 | 2164 | async function raceC(iter) { 2165 | return (await Concurrency_takeRaceC(1, iter))[0]; 2166 | }; 2167 | // CONCATENATED MODULE: ./Concurrency/someC.js 2168 | 2169 | 2170 | 2171 | 2172 | 2173 | 2174 | 2175 | /* harmony default export */ var Concurrency_someC = (curry(function someC(f, iter) { 2176 | return go( 2177 | Lazy_mapLazy(f, iter), 2178 | Lazy_takeUntilLazy(identity), 2179 | Concurrency_reduceC((a, b) => a || b), 2180 | (a = false) => a, 2181 | Boolean); 2182 | })); 2183 | // CONCATENATED MODULE: ./Concurrency/tailC.js 2184 | 2185 | 2186 | function tailC(iter) { 2187 | return Concurrency_dropC(1, iter); 2188 | } 2189 | // CONCATENATED MODULE: ./Concurrency/take1C.js 2190 | 2191 | 2192 | /* harmony default export */ var take1C = (Concurrency_takeC(1)); 2193 | // CONCATENATED MODULE: ./Concurrency/index.js 2194 | 2195 | 2196 | 2197 | 2198 | 2199 | 2200 | 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | // CONCATENATED MODULE: ./entry.js 2213 | 2214 | 2215 | 2216 | 2217 | const L = { ...Lazy_namespaceObject }; 2218 | const C = { ...Concurrency_namespaceObject }; 2219 | 2220 | window.fx = window._ = { ...Strict_namespaceObject, L, C }; 2221 | window.C = C; 2222 | window.L = L; 2223 | 2224 | /***/ }) 2225 | /******/ ]); 2226 | //# sourceMappingURL=fx.js.map --------------------------------------------------------------------------------