Skip to content

Commit 66b84f3

Browse files
Symbiosis 0.0.29 (#88)
1 parent 2b15d73 commit 66b84f3

File tree

22 files changed

+457
-531
lines changed

22 files changed

+457
-531
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515

1616
### Removed
1717

18+
## [0.0.17] - 2021-12-05
19+
20+
### Added
21+
22+
### Changed
23+
24+
- Update `@techmmunity/symbiosis` to [0.0.29](https://github.com/techmmunity-symbiosis/symbiosis/blob/master/CHANGELOG.md#0029---2021-12-05)
25+
26+
### Fixed
27+
28+
### Removed
29+
1830
## [0.0.16] - 2021-11-12
1931

2032
### Added

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@techmmunity/symbiosis-dynamodb",
3-
"version": "0.0.16",
3+
"version": "0.0.17",
44
"main": "index.js",
55
"types": "index.d.ts",
66
"license": "Apache-2.0",
@@ -28,7 +28,7 @@
2828
"techmmunity-symbiosis"
2929
],
3030
"peerDependencies": {
31-
"@techmmunity/symbiosis": "^0.0.28",
31+
"@techmmunity/symbiosis": "^0.0.29",
3232
"reflect-metadata": "^0.1.13"
3333
},
3434
"dependencies": {
@@ -38,7 +38,7 @@
3838
},
3939
"devDependencies": {
4040
"@techmmunity/eslint-config": "^5.0.1",
41-
"@techmmunity/symbiosis": "^0.0.28",
41+
"@techmmunity/symbiosis": "^0.0.29",
4242
"@types/jest": "^27.0.1",
4343
"@vercel/ncc": "^0.33.0",
4444
"eslint": "^8.1.0",

src/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,4 @@ export * from "./lib/repository";
2929
*/
3030

3131
export * from "./lib/types/connection-options";
32-
export * from "./lib/types/column-extra-metadata";
33-
export * from "./lib/types/entity-extra-metadata";
34-
export * from "./lib/types/index-extra-metadata";
32+
export * from "./lib/types/extra-metadata";

src/lib/connection/index.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
import { BaseConnection } from "@techmmunity/symbiosis";
22
import { DynamoDBClient, DynamoDBClientConfig } from "@aws-sdk/client-dynamodb";
33
import { Repository } from "../repository";
4-
import type { ColumnExtraMetadata } from "../types/column-extra-metadata";
5-
import type { EntityExtraMetadata } from "../types/entity-extra-metadata";
6-
import { DynamoDbConnectionOptions } from "../types/connection-options";
7-
import { IndexExtraMetadata } from "../types/index-extra-metadata";
4+
import type { DynamoDbConnectionOptions } from "../types/connection-options";
5+
import type { ExtraMetadata } from "../types/extra-metadata";
86

97
export class Connection extends BaseConnection<
108
DynamoDBClientConfig,
11-
EntityExtraMetadata,
12-
ColumnExtraMetadata,
13-
IndexExtraMetadata
9+
ExtraMetadata
1410
> {
1511
private _connectionInstance: DynamoDBClient;
1612

@@ -28,6 +24,13 @@ export class Connection extends BaseConnection<
2824
this._connectionInstance = new DynamoDBClient(
2925
this.options.databaseConfig || {},
3026
);
27+
28+
return this;
29+
}
30+
31+
// eslint-disable-next-line require-await
32+
public async validate() {
33+
this.basicValidate();
3134
}
3235

3336
// Disabled because the "close" method must return a promise

src/lib/repository/delete/helpers/validate-primary-columns.ts

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,13 @@ import type { ColumnMetadata } from "@techmmunity/symbiosis/lib/entity-manager/t
77
import type { EntityMetadata } from "@techmmunity/symbiosis/lib/entity-manager/types/entity-metadata";
88
import type { DatabaseEntity } from "@techmmunity/symbiosis/lib/types/database-entity";
99
import { getTypeof } from "@techmmunity/utils";
10-
import type { ColumnExtraMetadata } from "../../../types/column-extra-metadata";
11-
import type { EntityExtraMetadata } from "../../../types/entity-extra-metadata";
12-
import type { IndexExtraMetadata } from "../../../types/index-extra-metadata";
10+
11+
import type { ExtraMetadata } from "../../../types/extra-metadata";
1312

1413
interface ValidatePrimaryColumns {
1514
where: FindConditions<DatabaseEntity>;
16-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>;
17-
entityMetadata: EntityMetadata<
18-
EntityExtraMetadata,
19-
ColumnExtraMetadata,
20-
IndexExtraMetadata
21-
>;
15+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>;
16+
entityMetadata: EntityMetadata<ExtraMetadata>;
2217
}
2318

2419
const throwDefaultError = (extraDetails?: Array<any>) => {
@@ -34,13 +29,9 @@ const throwDefaultError = (extraDetails?: Array<any>) => {
3429
};
3530

3631
const validateHasTheSameLength = (
37-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>,
32+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>,
3833
whereKeys: Array<string>,
39-
entityMetadata: EntityMetadata<
40-
EntityExtraMetadata,
41-
ColumnExtraMetadata,
42-
IndexExtraMetadata
43-
>,
34+
entityMetadata: EntityMetadata<ExtraMetadata>,
4435
) => {
4536
if (whereKeys.length !== primaryColumns.length) {
4637
return throwDefaultError([
@@ -54,13 +45,9 @@ const validateHasTheSameLength = (
5445
};
5546

5647
const validateAreTheSamePrimaryKeys = (
57-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>,
48+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>,
5849
whereKeys: Array<string>,
59-
entityMetadata: EntityMetadata<
60-
EntityExtraMetadata,
61-
ColumnExtraMetadata,
62-
IndexExtraMetadata
63-
>,
50+
entityMetadata: EntityMetadata<ExtraMetadata>,
6451
) => {
6552
const primaryColumnsKeys = primaryColumns.map(col => col.databaseName);
6653

src/lib/repository/delete/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { DeleteItemCommand } from "@aws-sdk/client-dynamodb";
22
import { marshall } from "@aws-sdk/util-dynamodb";
3-
import type { BeforeDeleteParams } from "@techmmunity/symbiosis/lib/repository/methods/before-delete";
3+
import type { BeforeDeleteInput } from "@techmmunity/symbiosis/lib/repository/methods/delete/before";
44
import type { Context } from "../../types/context";
55
import { validatePrimaryColumns } from "./helpers/validate-primary-columns";
66

77
export const del = async <Entity>(
88
context: Context<Entity>, // Cannot destruct this!!!
9-
{ where: rawWhere, options: rawOptions }: BeforeDeleteParams<Entity>,
9+
{ where: rawWhere, options: rawOptions }: BeforeDeleteInput<Entity>,
1010
) => {
1111
const { where } = context.beforeDelete({
1212
where: rawWhere,

src/lib/repository/find-one/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable @typescript-eslint/naming-convention */
22

33
import { unmarshall } from "@aws-sdk/util-dynamodb";
4-
import type { BeforeFindOneParams } from "@techmmunity/symbiosis/lib/repository/methods/before-find-one";
4+
import type { BeforeFindOneInput } from "@techmmunity/symbiosis/lib/repository/methods/find-one/before";
55
import type { DatabaseEntity } from "@techmmunity/symbiosis/lib/types/database-entity";
66
import type { Context } from "../../types/context";
77
import { getFindCommand } from "../../utils/get-find-command";
@@ -13,7 +13,7 @@ export const findOne = async <Entity>(
1313
{
1414
conditions: rawConditions,
1515
options: rawOptions,
16-
}: BeforeFindOneParams<Entity>,
16+
}: BeforeFindOneInput<Entity>,
1717
) => {
1818
const { conditions } = context.beforeFindOne({
1919
conditions: rawConditions,

src/lib/repository/find/helpers/get-start-from.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,14 @@ import { marshall } from "@aws-sdk/util-dynamodb";
22
import { EntityManager } from "@techmmunity/symbiosis";
33
import { DatabaseEntity } from "@techmmunity/symbiosis/lib/types/database-entity";
44
import { cleanObj, isEmptyObject } from "@techmmunity/utils";
5-
import type { ColumnExtraMetadata } from "../../../types/column-extra-metadata";
6-
import type { EntityExtraMetadata } from "../../../types/entity-extra-metadata";
7-
import type { IndexExtraMetadata } from "../../../types/index-extra-metadata";
5+
import { ExtraMetadata } from "../../../types/extra-metadata";
86
import { validatePrimaryColumns } from "./validate-primary-columns";
97

108
export interface GetStartFromParams<Entity> {
119
startFrom?: Partial<DatabaseEntity>;
1210
context: {
1311
entity: Entity;
14-
entityManager: EntityManager<
15-
EntityExtraMetadata,
16-
ColumnExtraMetadata,
17-
IndexExtraMetadata
18-
>;
12+
entityManager: EntityManager<ExtraMetadata>;
1913
};
2014
}
2115

src/lib/repository/find/helpers/validate-primary-columns.ts

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,13 @@ import type { ColumnMetadata } from "@techmmunity/symbiosis/lib/entity-manager/t
33
import type { EntityMetadata } from "@techmmunity/symbiosis/lib/entity-manager/types/entity-metadata";
44
import type { DatabaseEntity } from "@techmmunity/symbiosis/lib/types/database-entity";
55
import { cleanObj, getTypeof, isEmptyObject } from "@techmmunity/utils";
6-
import type { ColumnExtraMetadata } from "../../../types/column-extra-metadata";
7-
import type { EntityExtraMetadata } from "../../../types/entity-extra-metadata";
8-
import type { IndexExtraMetadata } from "../../../types/index-extra-metadata";
6+
7+
import type { ExtraMetadata } from "../../../types/extra-metadata";
98

109
interface ValidatePrimaryColumns {
1110
startFrom: Partial<DatabaseEntity>;
12-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>;
13-
entityMetadata: EntityMetadata<
14-
EntityExtraMetadata,
15-
ColumnExtraMetadata,
16-
IndexExtraMetadata
17-
>;
11+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>;
12+
entityMetadata: EntityMetadata<ExtraMetadata>;
1813
}
1914

2015
const throwDefaultError = (extraDetails?: Array<any>) => {
@@ -30,13 +25,9 @@ const throwDefaultError = (extraDetails?: Array<any>) => {
3025
};
3126

3227
const validateHasTheSameLength = (
33-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>,
28+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>,
3429
startFromKeys: Array<string>,
35-
entityMetadata: EntityMetadata<
36-
EntityExtraMetadata,
37-
ColumnExtraMetadata,
38-
IndexExtraMetadata
39-
>,
30+
entityMetadata: EntityMetadata<ExtraMetadata>,
4031
) => {
4132
if (startFromKeys.length !== primaryColumns.length) {
4233
return throwDefaultError([
@@ -50,13 +41,9 @@ const validateHasTheSameLength = (
5041
};
5142

5243
const validateAreTheSamePrimaryKeys = (
53-
primaryColumns: Array<ColumnMetadata<ColumnExtraMetadata>>,
44+
primaryColumns: Array<ColumnMetadata<ExtraMetadata["column"]>>,
5445
startFromKeys: Array<string>,
55-
entityMetadata: EntityMetadata<
56-
EntityExtraMetadata,
57-
ColumnExtraMetadata,
58-
IndexExtraMetadata
59-
>,
46+
entityMetadata: EntityMetadata<ExtraMetadata>,
6047
) => {
6148
const primaryColumnsKeys = primaryColumns.map(col => col.databaseName);
6249

src/lib/repository/find/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable @typescript-eslint/naming-convention */
22

33
import { unmarshall } from "@aws-sdk/util-dynamodb";
4-
import type { BeforeFindParams } from "@techmmunity/symbiosis/lib/repository/methods/before-find";
4+
import type { BeforeFindInput } from "@techmmunity/symbiosis/lib/repository/methods/find/before";
55
import { isNotEmptyObject } from "@techmmunity/utils";
66
import type { Context } from "../../types/context";
77
import { getFindCommand } from "../../utils/get-find-command";
@@ -11,7 +11,7 @@ import { getStartFrom } from "./helpers/get-start-from";
1111

1212
export const find = async <Entity>(
1313
context: Context<Entity>, // Cannot destruct this!!!
14-
{ conditions: rawConditions, options: rawOptions }: BeforeFindParams<Entity>,
14+
{ conditions: rawConditions, options: rawOptions }: BeforeFindInput<Entity>,
1515
) => {
1616
const { conditions } = context.beforeFind({
1717
conditions: rawConditions,

0 commit comments

Comments
 (0)