Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.13.2 #102

Open
wants to merge 4 commits into
base: 2.13.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@balmbees/dynamo-types",
"version": "2.13.0",
"version": "2.13.2-beta.0",
"description": "DynamoDB ORM for Typescript",
"main": "./dst/index.js",
"typings": "./dst/index.d.ts",
Expand All @@ -9,7 +9,7 @@
"build": "tsc",
"postbuild": "cd src && find . -name '*.json' -type f -exec cp {} ../dst/{} \\; && cd ..",
"test": "env AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=mock AWS_SECRET_ACCESS_KEY=moc mocha -r ./node_modules/ts-node/register --exit -t 20000 src/**/__test__/**/*.ts",
"test:local": "env DYNAMO_TYPES_ENDPOINT=http://127.0.0.1:8000 npm test",
"test:local": "env DYNAMO_TYPES_ENDPOINT=http://127.0.0.1:20010 npm test",
"prepublishOnly": "npm run build",
"lint": "tslint -c tslint.json 'src/**/*.ts'"
},
Expand Down
4 changes: 3 additions & 1 deletion src/query/batch_get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ export async function __batchGet(
});
} catch (e) {
// tslint:disable-next-line
console.log(`Dynamo-Types batchGet - ${JSON.stringify(keys, null, 2)}`);
console.log(`Dynamo-Types batchGet on ${tableName} - ${JSON.stringify(keys, null, 2)}`);
// tslint:disable-next-line
console.log("error: ", e);
throw e;
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/query/batch_write.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ export async function batchWrite(
);
} catch (e) {
// tslint:disable-next-line
console.log(`Dynamo-Types batchWrite - ${JSON.stringify(requests, null, 2)}`);
console.log("tried batchWrite with params: ", requests);
// tslint:disable-next-line
console.log(`Dynamo-Types batchWrite on ${tableName} - ${JSON.stringify(requests, null, 2)}`);
// tslint:disable-next-line
console.log("error: ", e);
throw e;
}
}
116 changes: 72 additions & 44 deletions src/query/global_secondary_index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,24 @@ export class FullGlobalSecondaryIndex<T extends Table, HashKeyType, RangeKeyType
Object.assign(params.ExpressionAttributeValues, rangeKeyOptions.expressionAttributeValues);
}

const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried query with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}

public async scan(options: {
Expand All @@ -84,17 +91,24 @@ export class FullGlobalSecondaryIndex<T extends Table, HashKeyType, RangeKeyType
Segment: options.segment,
};

const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried scan with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}
}

Expand All @@ -120,17 +134,24 @@ export class HashGlobalSecondaryIndex<T extends Table, HashKeyType> {
ConsistentRead: options.consistent,
};

const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried query with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}

public async scan(options: {
Expand All @@ -149,17 +170,24 @@ export class HashGlobalSecondaryIndex<T extends Table, HashKeyType> {
Segment: options.segment,
};

const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried scan with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}
}
// tslint:enable:max-classes-per-file
58 changes: 36 additions & 22 deletions src/query/local_secondary_index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,24 @@ export class LocalSecondaryIndex<T extends Table, HashKeyType, RangeKeyType> {
Object.assign(params.ExpressionAttributeValues, rangeKeyOptions.expressionAttributeValues);
}

const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.query(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried query with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}

public async scan(options: {
Expand All @@ -83,16 +90,23 @@ export class LocalSecondaryIndex<T extends Table, HashKeyType, RangeKeyType> {
Segment: options.segment,
};

const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();

return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
try {
const result = await this.tableClass.metadata.connection.documentClient.scan(params).promise();
return {
records: (result.Items || []).map((item) => {
return Codec.deserialize(this.tableClass, item);
}),
count: result.Count,
scannedCount: result.ScannedCount,
lastEvaluatedKey: result.LastEvaluatedKey,
consumedCapacity: result.ConsumedCapacity,
};
} catch (error) {
// tslint:disable-next-line: no-console
console.log("tried scan with params: ", params);
// tslint:disable-next-line: no-console
console.log(error);
throw error;
}
}
}
18 changes: 14 additions & 4 deletions src/query/writer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ export class Writer<T extends Table> {
condition: Conditions<T> | Array<Conditions<T>>;
}> = {},
) {
const operation = this.buildPutOperation(record, options);
try {
const operation = this.buildPutOperation(record, options);
const res = await this.tableClass.metadata.connection.documentClient.put(operation).promise();

record.setAttributes(res.Attributes || {});
return record;
} catch (e) {
// tslint:disable-next-line
console.log("tried put with params: ", operation);
// tslint:disable-next-line
console.log(`Dynamo-Types Put - ${JSON.stringify(record.serialize(), null, 2)}`);
throw e;
Expand Down Expand Up @@ -79,9 +81,17 @@ export class Writer<T extends Table> {
condition: Conditions<T> | Array<Conditions<T>>;
}> = {},
) {
await this.tableClass.metadata.connection.documentClient.delete(
this.buildDeleteOperation(record, options)
).promise();
const operation = this.buildDeleteOperation(record, options);

try {
await this.tableClass.metadata.connection.documentClient.delete(operation).promise();
} catch (error) {
// tslint:disable-next-line
console.log("tried delete with params: ", operation);
// tslint:disable-next-line
console.log(`Dynamo-Types Delete - ${JSON.stringify(record.serialize(), null, 2)}`);
throw error;
}
}
}

Expand Down
4 changes: 3 additions & 1 deletion src/transaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export class TransactionWrite {

public async commit() {

if(_.isEmpty(this.__typedOperation)) {
if (_.isEmpty(this.__typedOperation)) {
return;
}

Expand All @@ -72,6 +72,8 @@ export class TransactionWrite {
TransactItems: items
}).promise();
} catch (e) {
// tslint:disable-next-line: no-console
console.log("tried transaction write on ", items);
// tslint:disable-next-line: no-console
console.log(e);
throw e;
Expand Down