|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
import { SchematicsException, Tree } from '@angular-devkit/schematics';
|
|
|
|
|
import got from 'got';
|
|
|
|
|
import { Exception } from '../enums';
|
|
|
|
|
import { ApiDefinition, Project } from '../models';
|
|
|
|
|
import { ApiDefinition, Project, ProxyConfig } from '../models';
|
|
|
|
|
import { getAssignedPropertyFromObjectliteral } from './ast';
|
|
|
|
|
import { interpolate } from './common';
|
|
|
|
|
import { readEnvironment } from './workspace';
|
|
|
|
@ -71,23 +71,28 @@ export function getSourceUrl(tree: Tree, project: Project, moduleName: string) {
|
|
|
|
|
return assignment.replace(/[`'"]/g, '');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function createApiDefinitionReader(targetPath: string) {
|
|
|
|
|
export function createProxyConfigReader(targetPath: string) {
|
|
|
|
|
return (tree: Tree) => {
|
|
|
|
|
try {
|
|
|
|
|
const buffer = tree.read(targetPath);
|
|
|
|
|
const apiDefinition: ApiDefinition = JSON.parse(buffer!.toString());
|
|
|
|
|
return apiDefinition;
|
|
|
|
|
return JSON.parse(buffer!.toString()) as ProxyConfig;
|
|
|
|
|
} catch (_) {}
|
|
|
|
|
|
|
|
|
|
throw new SchematicsException(interpolate(Exception.NoApiDefinition, targetPath));
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function createApiDefinitionSaver(apiDefinition: ApiDefinition, targetPath: string) {
|
|
|
|
|
export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) {
|
|
|
|
|
const readPreviousConfig = createProxyConfigReader(targetPath);
|
|
|
|
|
|
|
|
|
|
return (tree: Tree) => {
|
|
|
|
|
tree[tree.exists(targetPath) ? 'overwrite' : 'create'](
|
|
|
|
|
targetPath,
|
|
|
|
|
JSON.stringify(apiDefinition, null, 2),
|
|
|
|
|
);
|
|
|
|
|
if (tree.exists(targetPath)) {
|
|
|
|
|
const generated: string[] = [];
|
|
|
|
|
try {
|
|
|
|
|
readPreviousConfig(tree).generated.forEach(m => generated.push(m));
|
|
|
|
|
} catch (_) {}
|
|
|
|
|
|
|
|
|
|
tree.overwrite(targetPath, JSON.stringify({ generated, ...apiDefinition }, null, 2));
|
|
|
|
|
} else tree.create(targetPath, JSON.stringify(apiDefinition, null, 2));
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|