tspace-mysql 1.6.8 → 1.7.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 +23 -0
- package/build/lib/connection/index.d.ts +2 -2
- package/build/lib/connection/index.js +4 -1
- package/build/lib/connection/index.js.map +1 -1
- package/build/lib/core/Abstracts/AbstractBuilder.d.ts +3 -1
- package/build/lib/core/Abstracts/AbstractModel.d.ts +2 -0
- package/build/lib/core/Abstracts/AbstractModel.js.map +1 -1
- package/build/lib/core/Blueprint.d.ts +2 -2
- package/build/lib/core/Builder.d.ts +3 -2
- package/build/lib/core/Builder.js +20 -23
- package/build/lib/core/Builder.js.map +1 -1
- package/build/lib/core/Cache/DBCache.d.ts +13 -0
- package/build/lib/core/Cache/DBCache.js +125 -0
- package/build/lib/core/Cache/DBCache.js.map +1 -0
- package/build/lib/core/Cache/MemoryCache.d.ts +10 -0
- package/build/lib/core/Cache/MemoryCache.js +34 -0
- package/build/lib/core/Cache/MemoryCache.js.map +1 -0
- package/build/lib/core/Cache/RedisCache.d.ts +10 -0
- package/build/lib/core/Cache/RedisCache.js +55 -0
- package/build/lib/core/Cache/RedisCache.js.map +1 -0
- package/build/lib/core/Cache/index.d.ts +11 -0
- package/build/lib/core/Cache/index.js +75 -0
- package/build/lib/core/Cache/index.js.map +1 -0
- package/build/lib/core/DB.js +1 -1
- package/build/lib/core/Decorator.d.ts +1 -1
- package/build/lib/core/Handlers/Relation.d.ts +3 -3
- package/build/lib/core/Handlers/Relation.js +51 -27
- package/build/lib/core/Handlers/Relation.js.map +1 -1
- package/build/lib/core/Handlers/State.d.ts +1 -0
- package/build/lib/core/Handlers/State.js +2 -1
- package/build/lib/core/Handlers/State.js.map +1 -1
- package/build/lib/core/Model.d.ts +110 -26
- package/build/lib/core/Model.js +193 -51
- package/build/lib/core/Model.js.map +1 -1
- package/build/lib/core/Schema.d.ts +64 -56
- package/build/lib/core/Schema.js +98 -65
- package/build/lib/core/Schema.js.map +1 -1
- package/build/lib/options/index.d.ts +41 -0
- package/build/lib/{connection/options.js → options/index.js} +20 -18
- package/build/lib/options/index.js.map +1 -0
- package/build/lib/types.d.ts +7 -0
- package/build/lib/utils/index.d.ts +4 -4
- package/build/lib/utils/index.js +24 -12
- package/build/lib/utils/index.js.map +1 -1
- package/build/tests/02-DB.test.js +3 -2
- package/build/tests/02-DB.test.js.map +1 -1
- package/build/tests/03-Model.test.js +57 -32
- package/build/tests/03-Model.test.js.map +1 -1
- package/build/tests/benchmark.test.js +65 -0
- package/build/tests/benchmark.test.js.map +1 -0
- package/build/tests/mock-data-spec.d.ts +1 -1
- package/build/tests/mock-data-spec.js +50 -37
- package/build/tests/mock-data-spec.js.map +1 -1
- package/build/tests/schema-spec.d.ts +11 -23
- package/build/tests/schema-spec.js +47 -38
- package/build/tests/schema-spec.js.map +1 -1
- package/package.json +19 -13
- package/build/lib/connection/options.d.ts +0 -37
- package/build/lib/connection/options.js.map +0 -1
- package/build/tests/Benchmark.test.js +0 -129
- package/build/tests/Benchmark.test.js.map +0 -1
- /package/build/tests/{Benchmark.test.d.ts → benchmark.test.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -81,6 +81,7 @@ npm install tspace-mysql -g
|
|
|
81
81
|
- [Relation Count](#relation-count)
|
|
82
82
|
- [Relation Trashed](#relation-trashed)
|
|
83
83
|
- [Built in Relation Functions](#built-in-relation-functions)
|
|
84
|
+
- [Cache](#cache)
|
|
84
85
|
- [Decorator](#decorator)
|
|
85
86
|
- [Type Safety](#type-safety)
|
|
86
87
|
- [Safety Select](#safety-select)
|
|
@@ -2137,6 +2138,28 @@ for (const post of posts) {
|
|
|
2137
2138
|
|
|
2138
2139
|
```
|
|
2139
2140
|
|
|
2141
|
+
### Cache
|
|
2142
|
+
|
|
2143
|
+
Cache can be used in a Model.
|
|
2144
|
+
Let's illustrate this with an example of a cache:
|
|
2145
|
+
|
|
2146
|
+
```js
|
|
2147
|
+
// support memory db and redis
|
|
2148
|
+
// set cache in file config .env , .env.development ... etc
|
|
2149
|
+
DB_CACHE = memory // by default
|
|
2150
|
+
// for redis
|
|
2151
|
+
DB_REDIS_URL = redis://username:password@server:6379
|
|
2152
|
+
|
|
2153
|
+
const users = await new User()
|
|
2154
|
+
.limit(30_000)
|
|
2155
|
+
.cache({
|
|
2156
|
+
key : 'users', // key of the cache
|
|
2157
|
+
expires : 1000 * 60 // cache expires in 60 seconds
|
|
2158
|
+
})
|
|
2159
|
+
.findMany()
|
|
2160
|
+
|
|
2161
|
+
```
|
|
2162
|
+
|
|
2140
2163
|
### Decorator
|
|
2141
2164
|
|
|
2142
2165
|
Decorators can be used in a Model.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { loadOptionsEnvironment } from '
|
|
2
|
+
import { loadOptionsEnvironment } from '../options';
|
|
4
3
|
import { TConnection, TOptions } from '../types';
|
|
5
4
|
export declare class PoolConnection extends EventEmitter {
|
|
6
5
|
private OPTIONS;
|
|
@@ -21,6 +20,7 @@ export declare class PoolConnection extends EventEmitter {
|
|
|
21
20
|
private _detectQueryType;
|
|
22
21
|
private _defaultOptions;
|
|
23
22
|
private _loadOptions;
|
|
23
|
+
private _loadCache;
|
|
24
24
|
private _convertStringToObject;
|
|
25
25
|
private _covertKeyTypeToCorrectType;
|
|
26
26
|
private _messageConnected;
|
|
@@ -31,7 +31,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
const mysql2_1 = require("mysql2");
|
|
33
33
|
const events_1 = require("events");
|
|
34
|
-
const options_1 = __importStar(require("
|
|
34
|
+
const options_1 = __importStar(require("../options"));
|
|
35
35
|
Object.defineProperty(exports, "loadOptionsEnvironment", { enumerable: true, get: function () { return options_1.loadOptionsEnvironment; } });
|
|
36
36
|
class PoolConnection extends events_1.EventEmitter {
|
|
37
37
|
/**
|
|
@@ -227,6 +227,9 @@ class PoolConnection extends events_1.EventEmitter {
|
|
|
227
227
|
return this._defaultOptions();
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
|
+
_loadCache() {
|
|
231
|
+
return options_1.default.CACHE == null ? 'memory' : 'db';
|
|
232
|
+
}
|
|
230
233
|
_convertStringToObject(str, target = 'db') {
|
|
231
234
|
if (str.toLocaleLowerCase().includes('#ignore'))
|
|
232
235
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/connection/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAwB;AACxB,gDAA0B;AAC1B,mCAKe;AACf,mCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/connection/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,7 +80,9 @@ declare abstract class AbstractBuilder {
|
|
|
80
80
|
abstract except(...columns: string[]): this;
|
|
81
81
|
abstract only(...columns: string[]): this;
|
|
82
82
|
abstract drop(): Promise<any>;
|
|
83
|
-
abstract truncate(
|
|
83
|
+
abstract truncate({ force }: {
|
|
84
|
+
force: boolean;
|
|
85
|
+
}): Promise<any>;
|
|
84
86
|
abstract all(): Promise<any[]>;
|
|
85
87
|
abstract find(id: number): Promise<any>;
|
|
86
88
|
abstract pagination({ limit, page }: {
|
|
@@ -2,8 +2,10 @@ import { TPattern, TRelationOptions, TRelationQueryOptions, TValidateSchema } fr
|
|
|
2
2
|
import { Blueprint } from '../Blueprint';
|
|
3
3
|
import { Builder } from '../Builder';
|
|
4
4
|
import { RelationHandler } from '../Handlers/Relation';
|
|
5
|
+
import { Cache } from '../Cache';
|
|
5
6
|
import { Model } from '../Model';
|
|
6
7
|
declare abstract class AbstractModel<T, R> extends Builder {
|
|
8
|
+
protected $cache: Cache;
|
|
7
9
|
protected $relation: RelationHandler;
|
|
8
10
|
protected $schema: Record<string, Blueprint>;
|
|
9
11
|
protected $validateSchema: TValidateSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractModel.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractModel.ts"],"names":[],"mappings":";;;AAEA,wCAAoC;
|
|
1
|
+
{"version":3,"file":"AbstractModel.js","sourceRoot":"","sources":["../../../../src/lib/core/Abstracts/AbstractModel.ts"],"names":[],"mappings":";;;AAEA,wCAAoC;AAKpC,MAAe,aAAmB,SAAQ,iBAAO;CA2EhD;AAEQ,sCAAa;AACtB,kBAAe,aAAa,CAAA"}
|
|
@@ -199,12 +199,12 @@ declare class Blueprint<T = any> {
|
|
|
199
199
|
* @static
|
|
200
200
|
* @return {Blueprint<T>} Blueprint
|
|
201
201
|
*/
|
|
202
|
-
static json(): Blueprint<Record<string, any
|
|
202
|
+
static json(): Blueprint<Record<string, any> | string>;
|
|
203
203
|
/**
|
|
204
204
|
* Assign type 'JSON' in table
|
|
205
205
|
* @return {Blueprint<T>} Blueprint
|
|
206
206
|
*/
|
|
207
|
-
json(): Blueprint<Record<string, any
|
|
207
|
+
json(): Blueprint<Record<string, any> | string>;
|
|
208
208
|
/**
|
|
209
209
|
* Assign type 'MEDIUMTEXT' in table
|
|
210
210
|
* @static
|
|
@@ -1368,7 +1368,9 @@ declare class Builder extends AbstractBuilder {
|
|
|
1368
1368
|
* truncate of table
|
|
1369
1369
|
* @returns {promise<boolean>}
|
|
1370
1370
|
*/
|
|
1371
|
-
truncate(
|
|
1371
|
+
truncate({ force }?: {
|
|
1372
|
+
force?: boolean | undefined;
|
|
1373
|
+
}): Promise<boolean>;
|
|
1372
1374
|
/**
|
|
1373
1375
|
*
|
|
1374
1376
|
* drop of table
|
|
@@ -1430,7 +1432,6 @@ declare class Builder extends AbstractBuilder {
|
|
|
1430
1432
|
private _queryInsert;
|
|
1431
1433
|
private _queryInsertMultiple;
|
|
1432
1434
|
protected _valueAndOperator(value: string, operator: string, useDefault?: boolean): string[];
|
|
1433
|
-
protected _valueTrueFalse(value: any): any;
|
|
1434
1435
|
private _initialConnection;
|
|
1435
1436
|
}
|
|
1436
1437
|
export { Builder };
|
|
@@ -330,7 +330,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
330
330
|
}
|
|
331
331
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
332
332
|
value = this.$utils.escape(value);
|
|
333
|
-
value = this.
|
|
333
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
334
334
|
if (value === null) {
|
|
335
335
|
return this.whereNull(column);
|
|
336
336
|
}
|
|
@@ -362,7 +362,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
362
362
|
orWhere(column, operator, value) {
|
|
363
363
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
364
364
|
value = this.$utils.escape(value);
|
|
365
|
-
value = this.
|
|
365
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
366
366
|
if (value === null) {
|
|
367
367
|
return this.orWhereNull(column);
|
|
368
368
|
}
|
|
@@ -567,7 +567,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
567
567
|
*/
|
|
568
568
|
whereJSON(column, { key, value, operator }) {
|
|
569
569
|
value = this.$utils.escape(value);
|
|
570
|
-
value = this.
|
|
570
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
571
571
|
this.$state.set('WHERE', [
|
|
572
572
|
...this.$state.get('WHERE'),
|
|
573
573
|
[
|
|
@@ -1108,7 +1108,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
1108
1108
|
whereSensitive(column, operator, value) {
|
|
1109
1109
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
1110
1110
|
value = this.$utils.escape(value);
|
|
1111
|
-
value = this.
|
|
1111
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
1112
1112
|
this.$state.set('WHERE', [
|
|
1113
1113
|
...this.$state.get('WHERE'),
|
|
1114
1114
|
[
|
|
@@ -1149,7 +1149,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
1149
1149
|
orWhereSensitive(column, operator, value) {
|
|
1150
1150
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
1151
1151
|
value = this.$utils.escape(value);
|
|
1152
|
-
value = this.
|
|
1152
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
1153
1153
|
this.$state.set('WHERE', [
|
|
1154
1154
|
...this.$state.get('WHERE'),
|
|
1155
1155
|
[
|
|
@@ -1251,7 +1251,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
1251
1251
|
whereAny(columns, operator, value) {
|
|
1252
1252
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
1253
1253
|
value = this.$utils.escape(value);
|
|
1254
|
-
value = this.
|
|
1254
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
1255
1255
|
this.whereQuery((query) => {
|
|
1256
1256
|
for (const index in columns) {
|
|
1257
1257
|
const column = columns[index];
|
|
@@ -1279,7 +1279,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
1279
1279
|
whereAll(columns, operator, value) {
|
|
1280
1280
|
[value, operator] = this._valueAndOperator(value, operator, arguments.length === 2);
|
|
1281
1281
|
value = this.$utils.escape(value);
|
|
1282
|
-
value = this.
|
|
1282
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
1283
1283
|
this.whereQuery((query) => {
|
|
1284
1284
|
for (const column of columns)
|
|
1285
1285
|
query.where(column, operator, value);
|
|
@@ -1921,7 +1921,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
1921
1921
|
throw new Error(`This 'columns' property is missing some properties`);
|
|
1922
1922
|
const when = Object.entries(c.when).map(([key, value]) => {
|
|
1923
1923
|
value = this.$utils.escape(value);
|
|
1924
|
-
value = this.
|
|
1924
|
+
value = this.$utils.covertBooleanToNumber(value);
|
|
1925
1925
|
return `${this.bindColumn(key)} = '${value}'`;
|
|
1926
1926
|
});
|
|
1927
1927
|
for (const [key, value] of Object.entries(c.columns)) {
|
|
@@ -3182,7 +3182,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3182
3182
|
const raws = yield this._queryStatement(sql);
|
|
3183
3183
|
return raws.map((r) => {
|
|
3184
3184
|
const schema = [];
|
|
3185
|
-
schema.push(
|
|
3185
|
+
schema.push(`\`${r.Field}\``);
|
|
3186
3186
|
schema.push(`${r.Type}`);
|
|
3187
3187
|
if (r.Null === 'YES') {
|
|
3188
3188
|
schema.push(`NULL`);
|
|
@@ -3281,12 +3281,12 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3281
3281
|
}
|
|
3282
3282
|
fakers.push(columnAndValue);
|
|
3283
3283
|
}
|
|
3284
|
-
const
|
|
3284
|
+
const chunked = this.$utils.chunkArray([...fakers], 500);
|
|
3285
3285
|
const promises = [];
|
|
3286
3286
|
const table = this.getTableName();
|
|
3287
|
-
for (const data of
|
|
3287
|
+
for (const data of chunked) {
|
|
3288
3288
|
promises.push(() => {
|
|
3289
|
-
return new DB_1.DB(table).
|
|
3289
|
+
return new DB_1.DB(table).debug(this.$state.get('DEBUG')).createMultiple([...data]).void().save();
|
|
3290
3290
|
});
|
|
3291
3291
|
}
|
|
3292
3292
|
yield Promise.allSettled(promises.map((v) => v()));
|
|
@@ -3299,11 +3299,15 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3299
3299
|
* @returns {promise<boolean>}
|
|
3300
3300
|
*/
|
|
3301
3301
|
truncate() {
|
|
3302
|
-
return __awaiter(this,
|
|
3302
|
+
return __awaiter(this, arguments, void 0, function* ({ force = false } = {}) {
|
|
3303
3303
|
const sql = [
|
|
3304
3304
|
`${this.$constants('TRUNCATE_TABLE')}`,
|
|
3305
3305
|
`${this.$state.get('TABLE_NAME')}`
|
|
3306
3306
|
].join(' ');
|
|
3307
|
+
if (!force) {
|
|
3308
|
+
console.log(`Truncating will delete all data from the table ${this.$state.get('TABLE_NAME')}. Are you sure you want to proceed? Please confirm if you want to force the operation.`);
|
|
3309
|
+
return false;
|
|
3310
|
+
}
|
|
3307
3311
|
yield this._queryStatement(sql);
|
|
3308
3312
|
return true;
|
|
3309
3313
|
});
|
|
@@ -3765,7 +3769,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3765
3769
|
return data;
|
|
3766
3770
|
}
|
|
3767
3771
|
_queryUpdate(data) {
|
|
3768
|
-
this.$utils.
|
|
3772
|
+
this.$utils.covertDateToDateString(data);
|
|
3769
3773
|
const values = Object.entries(data).map(([column, value]) => {
|
|
3770
3774
|
if (typeof value === 'string' && !(value.includes(this.$constants('RAW')))) {
|
|
3771
3775
|
value = this.$utils.escapeActions(value);
|
|
@@ -3777,7 +3781,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3777
3781
|
return `${this.$constants('SET')} ${values}`;
|
|
3778
3782
|
}
|
|
3779
3783
|
_queryInsert(data) {
|
|
3780
|
-
this.$utils.
|
|
3784
|
+
data = this.$utils.covertDateToDateString(data);
|
|
3781
3785
|
const columns = Object.keys(data).map((column) => this.bindColumn(column));
|
|
3782
3786
|
const values = Object.values(data).map((value) => {
|
|
3783
3787
|
if (typeof value === 'string' && !(value.includes(this.$constants('RAW')))) {
|
|
@@ -3797,7 +3801,7 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3797
3801
|
var _a;
|
|
3798
3802
|
let values = [];
|
|
3799
3803
|
for (let objects of data) {
|
|
3800
|
-
this.$utils.
|
|
3804
|
+
this.$utils.covertDateToDateString(objects);
|
|
3801
3805
|
const vals = Object.values(objects).map((value) => {
|
|
3802
3806
|
if (typeof value === 'string' && !(value.includes(this.$constants('RAW')))) {
|
|
3803
3807
|
value = this.$utils.escapeActions(value);
|
|
@@ -3825,13 +3829,6 @@ class Builder extends AbstractBuilder_1.AbstractBuilder {
|
|
|
3825
3829
|
}
|
|
3826
3830
|
return [value, operator];
|
|
3827
3831
|
}
|
|
3828
|
-
_valueTrueFalse(value) {
|
|
3829
|
-
if (value === true)
|
|
3830
|
-
return 1;
|
|
3831
|
-
if (value === false)
|
|
3832
|
-
return 0;
|
|
3833
|
-
return value;
|
|
3834
|
-
}
|
|
3835
3832
|
_initialConnection() {
|
|
3836
3833
|
this.$utils = utils_1.utils;
|
|
3837
3834
|
this.$pool = (() => {
|