From fe3aa265eb2953ed181b1695d1f5289cc8be85d4 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:33:39 +0300 Subject: [PATCH] refactor: enable creating rule from proxy config writer --- .../packages/schematics/src/utils/source.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index f6a9857866..3652836ed7 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -85,7 +85,7 @@ export function createProxyConfigReader(targetPath: string) { export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) { const createProxyConfigJson = createProxyConfigJsonCreator(apiDefinition); const readPreviousConfig = createProxyConfigReader(targetPath); - const writeNewConfig = createProxyConfigWriter(targetPath); + const createProxyConfigWriter = createProxyConfigWriterCreator(targetPath); return (tree: Tree) => { const generated: string[] = []; @@ -99,12 +99,16 @@ export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: } catch (_) {} } - writeNewConfig(tree, op, createProxyConfigJson(generated)); + const json = createProxyConfigJson(generated); + const writeProxyConfig = createProxyConfigWriter(op, json); + writeProxyConfig(tree); + + return tree; }; } -export function createProxyConfigWriter(targetPath: string) { - return (tree: Tree, op: WriteOp, data: string) => { +export function createProxyConfigWriterCreator(targetPath: string) { + return (op: WriteOp, data: string) => (tree: Tree) => { try { tree[op](targetPath, data); return tree; @@ -114,6 +118,10 @@ export function createProxyConfigWriter(targetPath: string) { }; } -function createProxyConfigJsonCreator(apiDefinition: ApiDefinition) { - return (generated: string[]) => JSON.stringify({ generated, ...apiDefinition }, null, 2); +export function createProxyConfigJsonCreator(apiDefinition: ApiDefinition) { + return (generated: string[]) => generateProxyConfigJson({ generated, ...apiDefinition }); +} + +export function generateProxyConfigJson(proxyConfig: ProxyConfig) { + return JSON.stringify(proxyConfig, null, 2); }