Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Commit 88dc85c

Browse files
committed
Flow fixes
1 parent 349dddf commit 88dc85c

File tree

10 files changed

+55
-44
lines changed

10 files changed

+55
-44
lines changed

package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,32 @@
2323
"start": "node ./scripts/start.js",
2424
"debug": "node-debug ./scripts/start.js"
2525
},
26-
"dependencies": {
27-
},
26+
"dependencies": {},
2827
"devDependencies": {
29-
"aws-sdk-promise": "0.0.2",
30-
"dotenv": "^2.0.0",
3128
"aws-sdk": "2.2.48",
32-
"babel-polyfill": "^6.7.4",
33-
"measured": "^1.1.0",
29+
"aws-sdk-promise": "0.0.2",
3430
"babel": "^6.5.2",
3531
"babel-cli": "^6.7.7",
3632
"babel-eslint": "^6.0.4",
37-
"babel-preset-react-native": "^1.5.7",
38-
"webpack": "^1.13.0",
3933
"babel-loader": "^6.2.4",
34+
"babel-polyfill": "^6.7.4",
35+
"babel-preset-react-native": "^1.5.7",
4036
"del": "^2.2.0",
37+
"dotenv": "^2.0.0",
38+
"eslint": "^2.9.0",
39+
"eslint-plugin-babel": "^3.2.0",
4140
"gulp": "^3.9.1",
4241
"gulp-install": "^0.6.0",
4342
"gulp-rename": "^1.2.2",
4443
"gulp-uglify": "^1.5.3",
4544
"gulp-zip": "^3.2.0",
45+
"invariant": "^2.2.1",
46+
"json-loader": "^0.5.4",
47+
"measured": "^1.1.0",
4648
"run-sequence": "^1.1.5",
47-
"webpack-stream": "^3.2.0",
4849
"stats-webpack-plugin": "^0.3.1",
49-
"eslint": "^2.9.0",
50-
"eslint-plugin-babel": "^3.2.0",
51-
"invariant": "^2.2.1",
52-
"warning": "^2.1.0"
50+
"warning": "^2.1.0",
51+
"webpack": "^1.13.0",
52+
"webpack-stream": "^3.2.0"
5353
}
5454
}

scripts/start.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,11 @@ try {
1212
console.log(JSON.stringify(data));
1313
}
1414
} catch (e) {
15-
console.log(e.stack);
16-
console.error(e);
15+
console.error(e.stack);
1716
}
1817
},
1918
fail: e => {
20-
console.log(e.stack);
21-
console.error(e);
19+
console.error(e.stack);
2220
}
2321
};
2422

src/Index.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Stats from './utils/Stats';
1010
import CostEstimation from './utils/CostEstimation';
1111
import Throughput from './utils/Throughput';
1212
import CapacityCalculator from './CapacityCalculator';
13-
import { json, stats, log, invariant } from './Global';
13+
import { json, stats, log } from './Global';
1414

