New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

kv-storage

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kv-storage - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

dist/cjs/browser-kv-storage.d.ts

3

dist/cjs/kv-storage.d.ts

@@ -1,4 +0,5 @@

export declare function KVStorage({ runtime, storageName }: {
export declare function KVStorage({ runtime, databaseName, storageName }: {
runtime?: string;
storageName?: string;
databaseName?: string;
}): Promise<any>;

@@ -36,3 +36,3 @@ "use strict";

exports.KVStorage = void 0;
function KVStorage({ runtime = 'node', storageName = 'storage' }) {
function KVStorage({ runtime = 'node', databaseName = 'kvstorage', storageName = 'storage' }) {
return __awaiter(this, void 0, void 0, function* () {

@@ -51,9 +51,27 @@ function isAlphanumeric(str) {

case 'node':
const runtime = yield Promise.resolve().then(() => __importStar(require('./node-kv-storage')));
const db = yield runtime.NodeKVStorage.init({
const runnode = yield Promise.resolve().then(() => __importStar(require('./node-kv-storage')));
const dbnode = yield runnode.NodeKVStorage.init({
dataDirName: databaseName,
storageName
});
return db;
return dbnode;
break;
case 'deno':
const rundeno = yield Promise.resolve().then(() => __importStar(require('./deno-kv-storage')));
const dbdeno = yield rundeno.DenoKVStorage.init({
dataDirName: databaseName,
storageName
});
return dbdeno;
break;
case 'browser':
let browserpkg = './browser-kv-storage';
if (window)
browserpkg = './browser-kv-storage.js';
const runbrowser = yield Promise.resolve(`${browserpkg}`).then(s => __importStar(require(s)));
const dbbrowser = yield runbrowser.BrowserKVStorage.init({
databaseName,
storageName
});
return dbbrowser;
break;

@@ -60,0 +78,0 @@ default:

@@ -10,8 +10,7 @@ export declare class NodeKVStorage {

}): Promise<NodeKVStorage>;
private makeDirSync;
private makeDir;
put(key: string, value: string): Promise<unknown>;
get(key: string): Promise<unknown>;
delete(key: string): Promise<unknown>;
has(key: string): Promise<unknown>;
list(): Promise<unknown>;
}

@@ -42,3 +42,3 @@ "use strict";

if (err) {
resolve(false);
throw err;
}

@@ -67,24 +67,11 @@ else {

}
makeDirSync(dir) {
put(key, value) {
return __awaiter(this, void 0, void 0, function* () {
if (!fs_1.default.existsSync(dir)) {
fs_1.default.mkdirSync(dir, {
recursive: true
});
}
});
}
makeDir(dir) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve) => {
fs_1.default.stat(dir, (err) => {
if (!this.isAlphanumeric(key))
this.showError('Key must be Alphanumeric');
const keyFilePath = this._storageDir + '/' + key;
fs_1.default.writeFile(keyFilePath, value, (err) => {
if (err) {
fs_1.default.mkdir(dir, { recursive: true }, (err, path) => {
if (err) {
resolve(false);
}
else {
resolve(true);
}
});
resolve(false);
}

@@ -98,3 +85,3 @@ else {

}
put(key, value) {
get(key) {
return __awaiter(this, void 0, void 0, function* () {

@@ -105,3 +92,3 @@ return new Promise((resolve) => {

const keyFilePath = this._storageDir + '/' + key;
fs_1.default.writeFile(keyFilePath, value, (err) => {
fs_1.default.readFile(keyFilePath, (err, data) => {
if (err) {

@@ -111,3 +98,3 @@ resolve(false);

else {
resolve(true);
resolve(data.toString('utf8', 0, data.length));
}

@@ -118,3 +105,3 @@ });

}
get(key) {
delete(key) {
return __awaiter(this, void 0, void 0, function* () {

@@ -125,15 +112,8 @@ return new Promise((resolve) => {

const keyFilePath = this._storageDir + '/' + key;
fs_1.default.stat(keyFilePath, (err) => {
fs_1.default.unlink(keyFilePath, (err) => {
if (err) {
resolve(null);
resolve(false);
}
else {
fs_1.default.readFile(keyFilePath, (err, data) => {
if (err) {
resolve(false);
}
else {
resolve(data.toString('utf8', 0, data.length));
}
});
resolve(true);
}

@@ -144,3 +124,3 @@ });

}
delete(key) {
has(key) {
return __awaiter(this, void 0, void 0, function* () {

@@ -153,13 +133,6 @@ return new Promise((resolve) => {

if (err) {
resolve(null);
resolve(false);
}
else {
fs_1.default.unlink(keyFilePath, (err) => {
if (err) {
resolve(false);
}
else {
resolve(true);
}
});
resolve(true);
}

@@ -175,3 +148,3 @@ });

if (err) {
throw err;
resolve(false);
}

@@ -178,0 +151,0 @@ else {

@@ -1,4 +0,5 @@

export declare function KVStorage({ runtime, storageName }: {
export declare function KVStorage({ runtime, databaseName, storageName }: {
runtime?: string;
storageName?: string;
databaseName?: string;
}): Promise<any>;

@@ -1,2 +0,2 @@

export async function KVStorage({ runtime = 'node', storageName = 'storage' }) {
export async function KVStorage({ runtime = 'node', databaseName = 'kvstorage', storageName = 'storage' }) {
function isAlphanumeric(str) {

@@ -14,9 +14,27 @@ return /^[a-zA-Z0-9]+$/.test(str);

case 'node':
const runtime = await import('./node-kv-storage');
const db = await runtime.NodeKVStorage.init({
const runnode = await import('./node-kv-storage');
const dbnode = await runnode.NodeKVStorage.init({
dataDirName: databaseName,
storageName
});
return db;
return dbnode;
break;
case 'deno':
const rundeno = await import('./deno-kv-storage');
const dbdeno = await rundeno.DenoKVStorage.init({
dataDirName: databaseName,
storageName
});
return dbdeno;
break;
case 'browser':
let browserpkg = './browser-kv-storage';
if (window)
browserpkg = './browser-kv-storage.js';
const runbrowser = await import(browserpkg);
const dbbrowser = await runbrowser.BrowserKVStorage.init({
databaseName,
storageName
});
return dbbrowser;
break;

@@ -23,0 +41,0 @@ default:

@@ -10,8 +10,7 @@ export declare class NodeKVStorage {

}): Promise<NodeKVStorage>;
private makeDirSync;
private makeDir;
put(key: string, value: string): Promise<unknown>;
get(key: string): Promise<unknown>;
delete(key: string): Promise<unknown>;
has(key: string): Promise<unknown>;
list(): Promise<unknown>;
}

@@ -26,3 +26,3 @@ import fs from 'fs';

if (err) {
resolve(false);
throw err;
}

@@ -49,21 +49,10 @@ else {

}
async makeDirSync(dir) {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, {
recursive: true
});
}
}
async makeDir(dir) {
async put(key, value) {
return new Promise((resolve) => {
fs.stat(dir, (err) => {
if (!this.isAlphanumeric(key))
this.showError('Key must be Alphanumeric');
const keyFilePath = this._storageDir + '/' + key;
fs.writeFile(keyFilePath, value, (err) => {
if (err) {
fs.mkdir(dir, { recursive: true }, (err, path) => {
if (err) {
resolve(false);
}
else {
resolve(true);
}
});
resolve(false);
}

@@ -76,3 +65,3 @@ else {

}
async put(key, value) {
async get(key) {
return new Promise((resolve) => {

@@ -82,3 +71,3 @@ if (!this.isAlphanumeric(key))

const keyFilePath = this._storageDir + '/' + key;
fs.writeFile(keyFilePath, value, (err) => {
fs.readFile(keyFilePath, (err, data) => {
if (err) {

@@ -88,3 +77,3 @@ resolve(false);

else {
resolve(true);
resolve(data.toString('utf8', 0, data.length));
}

@@ -94,3 +83,3 @@ });

}
async get(key) {
async delete(key) {
return new Promise((resolve) => {

@@ -100,15 +89,8 @@ if (!this.isAlphanumeric(key))

const keyFilePath = this._storageDir + '/' + key;
fs.stat(keyFilePath, (err) => {
fs.unlink(keyFilePath, (err) => {
if (err) {
resolve(null);
resolve(false);
}
else {
fs.readFile(keyFilePath, (err, data) => {
if (err) {
resolve(false);
}
else {
resolve(data.toString('utf8', 0, data.length));
}
});
resolve(true);
}

@@ -118,3 +100,3 @@ });

}
async delete(key) {
async has(key) {
return new Promise((resolve) => {

@@ -126,13 +108,6 @@ if (!this.isAlphanumeric(key))

if (err) {
resolve(null);
resolve(false);
}
else {
fs.unlink(keyFilePath, (err) => {
if (err) {
resolve(false);
}
else {
resolve(true);
}
});
resolve(true);
}

@@ -146,3 +121,3 @@ });

if (err) {
throw err;
resolve(false);
}

@@ -149,0 +124,0 @@ else {

{
"name": "kv-storage",
"version": "0.0.2",
"version": "0.0.3",
"description": "Create data storage that uses a simple key-value method for Node, Browser, Deno, Bun, Cloudflare Workers",

@@ -19,3 +19,4 @@ "main": "dist/cjs/kv-storage.js",

"dev-ts": "nodemon -e js,ts --watch src --watch test --exec \"ts-node test/server\"",
"dev-deno": "nodemon -e js,ts --watch src --watch test --exec \"deno run --allow-read --allow-write test/server-deno.ts\"",
"dev-browser": "nodemon -e js,ts,html --watch src --watch test --exec \"npm run prepare-public && tsc -p tsconfig-browser.json && ts-node test/server-browser.ts\"",
"dev-deno": "nodemon -e js,ts --watch src --watch test --exec \"deno run --allow-read --allow-write --unstable-sloppy-imports test/server-deno.ts\"",
"dev": "nodemon -e js,ts --watch src --watch test --exec \"npm run build && npm start\"",

@@ -27,3 +28,4 @@ "dev-mjs": "nodemon -e js,ts --watch src --watch test --exec \"npm run start-mjs\"",

"prepare-typedoc": "if not exist .\\docs (mkdir docs) else (rmdir /S /Q .\\docs\\)",
"typedoc":"npm run prepare-typedoc && typedoc src/kv-storage.ts src/node-kv-storage.ts src/deno-kv-storage.ts",
"prepare-public": "if not exist .\\public (mkdir public) else (rmdir /S /Q .\\public\\)",
"typedoc":"npm run prepare-typedoc && typedoc src/kv-storage.ts src/node-kv-storage.ts src/deno-kv-storage.ts src/browser-kv-storage.ts",
"gh-deploy": "git push origin :gh-pages && git subtree push --prefix docs origin gh-pages",

@@ -30,0 +32,0 @@ "gh-deploy-init": "git push origin && git subtree push --prefix docs origin gh-pages"

# kv-storage
Create data storage that uses a simple key-value method for Node, Browser, Deno, Bun, Cloudflare Workers
[![NPM](https://nodei.co/npm/kv-storage.png?mini=true)](https://www.npmjs.com/package/kv-storage)
[![npm version](https://badge.fury.io/js/kv-storage.svg)](https://www.npmjs.com/package/kv-storage)
## Features

@@ -15,3 +17,2 @@

## Installation
```javascript

@@ -27,3 +28,3 @@ npm install kv-storage

//Node ES Modules import style
//Node & Browser ES Modules import style
import {KVStorage} from 'kv-storage'

@@ -35,3 +36,3 @@

const db = await KVStorage({
runtime:'node', //node | deno
runtime:'node', //node | deno | browser
storageName:'storage'

@@ -85,3 +86,3 @@ })

const db = await KVStorage({
runtime:'node',
runtime:'deno',
storageName:'storage'

@@ -98,2 +99,22 @@ })

```javascript
<script type="module">
//Directly in Browser example
import {KVStorage} from 'https://cdn.jsdelivr.net/npm/kv-storage@0.0.3/dist/mjs/kv-storage.js'
void async function main() {
const db = await KVStorage({
runtime:'browser',
storageName:'storage'
})
console.log(await db.put('key','value'))
console.log(await db.get('key'))
console.log(await db.list())
console.log(await db.delete('key'))
console.log(await db.has('key'))
}()
</script>
```
## API Reference

@@ -120,3 +141,3 @@

- [x] `deno` need `--allow-read --allow-write`
- [ ] `browser`
- [x] `browser`
- [ ] `bun`

@@ -130,5 +151,3 @@ - [ ] `cloudflare-workers`

```
The put() method returns a Promise that you should await on to verify a successful update which resolves with:
* true = Update successful
* false = Update failed
The put() method returns a Promise that you should await on to verify a successful update, resolve to `true` or `false`
### Read key-value pairs

@@ -139,5 +158,3 @@

```
The get() method returns a promise you can await on to get the value which resolves with:
* data = Get data successful
* false = Get data failed
The get() method returns a promise you can await on to get the value, resolve to the value or `false`

@@ -159,5 +176,3 @@ ### List keys

To delete a key-value pair, call the delete() method, return a promise which resolves with:
* true = Delete successful
* false = Delete failed
To delete a key-value pair, call the delete() method, resolve to `true` or `false`

@@ -170,5 +185,3 @@ ### Has key-value pairs

Has key-value pairs method, return a promise which resolves with:
* true = Key exist
* false = Key does not exist
To check for the existence of a key, resolve to `true` or `false`

@@ -175,0 +188,0 @@ ## License

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc