functional-models-orm-json 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/datastoreAdapter.d.ts +11 -0
- package/datastoreAdapter.js +103 -0
- package/datastoreAdapter.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +41 -0
- package/index.js.map +1 -0
- package/lib.d.ts +2 -0
- package/lib.js +13 -0
- package/lib.js.map +1 -0
- package/package.json +109 -0
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Functional Models ORM JSON
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+
[](https://coveralls.io/github/monolithst/functional-models-orm-json?branch=master)
|
|
6
|
+
|
|
7
|
+
A [Functional Models](https://monolithst.github.io/functional-models/) datastoreAdapter implementation for json file databases.
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
const { jsonClient } = require('jsondb')
|
|
13
|
+
const { createOrm } = require('functional-models')
|
|
14
|
+
const { datastoreAdapter: jsonAdapter } = require('functional-models-orm-json')
|
|
15
|
+
|
|
16
|
+
const filePathToJsonFile = ''
|
|
17
|
+
const datastoreAdapter = jsonAdapter({
|
|
18
|
+
filePath: filePathToJsonFile,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
const orm = createOrm({ datastoreAdapter })
|
|
22
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataDescription, DatastoreAdapter, ModelType } from 'functional-models';
|
|
2
|
+
type WithRequired<T, K extends keyof T> = T & {
|
|
3
|
+
[P in K]-?: T[P];
|
|
4
|
+
};
|
|
5
|
+
type Props = {
|
|
6
|
+
filePath: string;
|
|
7
|
+
getCollectionNameForModel?: <T extends DataDescription>(model: ModelType<T>) => string;
|
|
8
|
+
fs?: any;
|
|
9
|
+
};
|
|
10
|
+
declare const create: ({ filePath, getCollectionNameForModel, fs, }: Props) => WithRequired<DatastoreAdapter, "bulkInsert" | "count" | "bulkDelete">;
|
|
11
|
+
export { create };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.create = void 0;
|
|
13
|
+
const functional_models_orm_memory_1 = require("functional-models-orm-memory");
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const lib_1 = require("./lib");
|
|
17
|
+
const loadDatabaseFromFile = (fs, filePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
try {
|
|
19
|
+
const data = yield fs.readFile(filePath, 'utf-8');
|
|
20
|
+
return JSON.parse(data);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
/* istanbul ignore next */
|
|
24
|
+
// eslint-disable-next-line functional/no-conditional-statements
|
|
25
|
+
if (error.code === 'ENOENT') {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const saveDatabaseToFile = (fs, filePath, database) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
const dir = (0, path_1.dirname)(filePath);
|
|
33
|
+
yield fs.mkdir(dir, { recursive: true });
|
|
34
|
+
yield fs.writeFile(filePath, JSON.stringify(database, null, 2), 'utf-8');
|
|
35
|
+
});
|
|
36
|
+
/* istanbul ignore next */
|
|
37
|
+
const create = ({ filePath, getCollectionNameForModel = lib_1.getCollectionNameForModel, fs = node_fs_1.promises, }) => {
|
|
38
|
+
let memoryAdapter = null;
|
|
39
|
+
const ensureInitialized = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
if (memoryAdapter) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const fileData = yield loadDatabaseFromFile(fs, filePath);
|
|
44
|
+
memoryAdapter = functional_models_orm_memory_1.datastoreAdapter.create({
|
|
45
|
+
seedData: fileData,
|
|
46
|
+
getCollectionNameForModel,
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
const getMemoryAdapter = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
yield ensureInitialized();
|
|
51
|
+
if (!memoryAdapter) {
|
|
52
|
+
/* istanbul ignore next */
|
|
53
|
+
throw new Error('Memory adapter not initialized');
|
|
54
|
+
}
|
|
55
|
+
return memoryAdapter;
|
|
56
|
+
});
|
|
57
|
+
const persistToFile = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
+
yield saveDatabaseToFile(fs, filePath, (yield getMemoryAdapter()).getRecords());
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
save: (instance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
+
const adapter = yield getMemoryAdapter();
|
|
63
|
+
const result = yield adapter.save(instance);
|
|
64
|
+
yield persistToFile();
|
|
65
|
+
return result;
|
|
66
|
+
}),
|
|
67
|
+
delete: (model, id) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
+
yield ensureInitialized();
|
|
69
|
+
const adapter = yield getMemoryAdapter();
|
|
70
|
+
yield adapter.delete(model, id);
|
|
71
|
+
yield persistToFile();
|
|
72
|
+
}),
|
|
73
|
+
retrieve: (model, primaryKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
+
yield ensureInitialized();
|
|
75
|
+
const adapter = yield getMemoryAdapter();
|
|
76
|
+
return adapter.retrieve(model, primaryKey);
|
|
77
|
+
}),
|
|
78
|
+
search: (model, query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
yield ensureInitialized();
|
|
80
|
+
const adapter = yield getMemoryAdapter();
|
|
81
|
+
return adapter.search(model, query);
|
|
82
|
+
}),
|
|
83
|
+
count: (model) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
yield ensureInitialized();
|
|
85
|
+
const adapter = yield getMemoryAdapter();
|
|
86
|
+
return adapter.count(model);
|
|
87
|
+
}),
|
|
88
|
+
bulkInsert: (model, instances) => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
|
+
yield ensureInitialized();
|
|
90
|
+
const adapter = yield getMemoryAdapter();
|
|
91
|
+
yield adapter.bulkInsert(model, instances);
|
|
92
|
+
yield persistToFile();
|
|
93
|
+
}),
|
|
94
|
+
bulkDelete: (model, ids) => __awaiter(void 0, void 0, void 0, function* () {
|
|
95
|
+
yield ensureInitialized();
|
|
96
|
+
const adapter = yield getMemoryAdapter();
|
|
97
|
+
yield adapter.bulkDelete(model, ids);
|
|
98
|
+
yield persistToFile();
|
|
99
|
+
}),
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
exports.create = create;
|
|
103
|
+
//# sourceMappingURL=datastoreAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datastoreAdapter.js","sourceRoot":"","sources":["../src/datastoreAdapter.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.datastoreAdapter = exports.getCollectionNameForModel = void 0;
|
|
37
|
+
const datastoreAdapter = __importStar(require("./datastoreAdapter"));
|
|
38
|
+
exports.datastoreAdapter = datastoreAdapter;
|
|
39
|
+
var lib_1 = require("./lib");
|
|
40
|
+
Object.defineProperty(exports, "getCollectionNameForModel", { enumerable: true, get: function () { return lib_1.getCollectionNameForModel; } });
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAsD;AAI7C,4CAAgB;AAFzB,6BAAiD;AAAxC,gHAAA,yBAAyB,OAAA"}
|
package/lib.d.ts
ADDED
package/lib.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCollectionNameForModel = void 0;
|
|
7
|
+
const kebabCase_1 = __importDefault(require("lodash/kebabCase"));
|
|
8
|
+
const getCollectionNameForModel = (model) => {
|
|
9
|
+
const name = model.getName().replaceAll('@', '').replaceAll('/', '-');
|
|
10
|
+
return (0, kebabCase_1.default)(name).toLowerCase();
|
|
11
|
+
};
|
|
12
|
+
exports.getCollectionNameForModel = getCollectionNameForModel;
|
|
13
|
+
//# sourceMappingURL=lib.js.map
|
package/lib.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;AACA,iEAAwC;AAEjC,MAAM,yBAAyB,GAAG,CACvC,KAAmB,EACnB,EAAE;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrE,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;AACtC,CAAC,CAAA;AALY,QAAA,yBAAyB,6BAKrC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "functional-models-orm-json",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "An ORM for functional-models that uses json files.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "rm -Rf ./dist && tsc && cp package.json ./dist && cp README.md ./dist",
|
|
9
|
+
"build:watch": "nodemon -e '*' --watch ./src --exec npm run build",
|
|
10
|
+
"commit": "cz",
|
|
11
|
+
"coverage": "nyc --all --reporter=lcov npm test",
|
|
12
|
+
"dist": "npm run build && cd dist && npm publish",
|
|
13
|
+
"eslint": "eslint .",
|
|
14
|
+
"prettier": "prettier --write .",
|
|
15
|
+
"prettier:check": "prettier -c .",
|
|
16
|
+
"test": "mocha -r ts-node/register test/**/*.test.ts",
|
|
17
|
+
"test:coverage": "nyc npm run test",
|
|
18
|
+
"test:features": "TS_NODE_PROJECT=tsconfig.cucumber.json ./node_modules/.bin/cucumber-js --require ./features/step_definitions/steps.ts --require-module ts-node/register"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/monolithst/functional-models-orm-json.git"
|
|
23
|
+
},
|
|
24
|
+
"config": {
|
|
25
|
+
"commitizen": {
|
|
26
|
+
"path": "./node_modules/cz-conventional-changelog"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"orm",
|
|
31
|
+
"json",
|
|
32
|
+
"nodejs",
|
|
33
|
+
"functional"
|
|
34
|
+
],
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"registry": "https://registry.npmjs.org"
|
|
37
|
+
},
|
|
38
|
+
"license": "ISC",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/monolithst/functional-models-orm-json/issues"
|
|
41
|
+
},
|
|
42
|
+
"author": "Mike Cornwell",
|
|
43
|
+
"nyc": {
|
|
44
|
+
"branches": 100,
|
|
45
|
+
"lines": 100,
|
|
46
|
+
"functions": 100,
|
|
47
|
+
"statements": 100,
|
|
48
|
+
"extends": "@istanbuljs/nyc-config-typescript",
|
|
49
|
+
"check-coverage": true,
|
|
50
|
+
"all": true,
|
|
51
|
+
"include": [
|
|
52
|
+
"src/**/!(*.test.*).[tj]s?(x)"
|
|
53
|
+
],
|
|
54
|
+
"exclude": [
|
|
55
|
+
"src/_tests_/**/*.*",
|
|
56
|
+
"node_modules",
|
|
57
|
+
".nyc_output",
|
|
58
|
+
"coverage",
|
|
59
|
+
".git",
|
|
60
|
+
".github",
|
|
61
|
+
"features"
|
|
62
|
+
],
|
|
63
|
+
"reporter": [
|
|
64
|
+
"html",
|
|
65
|
+
"lcov",
|
|
66
|
+
"text",
|
|
67
|
+
"text-summary"
|
|
68
|
+
],
|
|
69
|
+
"report-dir": "coverage"
|
|
70
|
+
},
|
|
71
|
+
"dependencies": {
|
|
72
|
+
"functional-models": "^3.6.4",
|
|
73
|
+
"functional-models-orm-memory": "^3.0.5",
|
|
74
|
+
"lodash": "^4.17.21"
|
|
75
|
+
},
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@cucumber/cucumber": "^11.2.0",
|
|
78
|
+
"@eslint/compat": "^1.2.0",
|
|
79
|
+
"@eslint/eslintrc": "^3.1.0",
|
|
80
|
+
"@eslint/js": "^9.12.0",
|
|
81
|
+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
82
|
+
"@types/chai": "^4.3.16",
|
|
83
|
+
"@types/chai-as-promised": "^7.1.8",
|
|
84
|
+
"@types/lodash": "^4.17.1",
|
|
85
|
+
"@types/mocha": "^10.0.10",
|
|
86
|
+
"@types/sinon": "^17.0.3",
|
|
87
|
+
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
|
88
|
+
"@typescript-eslint/parser": "^8.20.0",
|
|
89
|
+
"chai": "^4.3.0",
|
|
90
|
+
"chai-as-promised": "^7.1.2",
|
|
91
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
92
|
+
"eslint": "^9.18.0",
|
|
93
|
+
"eslint-config-prettier": "^9.1.0",
|
|
94
|
+
"eslint-import-resolver-typescript": "^3.6.3",
|
|
95
|
+
"eslint-plugin-functional": "~7.1.0",
|
|
96
|
+
"eslint-plugin-import": "^2.31.0",
|
|
97
|
+
"mocha": "^10.4.0",
|
|
98
|
+
"nodemon": "^3.1.9",
|
|
99
|
+
"nyc": "^15.1.0",
|
|
100
|
+
"prettier-plugin-organize-imports": "^3.2.4",
|
|
101
|
+
"proxyquire": "^2.1.3",
|
|
102
|
+
"sinon": "^11.1.2",
|
|
103
|
+
"source-map-support": "^0.5.21",
|
|
104
|
+
"ts-node": "^10.9.2",
|
|
105
|
+
"tsx": "^4.19.2",
|
|
106
|
+
"typescript": "^5.7.2"
|
|
107
|
+
},
|
|
108
|
+
"homepage": "https://github.com/monolithst/functional-models-orm-json#readme"
|
|
109
|
+
}
|