1515
log('*** LAMBDA INIT ***');
1616
export let handler = async (event: any, context: any) => {
@@ -130,7 +130,6 @@ export let handler = async (event: any, context: any) => {
130130
}
131131

132132
} catch (e) {
133-
invariant(e);
134133
if (context) {
135134
context.fail(e);
136135
} else {

src/Provisioner.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ import type { TableProvisionedAndConsumedThroughput, ProvisionerConfig, Adjustme
1111
export default class Provisioner extends ProvisionerConfigurableBase {
1212

1313
// Get the region
14-
getDynamoDBRegion() {
14+
getDynamoDBRegion(): string {
1515
return 'us-east-1';
1616
}
1717

1818
// Get the list of tables which we want to autoscale
19-
async getTableNamesAsync() {
19+
async getTableNamesAsync(): Promise<string[]> {
2020

2121
// Option 1 - All tables (Default)
2222
let listTablesResponse = await this.db.listTablesAsync();

src/capacity/CapacityCalculatorBase.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
/* @flow */
22
import { json, stats, warning, invariant } from '../Global';
33
import CloudWatch from '../aws/CloudWatch';
4-
import type { TableConsumedCapacityDescription, StatisticSettings } from '../flow/FlowTypes';
4+
import type {
5+
TableConsumedCapacityDescription,
6+
StatisticSettings,
7+
ConsumedCapacityDesc
8+
} from '../flow/FlowTypes';
59
import type {
610
TableDescription,
711
GetMetricStatisticsResponse,
@@ -16,7 +20,7 @@ export default class CapacityCalculatorBase {
1620
}
1721

1822
// Get the region
19-
getCloudWatchRegion() {
23+
getCloudWatchRegion(): string {
2024
invariant(false, 'The method \'getCloudWatchRegion\' was not implemented');
2125
}
2226

@@ -27,7 +31,7 @@ export default class CapacityCalculatorBase {
2731

2832
// Gets the projected capacity value based on the cloudwatch datapoints
2933
// eslint-disable-next-line no-unused-vars
30-
getProjectedValue(data: GetMetricStatisticsResponse) {
34+
getProjectedValue(data: GetMetricStatisticsResponse): number {
3135
invariant(false, 'The method \'getProjectedValue\' was not implemented');
3236
}
3337

@@ -60,7 +64,7 @@ export default class CapacityCalculatorBase {
6064
let gsis = gsiConsumedReads.map((read, i) => {
6165
let write = gsiConsumedWrites[i];
6266
return {
63-
// $FlowIgnor: The indexName is not null in this case
67+
// $FlowIgnore: The indexName is not null in this case
6468
IndexName: read.globalSecondaryIndexName,
6569
ConsumedThroughput: {
6670
ReadCapacityUnits: read.value,
@@ -90,12 +94,11 @@ export default class CapacityCalculatorBase {
9094
}
9195

9296
async getConsumedCapacityAsync(
93-
isRead: boolean, tableName: string, globalSecondaryIndexName: ?string) {
97+
isRead: boolean, tableName: string, globalSecondaryIndexName: ?string):
98+
Promise<ConsumedCapacityDesc> {
9499
try {
95100
invariant(isRead != null, 'Parameter \'isRead\' is not set');
96101
invariant(tableName != null, 'Parameter \'tableName\' is not set');
97-
invariant(globalSecondaryIndexName != null,
98-
'Parameter \'globalSecondaryIndexName\' is not set');
99102

100103
// These values determine how many minutes worth of metrics
101104
let statisticCount = 5;
@@ -120,11 +123,13 @@ export default class CapacityCalculatorBase {
120123

121124
let statistics = await this.cw.getMetricStatisticsAsync(params);
122125
let value = this.getProjectedValue(statistics);
123-
return {
126+
let result: ConsumedCapacityDesc = {
124127
tableName,
125128
globalSecondaryIndexName,
126129
value
127130
};
131+
132+
return result;
128133
} catch (ex) {
129134
warning(JSON.stringify({
130135
class: 'CapacityCalculator',

src/flow/FlowTypes.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ export type TableConsumedCapacityDescription = {
1919
GlobalSecondaryIndexes: GlobalSecondaryIndexConsumedThroughput[],
2020
};
2121

22+
export type ConsumedCapacityDesc = {
23+
tableName: string,
24+
globalSecondaryIndexName: ?string,
25+
value: number,
26+
};
27+
2228
export type ProvisionerConfig = {
2329
ReadCapacity: CapacityConfig,
2430
WriteCapacity: CapacityConfig,

src/provisioning/ProvisionerBase.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ export default class ProvisionerBase {
1313
this.db = DynamoDB.create(this.getDynamoDBRegion());
1414
}
1515

16-
getDynamoDBRegion() {
16+
getDynamoDBRegion(): string {
1717
invariant(false, 'The method \'getDynamoDBRegion\' was not implemented');
1818
}
1919

20-
async getTableNamesAsync() {
20+
async getTableNamesAsync(): Promise<string[]> {
2121
invariant(false, 'The method \'getTableNamesAsync\' was not implemented');
2222
}
2323

2424
async getTableUpdateAsync(
2525
tableDescription: TableDescription,
26-
tableConsumedCapacityDescription: TableConsumedCapacityDescription) :
26+
tableConsumedCapacityDescription: TableConsumedCapacityDescription):
2727
Promise<?UpdateTableRequest> {
2828
invariant(false, 'The method \'getTableUpdateAsync\' was not implemented');
2929
}

src/provisioning/ProvisionerConfigurableBase.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,46 +16,46 @@ import type {
1616
export default class ProvisionerConfigurableBase extends ProvisionerBase {
1717

1818
// eslint-disable-next-line no-unused-vars
19-
isReadCapacityIncrementRequired(data: TableProvisionedAndConsumedThroughput) {
19+
isReadCapacityIncrementRequired(data: TableProvisionedAndConsumedThroughput): boolean {
2020
invariant(false, 'The method \'isReadCapacityIncrementRequired\' was not implemented');
2121
}
2222

2323
// eslint-disable-next-line no-unused-vars
24-
calculateIncrementedReadCapacityValue(data: TableProvisionedAndConsumedThroughput) {
24+
calculateIncrementedReadCapacityValue(data: TableProvisionedAndConsumedThroughput): number {
2525
invariant(false, 'The method \'calculateIncrementedReadCapacityValue\' was not implemented');
2626
}
2727

2828
// eslint-disable-next-line no-unused-vars
29-
isReadCapacityDecrementRequired(data: TableProvisionedAndConsumedThroughput) {
29+
isReadCapacityDecrementRequired(data: TableProvisionedAndConsumedThroughput): boolean {
3030
invariant(false, 'The method \'isReadCapacityDecrementRequired\' was not implemented');
3131
}
3232

3333
// eslint-disable-next-line no-unused-vars
34-
calculateDecrementedReadCapacityValue(data: TableProvisionedAndConsumedThroughput) {
34+
calculateDecrementedReadCapacityValue(data: TableProvisionedAndConsumedThroughput): number {
3535
invariant(false, 'The method \'calculateDecrementedReadCapacityValue\' was not implemented');
3636
}
3737

3838
// eslint-disable-next-line no-unused-vars
39-
isWriteCapacityIncrementRequired(data: TableProvisionedAndConsumedThroughput) {
39+
isWriteCapacityIncrementRequired(data: TableProvisionedAndConsumedThroughput): boolean {
4040
invariant(false, 'The method \'isWriteCapacityIncrementRequired\' was not implemented');
4141
}
4242

4343
// eslint-disable-next-line no-unused-vars
44-
calculateIncrementedWriteCapacityValue(data: TableProvisionedAndConsumedThroughput) {
44+
calculateIncrementedWriteCapacityValue(data: TableProvisionedAndConsumedThroughput): number {
4545
invariant(false, 'The method \'calculateIncrementedWriteCapacityValue\' was not implemented');
4646
}
4747

4848
// eslint-disable-next-line no-unused-vars
49-
isWriteCapacityDecrementRequired(data: TableProvisionedAndConsumedThroughput) {
49+
isWriteCapacityDecrementRequired(data: TableProvisionedAndConsumedThroughput): boolean {
5050
invariant(false, 'The method \'isWriteCapacityDecrementRequired\' was not implemented');
5151
}
5252

5353
// eslint-disable-next-line no-unused-vars
54-
calculateDecrementedWriteCapacityValue(data: TableProvisionedAndConsumedThroughput) {
54+
calculateDecrementedWriteCapacityValue(data: TableProvisionedAndConsumedThroughput): number {
5555
invariant(false, 'The method \'calculateDecrementedWriteCapacityValue\' was not implemented');
5656
}
5757

58-
async getTableNamesAsync() {
58+
async getTableNamesAsync(): Promise<string[]> {
5959
invariant(false, 'The method \'getTableNamesAsync\' was not implemented');
6060
}
6161

src/utils/CostEstimation.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
/* @flow */
22
import { json, warning, invariant } from '../Global';
3+
import type {
4+
Throughput,
5+
} from 'aws-sdk-promise';
36

47
export default class CostEstimation {
58

6-
static getMonthlyEstimatedTableCost(provisionedThroughput) {
9+
static getMonthlyEstimatedTableCost(provisionedThroughput: Throughput) {
710
try {
811
invariant(provisionedThroughput != null, 'Parameter \'provisionedThroughput\' is not set');
912

src/utils/Throughput.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ export default class Throughput {
6565
adjustmentContext.ProvisionedValue;
6666

6767
// Increment 'to' unit value
68-
let toU = (adjustmentContext.CapacityAdjustmentConfig.To != null && adjustmentContext.CapacityAdjustmentConfig.To.units != null) ?
69-
adjustmentContext.CapacityAdjustmentConfig.To.units :
68+
let toU = (adjustmentContext.CapacityAdjustmentConfig.To != null && adjustmentContext.CapacityAdjustmentConfig.To.Units != null) ?
69+
adjustmentContext.CapacityAdjustmentConfig.To.Units :
7070
adjustmentContext.ProvisionedValue;
7171

7272
// Select the greatest calculated increment

0 commit comments

Comments
 (0)