bookman
Advanced tools
Comparing version 3.2.1 to 3.3.0
@@ -1,29 +0,3 @@ | ||
import { BaseAdapter } from "./adapters/BaseAdapter"; | ||
import { FS } from "./adapters/FS"; | ||
import { MongoDB } from "./adapters/MongoDB"; | ||
import { LooseObject } from "./types"; | ||
export declare const adapters: { | ||
FS: typeof FS; | ||
MongoDB: typeof MongoDB; | ||
}; | ||
export declare class Database { | ||
private adapter; | ||
constructor(adapter?: BaseAdapter); | ||
private getDefaultData; | ||
set(name: string, value: unknown): Promise<unknown>; | ||
get(name: string): Promise<unknown>; | ||
fetch: (name: string) => Promise<unknown>; | ||
has(name: string): Promise<boolean>; | ||
push(name: string, value: unknown): Promise<unknown[]>; | ||
pop(name: string): Promise<unknown[]>; | ||
shift(name: string): Promise<unknown[]>; | ||
unshift(name: string, value: unknown): Promise<unknown[]>; | ||
add(name: string, value: number): Promise<number>; | ||
subtract(name: string, value: number): Promise<number>; | ||
delete(name: string): Promise<unknown>; | ||
fetchAll: () => Promise<LooseObject>; | ||
map: () => Promise<LooseObject>; | ||
all: () => Promise<LooseObject>; | ||
getAll: () => Promise<LooseObject>; | ||
destroy(): Promise<boolean>; | ||
} | ||
export * from "./adapters"; | ||
export * from "./Database"; | ||
export * from "./types"; |
"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()); | ||
}); | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Database = exports.adapters = void 0; | ||
var lodash_1 = require("lodash"); | ||
var FS_1 = require("./adapters/FS"); | ||
var MongoDB_1 = require("./adapters/MongoDB"); | ||
exports.adapters = { FS: FS_1.FS, MongoDB: MongoDB_1.MongoDB }; | ||
var Database = /** @class */ (function () { | ||
function Database(adapter) { | ||
var _this = this; | ||
if (adapter === void 0) { adapter = new FS_1.FS({ | ||
databaseName: "json", | ||
defaultDir: ".bookman", | ||
}); } | ||
this.fetch = function (name) { return _this.get(name); }; | ||
this.fetchAll = function () { return _this.getDefaultData(); }; | ||
this.map = this.fetchAll; | ||
this.all = this.fetchAll; | ||
this.getAll = this.fetchAll; | ||
this.adapter = adapter; | ||
this.adapter.init(); | ||
} | ||
Database.prototype.getDefaultData = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.adapter.get()]; | ||
case 1: | ||
data = _a.sent(); | ||
return [2 /*return*/, data]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.set = function (name, value) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.getDefaultData()]; | ||
case 1: | ||
data = _a.sent(); | ||
lodash_1.set(data, name, value); | ||
this.adapter.set(JSON.stringify(data)); | ||
return [2 /*return*/, lodash_1.get(data, name)]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.get = function (name) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.getDefaultData()]; | ||
case 1: | ||
data = _a.sent(); | ||
return [2 /*return*/, lodash_1.get(data, name)]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.has = function (name) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.getDefaultData()]; | ||
case 1: | ||
data = _a.sent(); | ||
return [2 /*return*/, lodash_1.has(data, name)]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.push = function (name, value) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = []; | ||
if (!Array.isArray(savedData)) | ||
throw new Error("Data to push should be an array"); | ||
savedData.push(value); | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, savedData]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.pop = function (name) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData, value; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = []; | ||
if (!Array.isArray(savedData)) | ||
throw new Error("Data to pop should be an array"); | ||
value = savedData.pop(); | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, value]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.shift = function (name) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData, value; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = []; | ||
if (!Array.isArray(savedData)) | ||
throw new Error("Data to shift should be an array"); | ||
value = savedData.shift(); | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, value]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.unshift = function (name, value) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = []; | ||
if (!Array.isArray(savedData)) | ||
throw new Error("Data to unshift should be an array"); | ||
savedData.unshift(value); | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, savedData]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.add = function (name, value) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = 0; | ||
if (typeof savedData !== "number") | ||
throw new Error("Data to add should be a number"); | ||
savedData += value; | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, savedData]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.subtract = function (name, value) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var savedData; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.get(name)]; | ||
case 1: | ||
savedData = _a.sent(); | ||
if (typeof savedData === "undefined") | ||
savedData = 0; | ||
if (typeof savedData !== "number") | ||
throw new Error("Data to subtract should be a number"); | ||
savedData -= value; | ||
return [4 /*yield*/, this.set(name, savedData)]; | ||
case 2: | ||
_a.sent(); | ||
return [2 /*return*/, savedData]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.delete = function (name) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var data; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.getDefaultData()]; | ||
case 1: | ||
data = _a.sent(); | ||
lodash_1.unset(data, name); | ||
this.adapter.set(JSON.stringify(data)); | ||
return [2 /*return*/, data]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Database.prototype.destroy = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var bool; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.adapter.destroy()]; | ||
case 1: | ||
bool = _a.sent(); | ||
return [2 /*return*/, bool]; | ||
} | ||
}); | ||
}); | ||
}; | ||
return Database; | ||
}()); | ||
exports.Database = Database; | ||
__exportStar(require("./adapters"), exports); | ||
__exportStar(require("./Database"), exports); | ||
__exportStar(require("./types"), exports); |
{ | ||
"name": "bookman", | ||
"version": "3.2.1", | ||
"version": "3.3.0", | ||
"main": "dist", | ||
@@ -25,3 +25,8 @@ "repository": { | ||
"json", | ||
"fast" | ||
"fast", | ||
"mongo", | ||
"mongodb", | ||
"redis", | ||
"mongoose", | ||
"handy-redis" | ||
], | ||
@@ -36,6 +41,9 @@ "scripts": { | ||
"devDependencies": { | ||
"@types/lodash": "^4.14.165", | ||
"@types/lodash.get": "^4.4.6", | ||
"@types/lodash.has": "^4.5.6", | ||
"@types/lodash.set": "^4.3.6", | ||
"@types/lodash.unset": "^4.5.6", | ||
"@types/mongoose": "^5.10.3", | ||
"@types/node": "^14.14.14", | ||
"@types/sequelize": "^4.28.9", | ||
"@types/redis": "^2.8.28", | ||
"@typescript-eslint/eslint-plugin": "^4.10.0", | ||
@@ -49,5 +57,9 @@ "@typescript-eslint/parser": "^4.10.0", | ||
"dependencies": { | ||
"lodash": "^4.17.20", | ||
"handy-redis": "^2.2.1", | ||
"lodash.get": "^4.4.2", | ||
"lodash.has": "^4.5.2", | ||
"lodash.set": "^4.3.2", | ||
"lodash.unset": "^4.5.2", | ||
"mongoose": "^5.11.11" | ||
} | ||
} |
# BookmanDB: An Easy-To-Use Database | ||
<p><b>BookmanDB</b> is a very easy to use and easily editable database module that allows you to create unlimited amount of unique database files and database childs!</p> | ||
<p><b>BookmanDB</b> is a very easy to use and easily editable database module that allows you to create unlimited amount of unique database files!</p> | ||
<p><b>BookmanDB</b> also saves your data in a json file so you can access and edit simple files at any time.</p> | ||
@@ -8,4 +8,2 @@ | ||
## <b>[NPM Page](https://www.npmjs.com/package/bookman) [GITHUB Page](https://github.com/barbarbar338/bookman)</b> | ||
## Usage | ||
@@ -17,8 +15,8 @@ | ||
/* BookmanDB Files */ | ||
const { Database, adapters } = require("bookman"); | ||
const { Database, FSAdapter } = require("bookman"); | ||
/* Creating New Database */ | ||
const fsAdapter = new adapters.FS({ | ||
defaultDir: "database"; | ||
databaseName: "mydb"; | ||
}) | ||
const fsAdapter = new FSAdapter({ | ||
defaultDir: "database", | ||
databaseName: "mydb", | ||
}); | ||
const db = new Database(fsAdapter); | ||
@@ -73,6 +71,39 @@ | ||
<p>It looks so scary right :D Don't worry you dont have to know all of these xd</p> | ||
# All adapters: | ||
```js | ||
const { MongoDBAdapter, FSAdapter, RedisAdapter } = require("bookman"); | ||
// FS Example | ||
const fs_adapter = new FSAdapter({ | ||
defaultDir: "database", | ||
databaseName: "mydb", | ||
}); | ||
const fs_db = new Database(fsAdapter); | ||
// MongoDB Example | ||
const mongo_adapter = new MongoDBAdapter({ | ||
defaultDir: "database", | ||
databaseName: "mydb", | ||
mongodbURL: "YOUR_MONGODB_CONNECTION_URI", | ||
}); | ||
const mongo_db = new Database(mongo_adapter); | ||
// Redis Example | ||
const redis_adapter = new RedisAdapter( | ||
{ | ||
defaultDir: "database", | ||
databaseName: "mydb", | ||
}, | ||
// these lines are optional for redis client, see https://www.npmjs.com/package/redis#rediscreateclient | ||
{ | ||
host: "127.0.0.1", | ||
port: "6379", | ||
}, | ||
); | ||
const redis_db = new Database(redis_adapter); | ||
``` | ||
## [Contact Me For More Help](https://www.is-my.fun/ulas) | ||
\ ゜ o ゜)ノ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
36719
22
686
107
6
13
1
+ Addedhandy-redis@^2.2.1
+ Addedlodash.get@^4.4.2
+ Addedlodash.has@^4.5.2
+ Addedlodash.set@^4.3.2
+ Addedlodash.unset@^4.5.2
+ Added@types/redis@2.8.32(transitive)
+ Addedhandy-redis@2.3.1(transitive)
+ Addedlodash.get@4.4.2(transitive)
+ Addedlodash.has@4.5.2(transitive)
+ Addedlodash.set@4.3.2(transitive)
+ Addedlodash.unset@4.5.2(transitive)
- Removedlodash@^4.17.20
- Removedlodash@4.17.21(transitive)