Skip to content

Commit 03912e0

Browse files
committed
Rename command to firebase init dataconnect:resolver.
1 parent 7759745 commit 03912e0

File tree

5 files changed

+43
-38
lines changed

5 files changed

+43
-38
lines changed

src/commands/init.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ let choices: {
9595
hidden: true,
9696
},
9797
{
98-
value: "dataconnect:schema",
99-
name: "Data Connect: Set up a secondary schema for your Firebase Data Connect service",
98+
value: "dataconnect:resolver",
99+
name: "Data Connect: Set up a custom resolver for your Firebase Data Connect service",
100100
checked: false,
101101
hidden: true,
102102
},

src/init/features/dataconnect/schema.spec.ts renamed to src/init/features/dataconnect/resolver.spec.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import * as fs from "fs-extra";
44
import * as yaml from "js-yaml";
55
import * as sinon from "sinon";
66

7-
import { addSchemaToDataConnectYaml, askQuestions, actuate, SchemaRequiredInfo } from "./schema";
7+
import {
8+
addSchemaToDataConnectYaml,
9+
askQuestions,
10+
actuate,
11+
ResolverRequiredInfo,
12+
} from "./resolver";
813
import { Setup } from "../..";
914
import { Config } from "../../../config";
1015
import * as load from "../../../dataconnect/load";
@@ -15,7 +20,7 @@ import * as prompt from "../../../prompt";
1520
const expect = chai.expect;
1621

