From 1dc58c5a6528df1a6978a59cbbe1a2eb0c9714ac Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 20 Aug 2020 18:58:11 +0300 Subject: [PATCH] refactor: unify reduction of refs to imports & interfaces --- .../packages/schematics/src/utils/model.ts | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/model.ts b/npm/ng-packs/packages/schematics/src/utils/model.ts index 7ba44465c3..6373785779 100644 --- a/npm/ng-packs/packages/schematics/src/utils/model.ts +++ b/npm/ng-packs/packages/schematics/src/utils/model.ts @@ -31,33 +31,27 @@ export function createImportRefsToModelMapper({ solution, types }: ModelGenerato const imports: Import[] = []; const reduceImportRefToImport = createImportRefToImportReducer(namespace, _import => { - if (_import.path === model.path) { - _import.refs.forEach(ref => { - if (model.interfaces.some(i => i.ref === ref)) return; + if (_import.path !== model.path) return true; - const interfaceIndirect = mapImportRefToInterface(ref); - if (interfaceIndirect) model.interfaces.push(interfaceIndirect); - reduceImportRefToImport(imports, ref); - }); - - return false; - } - - return true; + _import.refs.reduce(reduceImportRefsToImportsAndInterfaces, imports); + return false; }); importRefs - .reduce((accumulatedImports, ref) => { - const interfaceDirect = mapImportRefToInterface(ref); - if (interfaceDirect && !types[ref].isEnum) model.interfaces.push(interfaceDirect); - - return reduceImportRefToImport(accumulatedImports, ref); - }, imports) + .reduce(reduceImportRefsToImportsAndInterfaces, imports) .forEach(_import => model.imports.push(_import)); sortInterfaces(model.interfaces); return model; + + function reduceImportRefsToImportsAndInterfaces(accumulatedImports: Import[], ref: string) { + if (model.interfaces.some(i => i.ref === ref)) return accumulatedImports; + + const _interface = mapImportRefToInterface(ref); + if (_interface && !types[ref].isEnum) model.interfaces.push(_interface); + return reduceImportRefToImport(accumulatedImports, ref); + } }; }