etcd3-mock
Version:
84 lines (83 loc) • 3.04 kB
JavaScript
;
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;