Skip to content

Commit 44463fe

Browse files
committed
Minor lodash refactor
1 parent c3adde0 commit 44463fe

File tree

1 file changed

+36
-33
lines changed
  • packages/serverless-offline-kinesis/src

1 file changed

+36
-33
lines changed

packages/serverless-offline-kinesis/src/index.js

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ const {
1212
isEmpty,
1313
isUndefined,
1414
map,
15-
mapValues,
15+
toPairs,
16+
negate,
17+
overEvery,
18+
overSome,
1619
matchesProperty,
1720
omitBy,
21+
isString,
1822
pipe,
1923
startsWith
2024
} = require('lodash/fp');
@@ -55,13 +59,15 @@ class ServerlessOfflineKinesis {
5559
}
5660

5761
getConfig() {
58-
return assignAll([
59-
omitBy(isUndefined, this.options),
60-
omitBy(isUndefined, this.service),
61-
omitBy(isUndefined, this.service.provider),
62-
omitBy(isUndefined, get(['custom', 'serverless-offline'], this.service)),
63-
omitBy(isUndefined, get(['custom', 'serverless-offline-kinesis'], this.service))
64-
]);
62+
return assignAll(
63+
[
64+
this.options,
65+
this.service,
66+
this.service.provider,
67+
get(['custom', 'serverless-offline'], this.service),
68+
get(['custom', 'serverless-offline-kinesis'], this.service)
69+
].map(omitBy(isUndefined))
70+
);
6571
}
6672

6773
getClient() {
@@ -128,23 +134,16 @@ class ServerlessOfflineKinesis {
128134
}
129135

130136
getStreamName(streamEvent) {
131-
if (typeof streamEvent === 'string' && startsWith('arn:aws:kinesis', streamEvent))
137+
if (isString(streamEvent) && startsWith('arn:aws:kinesis', streamEvent))
132138
return extractStreamNameFromARN(streamEvent);
133-
if (typeof streamEvent.arn === 'string') return extractStreamNameFromARN(streamEvent.arn);
134-
if (typeof streamEvent.streamName === 'string') return streamEvent.streamName;
139+
if (isString(streamEvent.arn)) return extractStreamNameFromARN(streamEvent.arn);
140+
if (isString(streamEvent.streamName)) return streamEvent.streamName;
135141

136142
if (streamEvent.arn['Fn::GetAtt']) {
137143
const [ResourceName] = streamEvent.arn['Fn::GetAtt'];
138144

139-
if (
140-
this.service &&
141-
this.service.resources &&
142-
this.service.resources.Resources &&
143-
this.service.resources.Resources[ResourceName] &&
144-
this.service.resources.Resources[ResourceName].Properties &&
145-
typeof this.service.resources.Resources[ResourceName].Properties.Name === 'string'
146-
)
147-
return this.service.resources.Resources[ResourceName].Properties.Name;
145+
const name = get(`resources.Resources.${ResourceName}.Properties.Name`, this.service);
146+
if (isString(name)) return name;
148147
}
149148

150149
throw new Error(
@@ -200,31 +199,35 @@ class ServerlessOfflineKinesis {
200199
offlineStartInit() {
201200
this.serverless.cli.log(`Starting Offline Kinesis.`);
202201

203-
mapValues.convert({cap: false})((_function, functionName) => {
202+
forEach(([functionName, functionConfiguration]) => {
204203
const streams = pipe(
205204
get('events'),
206205
filter(
207-
event =>
208-
!matchesProperty('stream.enabled', false)(event) &&
209-
(matchesProperty('stream.type', 'kinesis')(event) ||
210-
startsWith('arn:aws:kinesis', event.stream))
206+
overEvery([
207+
negate(matchesProperty('stream.enabled', false)),
208+
overSome([
209+
matchesProperty('stream.type', 'kinesis'),
210+
pipe(
211+
get('stream'),
212+
startsWith('arn:aws:kinesis')
213+
)
214+
])
215+
])
211216
),
212-
map(get('stream'))
213-
)(_function);
217+
map('stream')
218+
)(functionConfiguration);
214219

215220
if (!isEmpty(streams)) {
216221
printBlankLine();
217222
this.serverless.cli.log(`Kinesis for ${functionName}:`);
218-
}
219223

220-
forEach(streamEvent => {
221-
this.createKinesisReadable(functionName, streamEvent);
222-
}, streams);
224+
forEach(streamEvent => {
225+
this.createKinesisReadable(functionName, streamEvent);
226+
}, streams);
223227

224-
if (!isEmpty(streams)) {
225228
printBlankLine();
226229
}
227-
}, this.service.functions);
230+
})(toPairs(this.service.functions));
228231
}
229232

230233
offlineStartEnd() {

0 commit comments

Comments
 (0)