This commit is contained in:
Timothee Guerin 2022-08-30 14:54:31 -07:00 коммит произвёл GitHub
Родитель eb955d2fd7
Коммит f1fad76666
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 43 добавлений и 6 удалений

Просмотреть файл

@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@cadl-lang/compiler",
"comment": "Api: `isGlobalNamespace` takes projection into account",
"type": "patch"
}
],
"packageName": "@cadl-lang/compiler"
}

Просмотреть файл

@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@cadl-lang/openapi",
"comment": "Api: Operation id resolver takes projection into account",
"type": "patch"
}
],
"packageName": "@cadl-lang/openapi"
}

Просмотреть файл

@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@cadl-lang/rest",
"comment": "Api: Route resolution take projection into account",
"type": "patch"
}
],
"packageName": "@cadl-lang/rest"
}

Просмотреть файл

@ -63,9 +63,15 @@ export function isTemplateDeclarationOrInstance(type: TemplatedType): boolean {
return node.templateParameters && node.templateParameters.length > 0;
}
/**
* Check if the given namespace is the global namespace
* @param program Program
* @param namespace Namespace
* @returns {boolean}
*/
export function isGlobalNamespace(
program: Program,
namespace: Namespace
): namespace is Namespace & { name: "" } {
return program.checker.getGlobalNamespaceType() === namespace;
): namespace is Namespace & { name: ""; namespace: undefined } {
return program.getGlobalNamespaceType() === namespace;
}

Просмотреть файл

@ -91,7 +91,7 @@ export function getServiceVersion(program: Program): string {
export function getServiceNamespace(program: Program): Namespace | undefined {
const serviceDetails = getServiceDetails(program);
return serviceDetails.namespace ?? program.checker.getGlobalNamespaceType();
return serviceDetails.namespace ?? program.getGlobalNamespaceType();
}
export function getServiceNamespaceString(program: Program): string | undefined {

Просмотреть файл

@ -1,6 +1,7 @@
import {
getFriendlyName,
getServiceNamespace,
isGlobalNamespace,
isTemplateInstance,
ModelProperty,
Operation,
@ -122,7 +123,7 @@ export function resolveOperationId(program: Program, operation: Operation) {
const namespace = operation.namespace;
if (
namespace === undefined ||
namespace === program.checker.getGlobalNamespaceType() ||
isGlobalNamespace(program, namespace) ||
namespace === getServiceNamespace(program)
) {
return operation.name;

Просмотреть файл

@ -504,7 +504,7 @@ function getExternalInterfaces(program: Program, namespace: Namespace) {
}
return interfaces
.map((interfaceFQN: string) => {
let current: Namespace | undefined = program.checker.getGlobalNamespaceType();
let current: Namespace | undefined = program.getGlobalNamespaceType();
const namespaces = interfaceFQN.split(".");
const interfaceName = namespaces.pop()!;
for (const namespaceName of namespaces) {
@ -545,7 +545,7 @@ export function reportIfNoRoutes(program: Program, routes: OperationDetails[]) {
if (routes.length === 0) {
reportDiagnostic(program, {
code: "no-routes",
target: program.checker.getGlobalNamespaceType(),
target: program.getGlobalNamespaceType(),
});
}
}