UNPKG

dla

Version:

node.js data loader with caching and support of lists

73 lines 2.55 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 }); require("source-map-support/register"); const assert = require("assert"); const __1 = require(".."); function init() { const data = [{ id: '1', age: 28, }, { id: '2', age: 25, }, { id: '3', age: 16, }, { id: '4', age: 52, }]; const result = { collection: new __1.ListableCollection({ extractId: (human) => human.id, loadOne: (id) => { result.objectsCounter++; return new Promise((resolve) => { setTimeout(() => { resolve(data.find((item) => item.id === id)); }, 300); }); }, loadList: (filter) => { return { items: data.filter((item) => item.age >= filter.minAge), }; }, }), objectsCounter: 0, }; return result; } describe('listable-collection', () => { it('makes single request', () => __awaiter(this, void 0, void 0, function* () { const test = init(); assert.deepEqual(yield test.collection.getOne('3'), { id: '3', age: 16 }); assert.deepEqual(test.objectsCounter, 1); })); it('makes list request', () => __awaiter(this, void 0, void 0, function* () { const test = init(); assert.deepEqual(yield test.collection.getList({ minAge: 27, }), [{ id: '1', age: 28, }, { id: '4', age: 52, }]); assert.deepEqual(yield test.collection.getOne('1'), { id: '1', age: 28, }); assert.deepEqual(test.objectsCounter, 0); })); }); //# sourceMappingURL=listable-collection.t.js.map