/
githubmirror
/
angular
Обзор
Документация
Войти
/
githubmirror
/
angular
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/core/src/util/iterable.ts
51 строка
1 KB
Shuaib Hasan Akib
refactor(core): remove unused utility functions
07 июл 2026, 19:48
07 июл 2026, 19:48
01bb0a2
Код
Авторство
О чём код?
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ export function isListLikeIterable(obj: any): boolean { if (!isJsObject(obj)) return false; return ( Array.isArray(obj) || (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v] Symbol.iterator in obj) ); // JS Iterable have a Symbol.iterator prop } export function areIterablesEqual<T>( a: Iterable<T>, b: Iterable<T>, comparator: (a: T, b: T) => boolean, ): boolean { const iterator1 = a[Symbol.iterator](); const iterator2 = b[Symbol.iterator](); while (true) { const item1 = iterator1.next(); const item2 = iterator2.next(); if (item1.done && item2.done) return true; if (item1.done || item2.done) return false; if (!comparator(item1.value, item2.value)) return false; } } export function iterateListLike<T>(obj: Iterable<T>, fn: (p: T) => void) { if (Array.isArray(obj)) { for (let i = 0; i < obj.length; i++) { fn(obj[i]); } } else { const iterator = obj[Symbol.iterator](); let item: IteratorResult<T, any>; while (!(item = iterator.next()).done) { fn(item.value); } } } export function isJsObject(o: any): boolean { return o !== null && (typeof o === 'function' || typeof o === 'object'); }