slash-e/frontend/web/src/grpcweb.ts
2024-05-20 20:41:34 +08:00

34 lines
1.6 KiB
TypeScript

import { createChannel, createClientFactory, FetchTransport } from "nice-grpc-web";
import { AuthServiceDefinition } from "./types/proto/api/v1/auth_service";
import { CollectionServiceDefinition } from "./types/proto/api/v1/collection_service";
import { ShortcutServiceDefinition } from "./types/proto/api/v1/shortcut_service";
import { SubscriptionServiceDefinition } from "./types/proto/api/v1/subscription_service";
import { UserServiceDefinition } from "./types/proto/api/v1/user_service";
import { UserSettingServiceDefinition } from "./types/proto/api/v1/user_setting_service";
import { WorkspaceServiceDefinition } from "./types/proto/api/v1/workspace_service";
const address = import.meta.env.MODE === "development" ? "http://localhost:8082" : window.location.origin;
const channel = createChannel(
address,
FetchTransport({
credentials: "include",
}),
);
const clientFactory = createClientFactory();
export const workspaceServiceClient = clientFactory.create(WorkspaceServiceDefinition, channel);
export const subscriptionServiceClient = clientFactory.create(SubscriptionServiceDefinition, channel);
export const authServiceClient = clientFactory.create(AuthServiceDefinition, channel);
export const userServiceClient = clientFactory.create(UserServiceDefinition, channel);
export const userSettingServiceClient = clientFactory.create(UserSettingServiceDefinition, channel);
export const shortcutServiceClient = clientFactory.create(ShortcutServiceDefinition, channel);
export const collectionServiceClient = clientFactory.create(CollectionServiceDefinition, channel);