Skip to content

Commit

Permalink
use flatMap and reduce to simplify logic
Browse files Browse the repository at this point in the history
  • Loading branch information
madirey committed Jul 3, 2020
1 parent 133ea27 commit 9e43633
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
wrappedExceptionList,
TranslatedEntryNestedEntry,
translatedEntryNestedEntry,
translatedEntry,
translatedEntry as translatedEntryType,
TranslatedEntryMatcher,
translatedEntryMatchMatcher,
translatedEntryMatchAnyMatcher,
Expand Down Expand Up @@ -92,24 +92,23 @@ export function translateToEndpointExceptions(
): TranslatedEntry[] {
if (schemaVersion === '1.0.0') {
return exc.data
.map(
(list): Array<TranslatedEntry | undefined> => {
return list.entries.map((entry: Entry | EntryNested): TranslatedEntry | undefined => {
return translateEntry(schemaVersion, entry);
});
.flatMap((list) => {
return list.entries;
})
.reduce((entries: TranslatedEntry[], entry) => {
const translatedEntry = translateEntry(schemaVersion, entry);
if (translatedEntry !== undefined && translatedEntryType.is(translatedEntry)) {
entries.push(translatedEntry);
}
)
.reduce((acc, it) => [...acc, ...it], [])
.filter((entry: TranslatedEntry | undefined): entry is TranslatedEntry => {
return entry !== undefined && translatedEntry.is(entry);
});
return entries;
}, []);
} else {
throw new Error('unsupported schemaVersion');
}
}

function getMatcherFunction(field: string, any?: boolean): TranslatedEntryMatcher {
return any
function getMatcherFunction(field: string, matchAny?: boolean): TranslatedEntryMatcher {
return matchAny
? field.endsWith('.text')
? 'exact_caseless_any'
: 'exact_cased_any'
Expand All @@ -128,15 +127,16 @@ function translateEntry(
): TranslatedEntry | undefined {
switch (entry.type) {
case 'nested': {
const nestedEntries = entry.entries
.map((nestedEntry): TranslatedEntry | undefined => {
return translateEntry(schemaVersion, nestedEntry);
})
.filter(
(nestedEntry: TranslatedEntry | undefined): nestedEntry is TranslatedEntryNestedEntry => {
return nestedEntry !== undefined && translatedEntryNestedEntry.is(nestedEntry);
const nestedEntries = entry.entries.reduce(
(entries: TranslatedEntryNestedEntry[], nestedEntry) => {
const translatedEntry = translateEntry(schemaVersion, nestedEntry);
if (nestedEntry !== undefined && translatedEntryNestedEntry.is(translatedEntry)) {
entries.push(translatedEntry);
}
);
return entries;
},
[]
);
return {
entries: nestedEntries,
field: entry.field,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,17 +180,15 @@ export class ManifestManager {
this.logger.info(`Dispatching new manifest with diffs: ${showDiffs(wrappedManifest.diffs)}`);

let paging = true;
let page = 1;
let success = true;

while (paging) {
const { items, total, page } = await this.packageConfigService.list(
this.savedObjectsClient,
{
page: 1,
perPage: 20,
kuery: 'ingest-package-configs.package.name:endpoint',
}
);
const { items, total } = await this.packageConfigService.list(this.savedObjectsClient, {
page,
perPage: 20,
kuery: 'ingest-package-configs.package.name:endpoint',
});

for (const packageConfig of items) {
const { id, revision, updated_at, updated_by, ...newPackageConfig } = packageConfig;
Expand Down Expand Up @@ -222,6 +220,7 @@ export class ManifestManager {
}

paging = page * items.length < total;
page++;
}

return success ? wrappedManifest : null;
Expand Down

0 comments on commit 9e43633

Please sign in to comment.