Skip to content
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
14 changes: 6 additions & 8 deletions src/init/features/dataconnect/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -108,12 +108,10 @@ async function askQuestions(setup: Setup, config: Config): Promise<SDKInfo> {
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;
Expand All @@ -124,7 +122,7 @@ async function askQuestions(setup: Setup, config: Config): Promise<SDKInfo> {
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 ??
Expand All @@ -150,7 +148,7 @@ async function askQuestions(setup: Setup, config: Config): Promise<SDKInfo> {
// 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)) {
Expand Down