wraith/node_modules/is-what/dist/isIterable.js
Vantz Stockwell 2848d79915 feat: Phase 1 complete — Tauri v2 foundation
Rust backend: SQLite (WAL mode, 8 tables), vault encryption
(Argon2id + AES-256-GCM), settings/connections/credentials
services, 19 Tauri command wrappers. 46/46 tests passing.

Vue 3 frontend: unlock/create vault flow, Pinia app store,
Tailwind CSS v4 dark theme with Wraith branding.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 15:09:41 -04:00

17 lines
721 B
JavaScript

/** Returns whether the payload is an iterable (regular or async) */
export function isIterable(payload) {
// oxlint-disable-next-line no-typeof-undefined
if (typeof Symbol === 'undefined' || typeof Symbol.iterator === 'undefined') {
return false;
}
// oxlint-disable-next-line no-null
if (payload === null || payload === undefined)
return false;
// Strings are iterable, even though they're primitives.
if (typeof payload === 'string')
return true;
// For objects, arrays and functions, check if Symbol.iterator is a function.
return ((typeof payload === 'object' || typeof payload === 'function') &&
typeof payload[Symbol.iterator] === 'function');
}