diff --git a/CHANGELOG.md b/CHANGELOG.md index 95e7d1dd8f3..445c8434883 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,4 @@ - Automatically detect app platform during `init dataconnect:sdk`. - Support `sharp` ^0.33.x for web frameworks. (#7517) - Update Firebase Data Connect toolkit to v1.3.4, which supports `offset`, cascade delete support, always all foreign fields and multiple generated SDK options. (#7545) +- Update Data Connect SDK Options Default to avoid duplicate output path. (#7545) diff --git a/src/init/features/dataconnect/sdk.ts b/src/init/features/dataconnect/sdk.ts index 36d02f46b09..362a8422e7e 100644 --- a/src/init/features/dataconnect/sdk.ts +++ b/src/init/features/dataconnect/sdk.ts @@ -21,7 +21,7 @@ import { } from "../../../dataconnect/types"; import { DataConnectEmulator } from "../../../emulator/dataconnectEmulator"; import { FirebaseError } from "../../../error"; -import { camelCase, snakeCase } from "lodash"; +import { camelCase, snakeCase, upperFirst } from "lodash"; import { logSuccess, logBullet } from "../../../utils"; export type SDKInfo = { @@ -108,12 +108,10 @@ async function askQuestions(setup: Setup, config: Config): Promise { if (targetPlatform === Platform.IOS) { const outputDir = newConnectorYaml.generate.swiftSdk?.outputDir || - path.relative( - connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}`), - ); + path.relative(connectorInfo.directory, path.join(appDir, `generated/swift`)); const pkg = - newConnectorYaml.generate.swiftSdk?.package ?? camelCase(newConnectorYaml.connectorId); + newConnectorYaml.generate.swiftSdk?.package ?? + upperFirst(camelCase(newConnectorYaml.connectorId)); const swiftSdk = { outputDir, package: pkg }; newConnectorYaml.generate.swiftSdk = swiftSdk; displayIOSWarning = true; @@ -124,7 +122,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { newConnectorYaml.generate.javascriptSdk?.outputDir || path.relative( connectorInfo.directory, - path.join(appDir, `generated/${newConnectorYaml.connectorId}`), + path.join(appDir, `generated/javascript/${newConnectorYaml.connectorId}`), ); const pkg = newConnectorYaml.generate.javascriptSdk?.package ?? @@ -150,7 +148,7 @@ async function askQuestions(setup: Setup, config: Config): Promise { // app/src/main/kotlin and app/src/main/java are conventional for Android, // but not required or enforced. If one of them is present (preferring the // "kotlin" directory), use it. Otherwise, fall back to the app directory. - let baseDir = path.join(appDir, "generated"); + let baseDir = path.join(appDir, `generated/kotlin`); for (const candidateSubdir of ["app/src/main/java", "app/src/main/kotlin"]) { const candidateDir = path.join(appDir, candidateSubdir); if (fs.existsSync(candidateDir)) {