@typespec/http-server-js
Version:
TypeSpec HTTP server code generator for JavaScript
40 lines • 1.33 kB
JavaScript
/**
* Attempts to import the OpenAPI 3 emitter if it is installed.
*
* @returns the OpenAPI 3 emitter module or undefined
*/
export function getOpenApi3Emitter() {
return import("@typespec/openapi3").catch(() => undefined);
}
/**
* Gets the OpenAPI 3 service record for a given service.
*
* @param program - the program in which the service occurs
* @param service - the service to check
*/
export async function getOpenApi3ServiceRecord(program, service) {
const openapi3 = await getOpenApi3Emitter();
if (!openapi3)
return undefined;
const serviceRecords = await openapi3.getOpenAPI3(program, {
"include-x-typespec-name": "never",
"omit-unreachable-types": true,
"safeint-strategy": "int64",
});
return serviceRecords.find((r) => r.service === service);
}
/**
* Determines if an OpenAPI3 document can be generated for the given service.
*
* @param program - the program in which the service occurs
* @param service - the service to check
*/
export async function tryGetOpenApi3(program, service) {
const serviceRecord = await getOpenApi3ServiceRecord(program, service);
if (!serviceRecord)
return undefined;
if (serviceRecord.versioned)
return undefined;
return serviceRecord.document;
}
//# sourceMappingURL=openapi3.js.map