diff --git a/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts b/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts index cbc2924c78..e0b167dc2a 100644 --- a/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts +++ b/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.d.ts @@ -5,5 +5,6 @@ export interface GenerateProxyGeneratorSchema { target: string; url: string; serviceType: string; + resourceApi: boolean; entryPoint: string; } diff --git a/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json b/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json index 51f3916848..b9263f58b7 100644 --- a/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json +++ b/npm/ng-packs/packages/generators/src/generators/generate-proxy/schema.json @@ -80,6 +80,11 @@ ] } }, + "resourceApi": { + "description": "Generate Resource API helpers for read endpoints", + "type": "boolean", + "default": false + }, "entryPoint": { "description": "Target Angular project to place the generated code", "type": "string", diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts index 3c621ddb87..7952ee0cd8 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts @@ -11,6 +11,7 @@ import { createProxyWarningSaver, mergeAndAllowDelete, removeDefaultPlaceholders, + resolveProxyResourceApi, resolveProject, } from '../../utils'; @@ -24,17 +25,21 @@ export default function (schema: GenerateProxySchema) { const targetPath = buildTargetPath(target.definition, params.entryPoint); const readProxyConfig = createProxyConfigReader(targetPath); let generated: string[] = []; + let previousResourceApi = false; try { - generated = readProxyConfig(host).generated; + const previousConfig = readProxyConfig(host); + generated = previousConfig.generated; + previousResourceApi = resolveProxyResourceApi(params, previousConfig); const index = generated.findIndex(m => m === moduleName); if (index < 0) generated.push(moduleName); } catch (_) { generated.push(moduleName); + previousResourceApi = resolveProxyResourceApi(params); } const getApiDefinition = createApiDefinitionGetter(params); - const data = { generated, ...(await getApiDefinition(host)) }; + const data = { generated, resourceApi: previousResourceApi, ...(await getApiDefinition(host)) }; data.generated = []; const clearProxy = createProxyClearer(targetPath); @@ -43,10 +48,12 @@ export default function (schema: GenerateProxySchema) { const saveProxyWarning = createProxyWarningSaver(targetPath); - const generateApis = createApisGenerator(schema, generated); + const generateApis = createApisGenerator({ ...schema, resourceApi: previousResourceApi }, generated); const generateIndex = createProxyIndexGenerator(targetPath); + console.log('HELLO'); + return chain([ mergeAndAllowDelete(host, clearProxy), saveProxyConfig, diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json index 8c3ca7fe53..7746641315 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json @@ -80,6 +80,11 @@ ] } }, + "resourceApi": { + "description": "Generate Resource API helpers for read endpoints", + "type": "boolean", + "default": false + }, "entryPoint": { "description": "Target Angular project to place the generated code", "type": "string", diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts index dcea70bb39..ac4b50ae4c 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts @@ -10,6 +10,7 @@ import { createProxyIndexGenerator, mergeAndAllowDelete, removeDefaultPlaceholders, + resolveProxyResourceApi, resolveProject, } from '../../utils'; @@ -21,17 +22,19 @@ export default function (schema: GenerateProxySchema) { const targetPath = buildTargetPath(target.definition, params.entryPoint); const readProxyConfig = createProxyConfigReader(targetPath); - const { generated } = readProxyConfig(host); + const previousConfig = readProxyConfig(host); + const { generated } = previousConfig; + const resourceApi = resolveProxyResourceApi(params, previousConfig); const getApiDefinition = createApiDefinitionGetter(params); - const data = { generated, ...(await getApiDefinition(host)) }; + const data = { generated, resourceApi, ...(await getApiDefinition(host)) }; data.generated = []; const clearProxy = createProxyClearer(targetPath); const saveProxyConfig = createProxyConfigSaver(data, targetPath); - const generateApis = createApisGenerator(schema, generated); + const generateApis = createApisGenerator({ ...schema, resourceApi }, generated); const generateIndex = createProxyIndexGenerator(targetPath); diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json index c5fd51f9b4..68a7958eb7 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json @@ -49,6 +49,11 @@ }, "x-prompt": "Please enter URL for api definition (default: API Name's url in environment file)" }, + "resourceApi": { + "description": "Generate Resource API helpers for read endpoints", + "type": "boolean", + "default": false + }, "entryPoint": { "description": "Target Angular project to place the generated code", "type": "string", diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts index 23864b730d..24acb351c0 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts @@ -10,6 +10,7 @@ import { createProxyIndexGenerator, mergeAndAllowDelete, removeDefaultPlaceholders, + resolveProxyResourceApi, resolveProject, } from '../../utils'; @@ -23,21 +24,23 @@ export default function (schema: GenerateProxySchema) { const targetPath = buildTargetPath(target.definition, params.entryPoint); const readProxyConfig = createProxyConfigReader(targetPath); - const { generated } = readProxyConfig(host); + const previousConfig = readProxyConfig(host); + const { generated } = previousConfig; + const resourceApi = resolveProxyResourceApi(params, previousConfig); const index = generated.findIndex(m => m === moduleName); if (index < 0) return host; generated.splice(index, 1); const getApiDefinition = createApiDefinitionGetter(params); - const data = { generated, ...(await getApiDefinition(host)) }; + const data = { generated, resourceApi, ...(await getApiDefinition(host)) }; data.generated = []; const clearProxy = createProxyClearer(targetPath); const saveProxyConfig = createProxyConfigSaver(data, targetPath); - const generateApis = createApisGenerator(schema, generated); + const generateApis = createApisGenerator({ ...schema, resourceApi }, generated); const generateIndex = createProxyIndexGenerator(targetPath); diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json index 253ac0b0c3..f0ed7c7b95 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json @@ -49,6 +49,11 @@ }, "x-prompt": "Please enter URL for API definition (default: API Name's url in environment file)" }, + "resourceApi": { + "description": "Generate Resource API helpers for read endpoints", + "type": "boolean", + "default": false + }, "entryPoint": { "description": "Target Angular project to place the generated code", "type": "string",