From e8d2da0f33c6d4179edbbfd303fcc908a935cd18 Mon Sep 17 00:00:00 2001 From: qiaozha Date: Tue, 18 Oct 2022 14:24:12 +0800 Subject: [PATCH 1/2] support-sdk-folder-in-emiiter --- packages/cadl-typescript/src/lib.ts | 3 ++- packages/cadl-typescript/src/transform/transfromRLCOptions.ts | 4 ++++ packages/rlc-common/src/interfaces.ts | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/cadl-typescript/src/lib.ts b/packages/cadl-typescript/src/lib.ts index 86bfd088cc..4a9051b83a 100644 --- a/packages/cadl-typescript/src/lib.ts +++ b/packages/cadl-typescript/src/lib.ts @@ -61,7 +61,8 @@ export const RLCOptionsSchema: JSONSchemaType = { }, nullable: true }, - azureArm: { type: "boolean", nullable: true } + azureArm: { type: "boolean", nullable: true }, + "sdk-folder": { type: "string", nullable: true } }, required: [] }; diff --git a/packages/cadl-typescript/src/transform/transfromRLCOptions.ts b/packages/cadl-typescript/src/transform/transfromRLCOptions.ts index e1076c2ac3..6d88e25796 100644 --- a/packages/cadl-typescript/src/transform/transfromRLCOptions.ts +++ b/packages/cadl-typescript/src/transform/transfromRLCOptions.ts @@ -5,6 +5,7 @@ import { Program } from "@cadl-lang/compiler"; import { getAuthentication } from "@cadl-lang/rest/http"; +import { isAbsolute } from "path"; export function transformRLCOptions(program: Program, options: RLCOptions): RLCOptions { const config = options; @@ -18,6 +19,9 @@ export function transformRLCOptions(program: Program, options: RLCOptions): RLCO config.packageDetails.scopeName = nameParts[0]?.replace("@", ""); } } + if (options["sdk-folder"] && isAbsolute(options["sdk-folder"])) { + program.compilerOptions.outputPath = options["sdk-folder"]; + } const securityInfo = processAuth(program); config.addCredentials = !securityInfo && config.addCredentials === false diff --git a/packages/rlc-common/src/interfaces.ts b/packages/rlc-common/src/interfaces.ts index c59ebfe045..b1fdd901ff 100644 --- a/packages/rlc-common/src/interfaces.ts +++ b/packages/rlc-common/src/interfaces.ts @@ -89,6 +89,7 @@ export interface RLCOptions { productDocLink?: string; serviceInfo?: ServiceInfo; azureArm?: boolean; + "sdk-folder"?: string; } export interface ServiceInfo { From af1bdb65fecb4197b07decedaaeba71a4729ed93 Mon Sep 17 00:00:00 2001 From: qiaozha Date: Tue, 18 Oct 2022 14:44:10 +0800 Subject: [PATCH 2/2] fix src path --- packages/cadl-typescript/src/transform/transform.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cadl-typescript/src/transform/transform.ts b/packages/cadl-typescript/src/transform/transform.ts index c50b0a00e7..2e98b09547 100644 --- a/packages/cadl-typescript/src/transform/transform.ts +++ b/packages/cadl-typescript/src/transform/transform.ts @@ -32,8 +32,8 @@ import { transformSchemas } from "./transformSchemas.js"; import { transformRLCOptions } from "./transfromRLCOptions.js"; export async function transformRLCModel(program: Program, emitterOptions: RLCOptions): Promise { - const srcPath = join(program.compilerOptions.outputPath ?? "", "src"); const options: RLCOptions = transformRLCOptions(program, emitterOptions); + const srcPath = join(program.compilerOptions.outputPath ?? "", "src"); const libraryName = normalizeName( options?.title ?? getServiceTitle(program), NameType.Class