1722
describe("addSchemaToDataConnectYaml", () => {
18-
let schemaRequiredInfo: SchemaRequiredInfo;
23+
let schemaRequiredInfo: ResolverRequiredInfo;
1924
let dataConnectYaml: DataConnectYaml;
2025

2126
beforeEach(() => {
@@ -156,9 +161,9 @@ describe("askQuestions", () => {
156161

157162
expect(selectStub.called).to.be.false;
158163
expect(inputStub.calledTwice).to.be.true;
159-
expect(setup.featureInfo?.dataconnectSchema?.id).to.equal("test_resolver");
160-
expect(setup.featureInfo?.dataconnectSchema?.uri).to.equal("www.test.com");
161-
expect(setup.featureInfo?.dataconnectSchema?.serviceInfo.serviceName).to.equal(
164+
expect(setup.featureInfo?.dataconnectResolver?.id).to.equal("test_resolver");
165+
expect(setup.featureInfo?.dataconnectResolver?.uri).to.equal("www.test.com");
166+
expect(setup.featureInfo?.dataconnectResolver?.serviceInfo.serviceName).to.equal(
162167
"projects/project-id/locations/us-central1/services/service-id",
163168
);
164169
});
@@ -183,9 +188,9 @@ describe("askQuestions", () => {
183188

184189
expect(selectStub.calledOnce).to.be.true;
185190
expect(inputStub.calledTwice).to.be.true;
186-
expect(setup.featureInfo?.dataconnectSchema?.id).to.equal("test_resolver");
187-
expect(setup.featureInfo?.dataconnectSchema?.uri).to.equal("www.test.com");
188-
expect(setup.featureInfo?.dataconnectSchema?.serviceInfo.serviceName).to.equal(
191+
expect(setup.featureInfo?.dataconnectResolver?.id).to.equal("test_resolver");
192+
expect(setup.featureInfo?.dataconnectResolver?.uri).to.equal("www.test.com");
193+
expect(setup.featureInfo?.dataconnectResolver?.serviceInfo.serviceName).to.equal(
189194
"projects/project-id/locations/us-central1/services/service-id2",
190195
);
191196
});
@@ -207,7 +212,7 @@ describe("actuate", () => {
207212
config: { projectDir: "/path/to/project" } as any,
208213
rcfile: {} as any,
209214
featureInfo: {
210-
dataconnectSchema: {
215+
dataconnectResolver: {
211216
id: "test_resolver",
212217
uri: "www.test.com",
213218
serviceInfo: {
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { isBillingEnabled } from "../../../gcp/cloudbilling";
1616
import { trackGA4 } from "../../../track";
1717
import { Source } from ".";
1818

19-
export interface SchemaRequiredInfo {
19+
export interface ResolverRequiredInfo {
2020
id: string;
2121
uri: string;
2222
serviceInfo: ServiceInfo;
@@ -26,7 +26,7 @@ export async function askQuestions(setup: Setup, config: Config): Promise<void>
2626
if (!experiments.isEnabled("fdcwebhooks")) {
2727
throw new Error("Unsupported command.");
2828
}
29-
const schemaInfo: SchemaRequiredInfo = {
29+
const resolverInfo: ResolverRequiredInfo = {
3030
id: "",
3131
uri: "",
3232
serviceInfo: {} as ServiceInfo,
@@ -38,7 +38,7 @@ export async function askQuestions(setup: Setup, config: Config): Promise<void>
3838
`No Firebase Data Connect workspace found. Run ${clc.bold("firebase init dataconnect")} to set up a service and main schema.`,
3939
);
4040
} else if (serviceInfos.length === 1) {
41-
schemaInfo.serviceInfo = serviceInfos[0];
41+
resolverInfo.serviceInfo = serviceInfos[0];
4242
} else {
4343
const choices: Array<{ name: string; value: ServiceInfo }> = serviceInfos.map((si) => {
4444
const serviceName = parseServiceName(si.serviceName);
@@ -47,41 +47,41 @@ export async function askQuestions(setup: Setup, config: Config): Promise<void>
4747
value: si,
4848
};
4949
});
50-
schemaInfo.serviceInfo = await select<ServiceInfo>({
51-
message: "Which service would you like to set up a secondary schema for?",
50+
resolverInfo.serviceInfo = await select<ServiceInfo>({
51+
message: "Which service would you like to set up a custom resolver for?",
5252
choices,
5353
});
5454
}
5555

56-
schemaInfo.id = await input({
57-
message: `What ID would you like to use for your secondary schema?`,
56+
resolverInfo.id = await input({
57+
message: `What ID would you like to use for your custom resolver?`,
5858
default: newUniqueId(
5959
`resolver`,
60-
schemaInfo.serviceInfo.dataConnectYaml.schemas?.map((sch) => sch.id || "") || [],
60+
resolverInfo.serviceInfo.dataConnectYaml.schemas?.map((sch) => sch.id || "") || [],
6161
),
6262
});
63-
schemaInfo.uri = await input({
64-
message: `What is the URL of your Cloud Run data source that implements your secondary schema?`,
65-
default: `https://${schemaInfo.id}-${setup.projectNumber || "PROJECT_NUMBER"}.${FDC_DEFAULT_REGION}.run.app/graphql`,
63+
resolverInfo.uri = await input({
64+
message: `What is the URL of your Cloud Run data source that implements your custom resolver?`,
65+
default: `https://${resolverInfo.id}-${setup.projectNumber || "PROJECT_NUMBER"}.${FDC_DEFAULT_REGION}.run.app/graphql`,
6666
});
6767

6868
setup.featureInfo = setup.featureInfo || {};
69-
setup.featureInfo.dataconnectSchema = schemaInfo;
69+
setup.featureInfo.dataconnectResolver = resolverInfo;
7070
}
7171

7272
export async function actuate(setup: Setup, config: Config) {
7373
if (!experiments.isEnabled("fdcwebhooks")) {
7474
return;
7575
}
76-
const schemaInfo = setup.featureInfo?.dataconnectSchema;
77-
if (!schemaInfo) {
78-
throw new Error("Data Connect schema feature SchemaRequiredInfo not provided");
76+
const resolverInfo = setup.featureInfo?.dataconnectResolver;
77+
if (!resolverInfo) {
78+
throw new Error("Data Connect resolver feature ResolverRequiredInfo not provided");
7979
}
8080
const startTime = Date.now();
8181
try {
82-
actuateWithInfo(config, schemaInfo);
82+
actuateWithInfo(config, resolverInfo);
8383
} finally {
84-
const source: Source = "init_schema";
84+
const source: Source = "init_resolver";
8585
void trackGA4(
8686
"dataconnect_init",
8787
{
@@ -98,7 +98,7 @@ export async function actuate(setup: Setup, config: Config) {
9898
}
9999
}
100100

101-
function actuateWithInfo(config: Config, info: SchemaRequiredInfo) {
101+
function actuateWithInfo(config: Config, info: ResolverRequiredInfo) {
102102
const dataConnectYaml = JSON.parse(
103103
JSON.stringify(info.serviceInfo?.dataConnectYaml),
104104
) as DataConnectYaml;
@@ -118,7 +118,7 @@ function actuateWithInfo(config: Config, info: SchemaRequiredInfo) {
118118
/** Add secondary schema configuration to dataconnect.yaml in place */
119119
export function addSchemaToDataConnectYaml(
120120
dataConnectYaml: DataConnectYaml,
121-
info: SchemaRequiredInfo,
121+
info: ResolverRequiredInfo,
122122
): void {
123123
const secondarySchema: SchemaYaml = {
124124
source: `./schema_${info.id}`,

src/init/features/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ export {
3838
actuate as dataconnectSdkActuate,
3939
} from "./dataconnect/sdk";
4040
export {
41-
askQuestions as dataconnectSchemaAskQuestions,
42-
SchemaRequiredInfo as DataconnectSchemaInfo,
43-
actuate as dataconnectSchemaActuate,
44-
} from "./dataconnect/schema";
41+
askQuestions as dataconnectResolverAskQuestions,
42+
ResolverRequiredInfo as DataconnectResolverInfo,
43+
actuate as dataconnectResolverActuate,
44+
} from "./dataconnect/resolver";
4545
export { doSetup as apphosting } from "./apphosting";
4646
export { doSetup as genkit } from "./genkit";
4747
export {

src/init/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export interface SetupInfo {
3737
firestore?: features.FirestoreInfo;
3838
dataconnect?: features.DataconnectInfo;
3939
dataconnectSdk?: features.DataconnectSdkInfo;
40-
dataconnectSchema?: features.DataconnectSchemaInfo;
40+
dataconnectResolver?: features.DataconnectResolverInfo;
4141
dataconnectSource?: features.DataconnectSource;
4242
storage?: features.StorageInfo;
4343
apptesting?: features.ApptestingInfo;
@@ -83,9 +83,9 @@ const featuresList: Feature[] = [
8383
actuate: features.dataconnectSdkActuate,
8484
},
8585
{
86-
name: "dataconnect:schema",
87-
askQuestions: features.dataconnectSchemaAskQuestions,
88-
actuate: features.dataconnectSchemaActuate,
86+
name: "dataconnect:resolver",
87+
askQuestions: features.dataconnectResolverAskQuestions,
88+
actuate: features.dataconnectResolverActuate,
8989
},
9090
{ name: "functions", doSetup: features.functions },
9191
{

0 commit comments

Comments
 (0)