Skip to content

Commit

Permalink
[v6] Use named imports in Parameters generated file (#670)
Browse files Browse the repository at this point in the history
  • Loading branch information
joheredi authored Jun 18, 2020
1 parent acb8c55 commit 12ae094
Show file tree
Hide file tree
Showing 54 changed files with 2,340 additions and 1,799 deletions.
51 changes: 39 additions & 12 deletions src/generators/parametersGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,18 @@ export function generateParameters(
{ overwrite: true }
);

parametersFile.addImportDeclaration({
namespaceImport: "coreHttp",
moduleSpecifier: "@azure/core-http"
});
const importedCoreHttp = getCoreHttpImports(clientDetails);
if (importedCoreHttp.length) {
parametersFile.addImportDeclaration({
namedImports: importedCoreHttp,
moduleSpecifier: "@azure/core-http"
});
}

if (clientDetails.mappers.length) {
const importedMappers = getImportedMappers(clientDetails);
if (importedMappers.length) {
parametersFile.addImportDeclaration({
namespaceImport: "Mappers",
namedImports: importedMappers,
moduleSpecifier: "../models/mappers"
});
}
Expand Down Expand Up @@ -83,8 +87,7 @@ function writeParameterCollectionFormat(
) {
return writer.conditionalWrite(
!!collectionFormat,
() =>
`collectionFormat: coreHttp.QueryCollectionFormat.${collectionFormat},`
() => `collectionFormat: QueryCollectionFormat.${collectionFormat},`
);
}

Expand All @@ -109,7 +112,7 @@ function writeParameterMapper(
) {
writer.write("mapper: ");
if (isString(mapper)) {
writer.write(`Mappers.${mapper}`);
writer.write(`${mapper}Mapper`);
} else {
writeMapper(writer, mapper);
}
Expand All @@ -121,10 +124,34 @@ function getParameterType(location: ParameterLocation) {
switch (location) {
case ParameterLocation.Path:
case ParameterLocation.Uri:
return "coreHttp.OperationURLParameter";
return "OperationURLParameter";
case ParameterLocation.Query:
return "coreHttp.OperationQueryParameter";
return "OperationQueryParameter";
default:
return "coreHttp.OperationParameter";
return "OperationParameter";
}
}

function getCoreHttpImports(clientDetails: ClientDetails) {
const parameterTypes: string[] = clientDetails.parameters
.filter(p => !p.isSynthetic)
.map(p => getParameterType(p.location));

if (
clientDetails.parameters
.filter(p => !p.isSynthetic)
.some(p => p.collectionFormat)
) {
parameterTypes.push("QueryCollectionFormat");
}

return [...new Set<string>(parameterTypes)];
}

function getImportedMappers(clientDetails: ClientDetails) {
const mappers = clientDetails.parameters
.filter(p => !p.isSynthetic && isString(p.mapper))
.map(p => `${p.mapper} as ${p.mapper}Mapper`);

return [...new Set<string>(mappers)];
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,17 @@
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/

import * as coreHttp from "@azure/core-http";
import * as Mappers from "../models/mappers";
import { OperationParameter, OperationURLParameter } from "@azure/core-http";
import {
PetAPTrue as PetAPTrueMapper,
CatAPTrue as CatAPTrueMapper,
PetAPObject as PetAPObjectMapper,
PetAPString as PetAPStringMapper,
PetAPInProperties as PetAPInPropertiesMapper,
PetAPInPropertiesWithAPString as PetAPInPropertiesWithAPStringMapper
} from "../models/mappers";

export const contentType: coreHttp.OperationParameter = {
export const contentType: OperationParameter = {
parameterPath: ["options", "contentType"],
mapper: {
defaultValue: "application/json",
Expand All @@ -21,12 +28,12 @@ export const contentType: coreHttp.OperationParameter = {
}
};

export const createParameters: coreHttp.OperationParameter = {
export const createParameters: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.PetAPTrue
mapper: PetAPTrueMapper
};

export const $host: coreHttp.OperationURLParameter = {
export const $host: OperationURLParameter = {
parameterPath: "$host",
mapper: {
serializedName: "$host",
Expand All @@ -38,27 +45,27 @@ export const $host: coreHttp.OperationURLParameter = {
skipEncoding: true
};

export const createParameters1: coreHttp.OperationParameter = {
export const createParameters1: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.CatAPTrue
mapper: CatAPTrueMapper
};

export const createParameters2: coreHttp.OperationParameter = {
export const createParameters2: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.PetAPObject
mapper: PetAPObjectMapper
};

export const createParameters3: coreHttp.OperationParameter = {
export const createParameters3: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.PetAPString
mapper: PetAPStringMapper
};

export const createParameters4: coreHttp.OperationParameter = {
export const createParameters4: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.PetAPInProperties
mapper: PetAPInPropertiesMapper
};

export const createParameters5: coreHttp.OperationParameter = {
export const createParameters5: OperationParameter = {
parameterPath: "createParameters",
mapper: Mappers.PetAPInPropertiesWithAPString
mapper: PetAPInPropertiesWithAPStringMapper
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/

import * as coreHttp from "@azure/core-http";
import * as Mappers from "../models/mappers";
import {
OperationParameter,
OperationURLParameter,
OperationQueryParameter
} from "@azure/core-http";

export const contentType: coreHttp.OperationParameter = {
export const contentType: OperationParameter = {
parameterPath: ["options", "contentType"],
mapper: {
defaultValue: "application/json",
Expand All @@ -21,7 +24,7 @@ export const contentType: coreHttp.OperationParameter = {
}
};

export const body: coreHttp.OperationParameter = {
export const body: OperationParameter = {
parameterPath: ["parameterGroupingPostRequiredParameters", "body"],
mapper: {
serializedName: "body",
Expand All @@ -32,7 +35,7 @@ export const body: coreHttp.OperationParameter = {
}
};

export const $host: coreHttp.OperationURLParameter = {
export const $host: OperationURLParameter = {
parameterPath: "$host",
mapper: {
serializedName: "$host",
Expand All @@ -44,7 +47,7 @@ export const $host: coreHttp.OperationURLParameter = {
skipEncoding: true
};

export const customHeader: coreHttp.OperationParameter = {
export const customHeader: OperationParameter = {
parameterPath: ["parameterGroupingPostRequiredParameters", "customHeader"],
mapper: {
serializedName: "customHeader",
Expand All @@ -54,7 +57,7 @@ export const customHeader: coreHttp.OperationParameter = {
}
};

export const query: coreHttp.OperationQueryParameter = {
export const query: OperationQueryParameter = {
parameterPath: ["parameterGroupingPostRequiredParameters", "query"],
mapper: {
defaultValue: 30,
Expand All @@ -65,7 +68,7 @@ export const query: coreHttp.OperationQueryParameter = {
}
};

export const path: coreHttp.OperationURLParameter = {
export const path: OperationURLParameter = {
parameterPath: ["parameterGroupingPostRequiredParameters", "path"],
mapper: {
serializedName: "path",
Expand All @@ -76,7 +79,7 @@ export const path: coreHttp.OperationURLParameter = {
}
};

export const customHeader1: coreHttp.OperationParameter = {
export const customHeader1: OperationParameter = {
parameterPath: ["parameterGroupingPostOptionalParameters", "customHeader"],
mapper: {
serializedName: "customHeader",
Expand All @@ -86,7 +89,7 @@ export const customHeader1: coreHttp.OperationParameter = {
}
};

export const query1: coreHttp.OperationQueryParameter = {
export const query1: OperationQueryParameter = {
parameterPath: ["parameterGroupingPostOptionalParameters", "query"],
mapper: {
defaultValue: 30,
Expand All @@ -97,7 +100,7 @@ export const query1: coreHttp.OperationQueryParameter = {
}
};

export const headerOne: coreHttp.OperationParameter = {
export const headerOne: OperationParameter = {
parameterPath: ["firstParameterGroup", "headerOne"],
mapper: {
serializedName: "header-one",
Expand All @@ -107,7 +110,7 @@ export const headerOne: coreHttp.OperationParameter = {
}
};

export const queryOne: coreHttp.OperationQueryParameter = {
export const queryOne: OperationQueryParameter = {
parameterPath: ["firstParameterGroup", "queryOne"],
mapper: {
defaultValue: 30,
Expand All @@ -118,7 +121,7 @@ export const queryOne: coreHttp.OperationQueryParameter = {
}
};

export const headerTwo: coreHttp.OperationParameter = {
export const headerTwo: OperationParameter = {
parameterPath: [
"parameterGroupingPostMultiParamGroupsSecondParamGroup",
"headerTwo"
Expand All @@ -131,7 +134,7 @@ export const headerTwo: coreHttp.OperationParameter = {
}
};

export const queryTwo: coreHttp.OperationQueryParameter = {
export const queryTwo: OperationQueryParameter = {
parameterPath: [
"parameterGroupingPostMultiParamGroupsSecondParamGroup",
"queryTwo"
Expand Down
10 changes: 6 additions & 4 deletions test/integration/generated/azureReport/src/models/parameters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/

import * as coreHttp from "@azure/core-http";
import * as Mappers from "../models/mappers";
import {
OperationURLParameter,
OperationQueryParameter
} from "@azure/core-http";

export const $host: coreHttp.OperationURLParameter = {
export const $host: OperationURLParameter = {
parameterPath: "$host",
mapper: {
serializedName: "$host",
Expand All @@ -21,7 +23,7 @@ export const $host: coreHttp.OperationURLParameter = {
skipEncoding: true
};

export const qualifier: coreHttp.OperationQueryParameter = {
export const qualifier: OperationQueryParameter = {
parameterPath: ["options", "qualifier"],
mapper: {
serializedName: "qualifier",
Expand Down
Loading

0 comments on commit 12ae094

Please sign in to comment.