node-disk-storage
Version:
fast and secure local storage persistent data for node js
124 lines (123 loc) • 4.75 kB
JavaScript
/**
* node-disk-storage
* @author Copyright(c) 2021 by Restu wahyu saputra
* MIT Licensed
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "is-any-type", "../utils/storage", "../utils/validator"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NDS = void 0;
const is_any_type_1 = require("is-any-type");
const store = __importStar(require("../utils/storage"));
const validator_1 = require("../utils/validator");
class NDS {
minSize;
maxSize;
items = [];
options;
constructor(options = {}) {
this.options = options;
this.minSize = options.minSize || 1;
this.maxSize = options.maxSize || 26;
}
/**
* set data using key and value, into disk
*
* @param { String } input - required
* @param { any } value - required
* @return Promise<boolean | undefined>
*/
async set(key, value) {
if (is_any_type_1.assert.isBoolean((0, validator_1.validatorKeyVal)({ key, value }))) {
const options = {
minSize: this.minSize,
maxSize: this.maxSize
};
if (is_any_type_1.assert.isBoolean((0, validator_1.sizeValidator)(options, value))) {
this.items.push({ key, value });
return Promise.resolve(await store.setItem(this.items, this.options));
}
}
}
/**
* get specific data using key, after saving data into disk
*
* @param { String } key - required
* @return Promise<string | undefined>
*/
async get(key) {
if (is_any_type_1.assert.isBoolean((0, validator_1.validatorKey)(key))) {
return Promise.resolve(await store.getItem(key, this.options));
}
}
/**
* remove specific data already exist using key, after saving data into disk
*
* @param { String } key - required
* @return Promise<boolean | undefined>
*/
async remove(key) {
if (is_any_type_1.assert.isBoolean((0, validator_1.validatorKey)(key))) {
return Promise.resolve(await store.removeItem(key, this.options));
}
}
/**
* get specific keys exist, after saving data into disk
* @param { String } key - required
* @return Promise<boolean | undefined>
*/
async key(key) {
if (is_any_type_1.assert.isBoolean((0, validator_1.validatorKey)(key))) {
return Promise.resolve(await store.keysItem(key, this.options));
}
}
/**
* clear all keys exist, after saving data into disk
*
* @return Promise<boolean | undefined>
*/
async clear() {
return Promise.resolve(await store.clearItem(this.options));
}
/**
* get all keys exist, after saving data into disk
*
* @return Promise<string[] | undefined>
*/
async keys() {
return Promise.resolve(await store.allKeysItem(this.options));
}
}
exports.NDS = NDS;
});