Skip to content

Commit 7ea5475

Browse files
author
SSOfy
committed
v2.4.0 build
1 parent 73b6df0 commit 7ea5475

File tree

124 files changed

+2298
-163
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+2298
-163
lines changed

build/Datasource/Criteria.d.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface Criteria {
2+
[key: string]: any;
3+
}

build/Datasource/Criteria.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Datasource } from '.';
2+
import { Connection } from './Connection';
3+
import { DynamoDB } from 'aws-sdk';
4+
export declare class DynamoDBConnection extends Connection {
5+
protected client: DynamoDB.DocumentClient;
6+
constructor(client: DynamoDB.DocumentClient);
7+
query(schema: string, criteria: Datasource.Criteria): Promise<Datasource.Item[]>;
8+
insert(schema: string, item: Datasource.Item): Promise<Datasource.Item>;
9+
update(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
10+
upsert(schema: string, _criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
11+
delete(schema: string, criteria: Datasource.Criteria): Promise<void>;
12+
}
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
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.DynamoDBConnection = void 0;
13+
const Connection_1 = require("./Connection");
14+
class DynamoDBConnection extends Connection_1.Connection {
15+
constructor(client) {
16+
super();
17+
this.client = client;
18+
}
19+
query(schema, criteria) {
20+
return __awaiter(this, void 0, void 0, function* () {
21+
const params = {
22+
TableName: schema,
23+
KeyConditionExpression: Object.keys(criteria).map(key => `${key} = :${key}`).join(' AND '),
24+
ExpressionAttributeValues: Object.entries(criteria).reduce((acc, [key, value]) => {
25+
acc[`:${key}`] = value;
26+
return acc;
27+
}, {}),
28+
};
29+
const result = yield this.client.query(params).promise();
30+
return result.Items;
31+
});
32+
}
33+
insert(schema, item) {
34+
return __awaiter(this, void 0, void 0, function* () {
35+
const params = {
36+
TableName: schema,
37+
Item: item,
38+
};
39+
yield this.client.put(params).promise();
40+
return item;
41+
});
42+
}
43+
update(schema, criteria, item) {
44+
return __awaiter(this, void 0, void 0, function* () {
45+
const updateExpressions = [];
46+
const expressionAttributeNames = {};
47+
const expressionAttributeValues = {};
48+
Object.entries(item).forEach(([key, value], index) => {
49+
const attributeKey = `#attr${index}`;
50+
const attributeValueKey = `:value${index}`;
51+
updateExpressions.push(`${attributeKey} = ${attributeValueKey}`);
52+
expressionAttributeNames[attributeKey] = key;
53+
expressionAttributeValues[attributeValueKey] = value;
54+
});
55+
const params = {
56+
TableName: schema,
57+
Key: criteria,
58+
UpdateExpression: `SET ${updateExpressions.join(', ')}`,
59+
ExpressionAttributeNames: expressionAttributeNames,
60+
ExpressionAttributeValues: expressionAttributeValues,
61+
};
62+
yield this.client.update(params).promise();
63+
});
64+
}
65+
upsert(schema, _criteria, item) {
66+
return __awaiter(this, void 0, void 0, function* () {
67+
yield this.insert(schema, item);
68+
});
69+
}
70+
delete(schema, criteria) {
71+
return __awaiter(this, void 0, void 0, function* () {
72+
const params = {
73+
TableName: schema,
74+
Key: criteria,
75+
};
76+
yield this.client.delete(params).promise();
77+
});
78+
}
79+
}
80+
exports.DynamoDBConnection = DynamoDBConnection;

build/Datasource/Item.d.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export interface Item {
2+
[key: string]: any;
3+
}

build/Datasource/Item.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Datasource } from '.';
2+
import { Connection } from './Connection';
3+
import { Collection, Db } from 'mongodb';
4+
export declare class MongoDBConnection extends Connection {
5+
protected db: Db;
6+
constructor(db: Db);
7+
protected getCollection(schema: string): Collection;
8+
query(schema: string, criteria: Datasource.Criteria): Promise<Datasource.Item[]>;
9+
insert(schema: string, item: Datasource.Item): Promise<Datasource.Item>;
10+
update(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
11+
upsert(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
12+
delete(schema: string, criteria: Datasource.Criteria): Promise<void>;
13+
}

build/Datasource/MongoDBConnection.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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.MongoDBConnection = void 0;
13+
const Connection_1 = require("./Connection");
14+
class MongoDBConnection extends Connection_1.Connection {
15+
constructor(db) {
16+
super();
17+
this.db = db;
18+
}
19+
getCollection(schema) {
20+
return this.db.collection(schema);
21+
}
22+
query(schema, criteria) {
23+
return __awaiter(this, void 0, void 0, function* () {
24+
const collection = this.getCollection(schema);
25+
return yield collection.find(criteria).toArray();
26+
});
27+
}
28+
insert(schema, item) {
29+
return __awaiter(this, void 0, void 0, function* () {
30+
const collection = this.getCollection(schema);
31+
const response = yield collection.insertOne(item);
32+
return Object.assign(Object.assign({}, item), { _id: response.insertedId });
33+
});
34+
}
35+
update(schema, criteria, item) {
36+
return __awaiter(this, void 0, void 0, function* () {
37+
const collection = this.getCollection(schema);
38+
yield collection.updateMany(criteria, { $set: item });
39+
});
40+
}
41+
upsert(schema, criteria, item) {
42+
return __awaiter(this, void 0, void 0, function* () {
43+
const collection = this.getCollection(schema);
44+
yield collection.updateOne(criteria, { $set: item }, { upsert: true });
45+
});
46+
}
47+
delete(schema, criteria) {
48+
return __awaiter(this, void 0, void 0, function* () {
49+
const collection = this.getCollection(schema);
50+
yield collection.deleteMany(criteria);
51+
});
52+
}
53+
}
54+
exports.MongoDBConnection = MongoDBConnection;
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Datasource } from ".";
2+
import { Connection } from "./Connection";
3+
import mongoose from 'mongoose';
4+
export declare class MongooseConnection extends Connection {
5+
query(model: mongoose.Model<any, {}>, criteria: Datasource.Criteria): Promise<Datasource.Item[]>;
6+
insert(model: mongoose.Model<any, {}>, item: Datasource.Item): Promise<Datasource.Item>;
7+
update(model: mongoose.Model<any, {}>, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
8+
upsert(model: mongoose.Model<any, {}>, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
9+
delete(model: mongoose.Model<any, {}>, criteria: Datasource.Criteria): Promise<void>;
10+
}
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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.MongooseConnection = void 0;
13+
const Connection_1 = require("./Connection");
14+
class MongooseConnection extends Connection_1.Connection {
15+
query(model, criteria) {
16+
return __awaiter(this, void 0, void 0, function* () {
17+
return yield model.find(criteria).exec();
18+
});
19+
}
20+
insert(model, item) {
21+
return __awaiter(this, void 0, void 0, function* () {
22+
const instance = new model(item);
23+
return yield instance.save();
24+
});
25+
}
26+
update(model, criteria, item) {
27+
return __awaiter(this, void 0, void 0, function* () {
28+
yield model.updateOne(criteria, item).exec();
29+
});
30+
}
31+
upsert(model, criteria, item) {
32+
return __awaiter(this, void 0, void 0, function* () {
33+
yield model.updateOne(criteria, item, { upsert: true }).exec();
34+
});
35+
}
36+
delete(model, criteria) {
37+
return __awaiter(this, void 0, void 0, function* () {
38+
yield model.deleteOne(criteria).exec();
39+
});
40+
}
41+
}
42+
exports.MongooseConnection = MongooseConnection;

build/Datasource/MySQLConnection.d.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Datasource } from '.';
2+
import { Connection } from './Connection';
3+
import { Pool } from 'mysql2/promise';
4+
export declare class MySQLPoolConnection extends Connection {
5+
protected pool: Pool;
6+
constructor(pool: Pool);
7+
query(schema: string, criteria: Datasource.Criteria): Promise<Datasource.Item[]>;
8+
insert(schema: string, item: Datasource.Item): Promise<Datasource.Item>;
9+
update(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
10+
upsert(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
11+
delete(schema: string, criteria: Datasource.Criteria): Promise<void>;
12+
}

build/Datasource/MySQLConnection.js

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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.MySQLPoolConnection = void 0;
13+
const Connection_1 = require("./Connection");
14+
class MySQLPoolConnection extends Connection_1.Connection {
15+
constructor(pool) {
16+
super();
17+
this.pool = pool;
18+
}
19+
query(schema, criteria) {
20+
return __awaiter(this, void 0, void 0, function* () {
21+
const keys = Object.keys(criteria);
22+
const values = Object.values(criteria);
23+
const placeholders = keys.map(key => `${key} = ?`).join(' AND ');
24+
const [rows] = yield this.pool.query(`SELECT *
25+
FROM ${schema}
26+
WHERE ${placeholders}`, values);
27+
return rows;
28+
});
29+
}
30+
insert(schema, item) {
31+
return __awaiter(this, void 0, void 0, function* () {
32+
const [result] = yield this.pool.query(`INSERT INTO ${schema}
33+
SET ?`, item);
34+
if ('insertId' in result) {
35+
return Object.assign(Object.assign({}, item), { id: result.insertId });
36+
}
37+
throw new Error('Insert operation did not return an insertId.');
38+
});
39+
}
40+
update(schema, criteria, item) {
41+
return __awaiter(this, void 0, void 0, function* () {
42+
const updateKeys = Object.keys(item);
43+
const updateValues = Object.values(item);
44+
const updatePlaceholders = updateKeys.map(key => `${key} = ?`).join(', ');
45+
const criteriaKeys = Object.keys(criteria);
46+
const criteriaValues = Object.values(criteria);
47+
const criteriaPlaceholders = criteriaKeys.map(key => `${key} = ?`).join(' AND ');
48+
yield this.pool.query(`UPDATE ${schema}
49+
SET ${updatePlaceholders}
50+
WHERE ${criteriaPlaceholders}`, [...updateValues, ...criteriaValues]);
51+
});
52+
}
53+
upsert(schema, criteria, item) {
54+
return __awaiter(this, void 0, void 0, function* () {
55+
const keys = Object.keys(item);
56+
const values = Object.values(item);
57+
const placeholders = keys.map(() => `?`).join(', ');
58+
const updatePlaceholders = keys.map(key => `${key} = VALUES(${key})`).join(', ');
59+
yield this.pool.query(`INSERT INTO ${schema} (${keys.join(', ')})
60+
VALUES (${placeholders}) ON DUPLICATE KEY
61+
UPDATE ${updatePlaceholders}`, [...values, ...values]);
62+
});
63+
}
64+
delete(schema, criteria) {
65+
return __awaiter(this, void 0, void 0, function* () {
66+
const keys = Object.keys(criteria);
67+
const values = Object.values(criteria);
68+
const placeholders = keys.map(key => `${key} = ?`).join(' AND ');
69+
yield this.pool.query(`DELETE
70+
FROM ${schema}
71+
WHERE ${placeholders}`, values);
72+
});
73+
}
74+
}
75+
exports.MySQLPoolConnection = MySQLPoolConnection;

build/Datasource/PGConnection.d.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Datasource } from '.';
2+
import { Connection } from './Connection';
3+
import { Pool } from 'pg';
4+
export declare class PGConnection extends Connection {
5+
protected pool: Pool;
6+
constructor(pool: Pool);
7+
query(schema: string, criteria: Datasource.Criteria): Promise<Datasource.Item[]>;
8+
insert(schema: string, item: Datasource.Item): Promise<Datasource.Item>;
9+
update(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
10+
upsert(schema: string, criteria: Datasource.Criteria, item: Datasource.Item): Promise<void>;
11+
delete(schema: string, criteria: Datasource.Criteria): Promise<void>;
12+
}

0 commit comments

Comments
 (0)