UNPKG

etcd3-mock

Version:
84 lines (83 loc) 3.04 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Store = void 0; class Store { constructor() { this.cache = new Map(); } setCache(key, value) { this.cache.set(key.toString(), value); } getCache(key) { return __awaiter(this, void 0, void 0, function* () { if (key[key.length - 1] === 0) { key = key.slice(0, key.length - 1); } const keyString = key.toString(); if (!this.cache.get(keyString)) { return { header: null, kvs: [], more: false, count: '0', }; } else { return { header: null, kvs: [ { key, create_revision: '1', mod_revision: '1', version: '1', value: this.cache.get(key.toString()), lease: 'less', }, ], more: false, count: '1', }; } }); } range(request, grpcOption) { return __awaiter(this, void 0, void 0, function* () { const matchKeys = []; if (request.key[request.key.length - 1] === 0) { request.key = request.key.slice(0, request.key.length - 1); } const requestKey = request.key.toString(); const kvs = []; for (const key of this.cache.keys()) { if (key.includes(requestKey)) { matchKeys.push(key); kvs.push({ key: Buffer.from(key), create_revision: '1', mod_revision: '1', version: '1', value: this.cache.get(key), lease: 'less', }); } } return { header: null, kvs, more: false, count: matchKeys.length + '', }; }); } } exports.Store = Store;