refactor: replace chainAndMerge with mergeAndAllowDelete

pull/5246/head
Arman Ozak 5 years ago
parent cb2ae7a728
commit 61ad5bee59

@ -3,13 +3,13 @@ import { chain, SchematicContext, Tree } from '@angular-devkit/schematics';
import { GenerateProxySchema } from '../../models'; import { GenerateProxySchema } from '../../models';
import { import {
buildDefaultPath, buildDefaultPath,
chainAndMerge,
createApiDefinitionGetter, createApiDefinitionGetter,
createApisGenerator, createApisGenerator,
createProxyClearer, createProxyClearer,
createProxyConfigReader, createProxyConfigReader,
createProxyConfigSaver, createProxyConfigSaver,
createProxyWarningSaver, createProxyWarningSaver,
mergeAndAllowDelete,
removeDefaultPlaceholders, removeDefaultPlaceholders,
resolveProject, resolveProject,
} from '../../utils'; } from '../../utils';
@ -45,7 +45,12 @@ export default function(schema: GenerateProxySchema) {
const generateApis = createApisGenerator(schema, generated); const generateApis = createApisGenerator(schema, generated);
return chainAndMerge([clearProxy, saveProxyConfig, saveProxyWarning, generateApis])(host); return chain([
mergeAndAllowDelete(host, clearProxy),
saveProxyConfig,
saveProxyWarning,
generateApis,
]);
}, },
]); ]);
} }

@ -1,13 +1,13 @@
import { SchematicContext, Tree } from '@angular-devkit/schematics'; import { chain, SchematicContext, Tree } from '@angular-devkit/schematics';
import { GenerateProxySchema } from '../../models'; import { GenerateProxySchema } from '../../models';
import { import {
buildDefaultPath, buildDefaultPath,
chainAndMerge,
createApiDefinitionGetter, createApiDefinitionGetter,
createApisGenerator, createApisGenerator,
createProxyClearer, createProxyClearer,
createProxyConfigReader, createProxyConfigReader,
createProxyConfigSaver, createProxyConfigSaver,
mergeAndAllowDelete,
removeDefaultPlaceholders, removeDefaultPlaceholders,
resolveProject, resolveProject,
} from '../../utils'; } from '../../utils';
@ -32,6 +32,6 @@ export default function(schema: GenerateProxySchema) {
const generateApis = createApisGenerator(schema, generated); const generateApis = createApisGenerator(schema, generated);
return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); return chain([mergeAndAllowDelete(host, clearProxy), saveProxyConfig, generateApis]);
}; };
} }

@ -1,14 +1,14 @@
import { strings } from '@angular-devkit/core'; import { strings } from '@angular-devkit/core';
import { SchematicContext, Tree } from '@angular-devkit/schematics'; import { chain, SchematicContext, Tree } from '@angular-devkit/schematics';
import { GenerateProxySchema } from '../../models'; import { GenerateProxySchema } from '../../models';
import { import {
buildDefaultPath, buildDefaultPath,
chainAndMerge,
createApiDefinitionGetter, createApiDefinitionGetter,
createApisGenerator, createApisGenerator,
createProxyClearer, createProxyClearer,
createProxyConfigReader, createProxyConfigReader,
createProxyConfigSaver, createProxyConfigSaver,
mergeAndAllowDelete,
removeDefaultPlaceholders, removeDefaultPlaceholders,
resolveProject, resolveProject,
} from '../../utils'; } from '../../utils';
@ -38,6 +38,6 @@ export default function(schema: GenerateProxySchema) {
const generateApis = createApisGenerator(schema, generated); const generateApis = createApisGenerator(schema, generated);
return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); return chain([mergeAndAllowDelete(host, clearProxy), saveProxyConfig, generateApis]);
}; };
} }

@ -1,6 +1,6 @@
import { import {
apply, apply,
chain, callRule,
forEach, forEach,
MergeStrategy, MergeStrategy,
mergeWith, mergeWith,
@ -18,12 +18,11 @@ export function applyWithOverwrite(source: Source, rules: Rule[]): Rule {
}; };
} }
export function chainAndMerge(rules: Rule[]) { export function mergeAndAllowDelete(host: Tree, rule: Rule) {
return (host: Tree) => async (tree: Tree, context: SchematicContext) => return async (tree: Tree, context: SchematicContext) => {
host.merge( const nextTree = await callRule(rule, tree, context).toPromise();
(await (chain(rules)(tree, context) as any).toPromise()) as Tree, host.merge(nextTree, MergeStrategy.AllowDeleteConflict);
MergeStrategy.AllowDeleteConflict, };
);
} }
export function overwriteFileIfExists(tree: Tree): Rule { export function overwriteFileIfExists(tree: Tree): Rule {

Loading…
Cancel
Save