UNPKG

prray

Version:

'Promisified' Array, comes with async method supports(such as mapAsync). And it is compatible with normal array.

38 lines (37 loc) 1.59 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = require("ava"); const prray_1 = require("../src/prray"); ava_1.default('array compatibility', (t) => __awaiter(this, void 0, void 0, function* () { const p = prray_1.prray([1, 2, 3, 4]); t.is(Array.isArray(p), true); t.is(p instanceof prray_1.Prray, true); t.is(p instanceof Array, true); t.is(p.length, 4); t.is(p[0], 1); t.deepEqual(yield p.map(i => i + 1), prray_1.prray([2, 3, 4, 5])); t.deepEqual([...p], [1, 2, 3, 4]); t.deepEqual(JSON.stringify(p), JSON.stringify([1, 2, 3, 4])); let ix = 1; for (const item of p) { t.is(item, ix++); } ix = 1; for (const item in p) { t.is(p[item], ix++); } const iterator = p[Symbol.iterator](); t.is(iterator.next().value, 1); t.is(iterator.next().value, 2); t.is(iterator.next().value, 3); t.is(iterator.next().value, 4); t.true(iterator.next().done); }));