diff --git a/README.md b/README.md index 37a22dd7..bd4c2550 100644 --- a/README.md +++ b/README.md @@ -182,12 +182,9 @@ If you have an existing Twirp server you're connecting to and only need a client `src/server/haberdasher/index.ts` ```ts -import { - HaberdasherService, - createHaberdasherHandler, -} from "../../protos/haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "../../protos/haberdasher.pb"; -const Haberdasher: HaberdasherService = { +const haberdasher: Haberdasher = { MakeHat: (size) => { return { inches: size.inches, @@ -197,7 +194,7 @@ const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const haberdasherHandler = createHaberdasher(haberdasher); ``` #### 5. Connect your service to your application server @@ -207,11 +204,11 @@ export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); ```ts import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./haberdasher"; +import { haberdasherHandler } from "./haberdasher"; const PORT = 8080; -const app = createTwirpServer([HaberdasherHandler]); +const app = createTwirpServer([haberdasherHandler]); createServer(app).listen(PORT, () => console.log(`Server listening on port ${PORT}`) @@ -309,12 +306,12 @@ Servers can be configured by passing a configuration object to `createTwirpServe ```ts import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./haberdasher"; +import { haberdasherHandler } from "./haberdasher"; const PORT = 8080; // This removes the "/twirp" prefix in the RPC path -const app = createTwirpServer([HaberdasherHandler], { prefix: "" }); +const app = createTwirpServer([haberdasherHandler], { prefix: "" }); createServer(app).listen(PORT, () => console.log(`Server listening on port ${PORT}`) @@ -347,13 +344,10 @@ Custom fields can be added to the context object via [middleware](#middleware--i If you setup middleware similiar to the [authentication middleware example](https://github.com/tatethurston/TwirpScript#example-3), you could read the `currentUser` `username` property in your service handler. See the [authentication example](https://github.com/tatethurston/twirpscript/tree/main/examples/authentication) for a full application. ```ts -import { - HaberdasherService, - createHaberdasherHandler, -} from "../../protos/haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "../../protos/haberdasher.pb"; import { Context } from "../some-path-to-your-definition"; -const Haberdasher: HaberdasherService = { +const haberdasher: Haberdasher = { MakeHat: (size, ctx) => { return { inches: size.inches, @@ -363,7 +357,7 @@ const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(HaberdasherService); +export const haberdasherHandler = createHaberdasher(haberdasher); ``` ### Middleware / Interceptors @@ -425,18 +419,18 @@ The middleware handler will receive `req`, `context` and `next` parameters. `req ```ts import { createServer } from "http"; import { createTwirpServer, TwirpError } from "twirpscript"; -import { AuthenticationHandler } from "./authentication"; +import { authenticationHandler } from "./authentication"; export interface Context { currentUser: { username: string }; } -const services = [AuthenticationHandler] +const services = [authenticationHandler] const app = createTwirpServer(services); app.use(async (req, ctx, next) => { // exception so unauthenticated users can authenticate - if (ctx.service.name === AuthenticationHandler.name) { + if (ctx.service.name === authenticationHandler.name) { return next(); } @@ -537,11 +531,11 @@ response) have been written. Called with the current `context` and the response. ```ts import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./haberdasher"; +import { habderdasherHandler } from "./haberdasher"; const PORT = 8080; -const app = createTwirpServer([HaberdasherHandler]); +const app = createTwirpServer([habderdasherHandler]); app.on("responseSent", (ctx) => { // log or report diff --git a/clientcompat/src/clientcompat.pb.ts b/clientcompat/src/clientcompat.pb.ts index 6173f99f..d4667107 100644 --- a/clientcompat/src/clientcompat.pb.ts +++ b/clientcompat/src/clientcompat.pb.ts @@ -70,17 +70,15 @@ export async function NoopMethodJSON( } //========================================// -// CompatService Service // +// CompatService // //========================================// -export interface CompatServiceService { +export interface CompatService { Method: (req: Req, context: Context) => Promise | Resp; NoopMethod: (empty: Empty, context: Context) => Promise | Empty; } -export function createCompatServiceHandler( - service: CompatServiceService -) { +export function createCompatService(service: CompatService) { return { name: "twirp.clientcompat.CompatService", methods: { diff --git a/examples/authentication/src/client/index.tsx b/examples/authentication/src/client/index.tsx index f0084b50..6f0307f0 100644 --- a/examples/authentication/src/client/index.tsx +++ b/examples/authentication/src/client/index.tsx @@ -65,7 +65,7 @@ const App: FC = () => { return (
-

Haberdasher Service

+

Haberdasher

Current User:

{user ? (
diff --git a/examples/authentication/src/protos/authentication.pb.ts b/examples/authentication/src/protos/authentication.pb.ts index f782c240..2c43acbd 100644 --- a/examples/authentication/src/protos/authentication.pb.ts +++ b/examples/authentication/src/protos/authentication.pb.ts @@ -52,10 +52,10 @@ export async function LoginJSON( } //========================================// -// Authentication Service // +// Authentication // //========================================// -export interface AuthenticationService { +export interface Authentication { /** * Login in a user */ @@ -65,8 +65,8 @@ export interface AuthenticationService { ) => Promise | CurrentUser; } -export function createAuthenticationHandler( - service: AuthenticationService +export function createAuthentication( + service: Authentication ) { return { name: "Authentication", diff --git a/examples/authentication/src/protos/haberdasher.pb.ts b/examples/authentication/src/protos/haberdasher.pb.ts index 8a869792..bd7c3c15 100644 --- a/examples/authentication/src/protos/haberdasher.pb.ts +++ b/examples/authentication/src/protos/haberdasher.pb.ts @@ -48,22 +48,20 @@ export async function MakeHatJSON( } //========================================// -// Haberdasher Service // +// Haberdasher // //========================================// /** * Haberdasher service makes hats for clients. */ -export interface HaberdasherService { +export interface Haberdasher { /** * MakeHat produces a hat of mysterious, randomly-selected color! */ MakeHat: (size: Size, context: Context) => Promise | Hat; } -export function createHaberdasherHandler( - service: HaberdasherService -) { +export function createHaberdasher(service: Haberdasher) { return { name: "Haberdasher", methods: { diff --git a/examples/authentication/src/server/index.ts b/examples/authentication/src/server/index.ts index 1c50c318..395be7bd 100644 --- a/examples/authentication/src/server/index.ts +++ b/examples/authentication/src/server/index.ts @@ -1,15 +1,15 @@ import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { AuthenticationHandler, HaberdasherHandler } from "./services"; +import { authenticationHandler, habderdasherHandler } from "./services"; import { Context } from "./context"; import { cors, requireAuthentication } from "./middleware"; const PORT = 8080; -const services = [AuthenticationHandler, HaberdasherHandler]; +const services = [authenticationHandler, habderdasherHandler]; const app = createTwirpServer(services) .use(cors) - .use(requireAuthentication({ exceptions: [AuthenticationHandler.name] })); + .use(requireAuthentication({ exceptions: [authenticationHandler.name] })); createServer(app).listen(PORT, () => console.log(`Server listening on port ${PORT}`) diff --git a/examples/authentication/src/server/middleware/requireAuthentication.ts b/examples/authentication/src/server/middleware/requireAuthentication.ts index df774ae2..b085e6dc 100644 --- a/examples/authentication/src/server/middleware/requireAuthentication.ts +++ b/examples/authentication/src/server/middleware/requireAuthentication.ts @@ -1,7 +1,7 @@ import { IncomingMessage } from "http"; import { Middleware, TwirpErrorResponse } from "twirpscript"; import { Context } from "../context"; -import { getCurrentUser, UnauthenticatedUser } from "../services"; +import { getCurrentUser, unauthenticatedUser } from "../services"; interface RequireAuthenticationOpts { exceptions: string[]; @@ -13,7 +13,7 @@ export function requireAuthentication({ return async (req, ctx, next) => { for (let exception of exceptions) { if (ctx.service?.name === exception) { - ctx.currentUser = UnauthenticatedUser; + ctx.currentUser = unauthenticatedUser; return next(); } } diff --git a/examples/authentication/src/server/services/authentication/index.ts b/examples/authentication/src/server/services/authentication/index.ts index d642c16d..bfe79742 100644 --- a/examples/authentication/src/server/services/authentication/index.ts +++ b/examples/authentication/src/server/services/authentication/index.ts @@ -1,6 +1,6 @@ import { - AuthenticationService, - createAuthenticationHandler, + Authentication, + createAuthentication, CurrentUser, Credentials, } from "../../../protos/authentication.pb"; @@ -27,7 +27,7 @@ function login(credentials: Credentials): CurrentUser | undefined { /** * Sentinal value for unauthenticated routes. */ -export const UnauthenticatedUser: CurrentUser = { +export const unauthenticatedUser: CurrentUser = { username: "", token: "", }; @@ -41,7 +41,7 @@ export function getCurrentUser( return sessions.find((s) => s.token === token); } -export const Authentication: AuthenticationService = { +export const authentication: Authentication = { Login: (credentials) => { const user = login(credentials); if (!user) { @@ -54,5 +54,4 @@ export const Authentication: AuthenticationService = { }, }; -export const AuthenticationHandler = - createAuthenticationHandler(Authentication); +export const authenticationHandler = createAuthentication(authentication); diff --git a/examples/authentication/src/server/services/haberdasher/index.ts b/examples/authentication/src/server/services/haberdasher/index.ts index 7a041aa8..ca75c533 100644 --- a/examples/authentication/src/server/services/haberdasher/index.ts +++ b/examples/authentication/src/server/services/haberdasher/index.ts @@ -1,14 +1,11 @@ import { Context } from "../../context"; -import { - HaberdasherService, - createHaberdasherHandler, -} from "../../../protos/haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "../../../protos/haberdasher.pb"; function choose(list: T[]): T { return list[Math.floor(Math.random() * list.length)]; } -export const Haberdasher: HaberdasherService = { +export const haberdasher: Haberdasher = { MakeHat: (size, ctx) => { const username = ctx.currentUser.username; const hat = choose(["beanie", "fedora", "top hat", "cowboy", "beret"]); @@ -22,4 +19,4 @@ export const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const habderdasherHandler = createHaberdasher(haberdasher); diff --git a/examples/authentication/src/server/services/haberdasher/test.ts b/examples/authentication/src/server/services/haberdasher/test.ts index 2fb60047..95efd3ce 100644 --- a/examples/authentication/src/server/services/haberdasher/test.ts +++ b/examples/authentication/src/server/services/haberdasher/test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "@jest/globals"; -import { Haberdasher } from "."; +import { haberdasher } from "."; describe("Haberdasher", () => { describe("Haberdasher.MakeHat", () => { @@ -7,7 +7,7 @@ describe("Haberdasher", () => { const size = { inches: 12 }; const ctx = { currentUser: { username: "tate" } }; - expect(Haberdasher.MakeHat(size, ctx)).toEqual( + expect(haberdasher.MakeHat(size, ctx)).toEqual( expect.objectContaining({ inches: size.inches, name: expect.stringMatching("tate"), diff --git a/examples/authentication/src/server/services/index.ts b/examples/authentication/src/server/services/index.ts index 5f09a7e2..6e236abe 100644 --- a/examples/authentication/src/server/services/index.ts +++ b/examples/authentication/src/server/services/index.ts @@ -1,6 +1,6 @@ export { - AuthenticationHandler, + authenticationHandler, getCurrentUser, - UnauthenticatedUser, + unauthenticatedUser, } from "./authentication"; -export { HaberdasherHandler } from "./haberdasher"; +export { habderdasherHandler } from "./haberdasher"; diff --git a/examples/aws-lambda/src/habderdasher.ts b/examples/aws-lambda/src/habderdasher.ts index 04cef5c3..c66b813e 100644 --- a/examples/aws-lambda/src/habderdasher.ts +++ b/examples/aws-lambda/src/habderdasher.ts @@ -1,10 +1,10 @@ -import { HaberdasherService, createHaberdasherHandler } from "./haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "./haberdasher.pb"; function choose(list: T[]): T { return list[Math.floor(Math.random() * list.length)]; } -export const Haberdasher: HaberdasherService = { +export const haberdasher: Haberdasher = { MakeHat: (size) => { return { inches: size.inches, @@ -14,4 +14,4 @@ export const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const habderdasherHandler = createHaberdasher(haberdasher); diff --git a/examples/aws-lambda/src/haberdasher.pb.ts b/examples/aws-lambda/src/haberdasher.pb.ts index 3df21307..26eeee47 100644 --- a/examples/aws-lambda/src/haberdasher.pb.ts +++ b/examples/aws-lambda/src/haberdasher.pb.ts @@ -48,22 +48,20 @@ export async function MakeHatJSON( } //========================================// -// Haberdasher Service // +// Haberdasher // //========================================// /** * Haberdasher service makes hats for clients. */ -export interface HaberdasherService { +export interface Haberdasher { /** * MakeHat produces a hat of mysterious, randomly-selected color! */ MakeHat: (size: Size, context: Context) => Promise | Hat; } -export function createHaberdasherHandler( - service: HaberdasherService -) { +export function createHaberdasher(service: Haberdasher) { return { name: "Haberdasher", methods: { diff --git a/examples/aws-lambda/src/index.ts b/examples/aws-lambda/src/index.ts index 3ceaf6a5..1fde48de 100644 --- a/examples/aws-lambda/src/index.ts +++ b/examples/aws-lambda/src/index.ts @@ -1,12 +1,12 @@ import { createTwirpServerless } from "twirpscript"; -import { HaberdasherHandler } from "./habderdasher"; +import { habderdasherHandler } from "./habderdasher"; import { Handler, APIGatewayProxyEvent, APIGatewayProxyResult, } from "aws-lambda"; -const app = createTwirpServerless([HaberdasherHandler]); +const app = createTwirpServerless([habderdasherHandler]); const handler: Handler = async ( event diff --git a/examples/javascript-fullstack/src/client/index.jsx b/examples/javascript-fullstack/src/client/index.jsx index 387ab2ce..d088f7c3 100644 --- a/examples/javascript-fullstack/src/client/index.jsx +++ b/examples/javascript-fullstack/src/client/index.jsx @@ -22,7 +22,7 @@ const App = () => { return (
-

Haberdasher Service

+

Haberdasher

Hats:

    {hats.map((hat) => ( diff --git a/examples/javascript-fullstack/src/protos/haberdasher.pb.js b/examples/javascript-fullstack/src/protos/haberdasher.pb.js index 23d93b75..7a5af4d5 100644 --- a/examples/javascript-fullstack/src/protos/haberdasher.pb.js +++ b/examples/javascript-fullstack/src/protos/haberdasher.pb.js @@ -40,7 +40,7 @@ export async function MakeHatJSON(size, config) { return response; } -export function createHaberdasherHandler(service) { +export function createHaberdasher(service) { return { name: "Haberdasher", methods: { diff --git a/examples/javascript-fullstack/src/server/haberdasher/index.js b/examples/javascript-fullstack/src/server/haberdasher/index.js index 914d315d..7fc7ef2a 100644 --- a/examples/javascript-fullstack/src/server/haberdasher/index.js +++ b/examples/javascript-fullstack/src/server/haberdasher/index.js @@ -1,10 +1,10 @@ -import { createHaberdasherHandler } from "../../protos/haberdasher.pb.js"; +import { createHaberdasher } from "../../protos/haberdasher.pb.js"; function choose(list) { return list[Math.floor(Math.random() * list.length)]; } -export const Haberdasher = { +export const haberdasher = { MakeHat: (size) => { return { inches: size.inches, @@ -14,4 +14,4 @@ export const Haberdasher = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const habderdasherHandler = createHaberdasher(haberdasher); diff --git a/examples/javascript-fullstack/src/server/index.js b/examples/javascript-fullstack/src/server/index.js index c5fe4649..d85ae10d 100644 --- a/examples/javascript-fullstack/src/server/index.js +++ b/examples/javascript-fullstack/src/server/index.js @@ -1,10 +1,10 @@ import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./haberdasher/index.js"; +import { habderdasherHandler } from "./haberdasher/index.js"; const PORT = 8080; -const app = createTwirpServer([HaberdasherHandler]); +const app = createTwirpServer([habderdasherHandler]); // CORS app.use(async (req, _ctx, next) => { diff --git a/examples/server-to-server/src/protos/haberdasher.pb.ts b/examples/server-to-server/src/protos/haberdasher.pb.ts index 8a869792..bd7c3c15 100644 --- a/examples/server-to-server/src/protos/haberdasher.pb.ts +++ b/examples/server-to-server/src/protos/haberdasher.pb.ts @@ -48,22 +48,20 @@ export async function MakeHatJSON( } //========================================// -// Haberdasher Service // +// Haberdasher // //========================================// /** * Haberdasher service makes hats for clients. */ -export interface HaberdasherService { +export interface Haberdasher { /** * MakeHat produces a hat of mysterious, randomly-selected color! */ MakeHat: (size: Size, context: Context) => Promise | Hat; } -export function createHaberdasherHandler( - service: HaberdasherService -) { +export function createHaberdasher(service: Haberdasher) { return { name: "Haberdasher", methods: { diff --git a/examples/server-to-server/src/server/haberdasher/index.ts b/examples/server-to-server/src/server/haberdasher/index.ts index f09139e4..46d59b5d 100644 --- a/examples/server-to-server/src/server/haberdasher/index.ts +++ b/examples/server-to-server/src/server/haberdasher/index.ts @@ -1,13 +1,10 @@ -import { - HaberdasherService, - createHaberdasherHandler, -} from "../../protos/haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "../../protos/haberdasher.pb"; function choose(list: T[]): T { return list[Math.floor(Math.random() * list.length)]; } -export const Haberdasher: HaberdasherService = { +export const haberdasher: Haberdasher = { MakeHat: (size) => { return { inches: size.inches, @@ -17,4 +14,4 @@ export const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const habderdasherHandler = createHaberdasher(haberdasher); diff --git a/examples/server-to-server/src/server/haberdasher/test.ts b/examples/server-to-server/src/server/haberdasher/test.ts index 2f102531..f3a58a80 100644 --- a/examples/server-to-server/src/server/haberdasher/test.ts +++ b/examples/server-to-server/src/server/haberdasher/test.ts @@ -1,12 +1,12 @@ import { describe, it, expect } from "@jest/globals"; -import { Haberdasher } from "."; +import { haberdasher } from "."; describe("Haberdasher", () => { describe("Haberdasher.MakeHat", () => { it("makes hats", () => { const size = { inches: 12 }; - expect(Haberdasher.MakeHat(size, {})).toEqual( + expect(haberdasher.MakeHat(size, {})).toEqual( expect.objectContaining({ inches: size.inches, }) diff --git a/examples/server-to-server/src/server/index.ts b/examples/server-to-server/src/server/index.ts index 7cf3fd26..10421fa1 100644 --- a/examples/server-to-server/src/server/index.ts +++ b/examples/server-to-server/src/server/index.ts @@ -1,10 +1,10 @@ import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./haberdasher"; +import { habderdasherHandler } from "./haberdasher"; const PORT = 8080; -const app = createTwirpServer([HaberdasherHandler]); +const app = createTwirpServer([habderdasherHandler]); createServer(app).listen(PORT, () => console.log(`Server listening on port ${PORT}`) diff --git a/examples/typescript-fullstack/src/client/index.tsx b/examples/typescript-fullstack/src/client/index.tsx index d8cea965..683ea35c 100644 --- a/examples/typescript-fullstack/src/client/index.tsx +++ b/examples/typescript-fullstack/src/client/index.tsx @@ -22,7 +22,7 @@ const App: FC = () => { return (
    -

    Haberdasher Service

    +

    Haberdasher

    Hats:

      {hats.map((hat) => ( diff --git a/examples/typescript-fullstack/src/protos/haberdasher.pb.ts b/examples/typescript-fullstack/src/protos/haberdasher.pb.ts index 8a869792..bd7c3c15 100644 --- a/examples/typescript-fullstack/src/protos/haberdasher.pb.ts +++ b/examples/typescript-fullstack/src/protos/haberdasher.pb.ts @@ -48,22 +48,20 @@ export async function MakeHatJSON( } //========================================// -// Haberdasher Service // +// Haberdasher // //========================================// /** * Haberdasher service makes hats for clients. */ -export interface HaberdasherService { +export interface Haberdasher { /** * MakeHat produces a hat of mysterious, randomly-selected color! */ MakeHat: (size: Size, context: Context) => Promise | Hat; } -export function createHaberdasherHandler( - service: HaberdasherService -) { +export function createHaberdasher(service: Haberdasher) { return { name: "Haberdasher", methods: { diff --git a/examples/typescript-fullstack/src/server/index.ts b/examples/typescript-fullstack/src/server/index.ts index 13ec15dd..29d30927 100644 --- a/examples/typescript-fullstack/src/server/index.ts +++ b/examples/typescript-fullstack/src/server/index.ts @@ -1,10 +1,10 @@ import { createServer } from "http"; import { createTwirpServer } from "twirpscript"; -import { HaberdasherHandler } from "./services"; +import { habderdasherHandler } from "./services"; const PORT = 8080; -const app = createTwirpServer([HaberdasherHandler]); +const app = createTwirpServer([habderdasherHandler]); // CORS app.use(async (req, _ctx, next) => { diff --git a/examples/typescript-fullstack/src/server/services/haberdasher/index.ts b/examples/typescript-fullstack/src/server/services/haberdasher/index.ts index a00e37e1..a923c7e5 100644 --- a/examples/typescript-fullstack/src/server/services/haberdasher/index.ts +++ b/examples/typescript-fullstack/src/server/services/haberdasher/index.ts @@ -1,13 +1,10 @@ -import { - HaberdasherService, - createHaberdasherHandler, -} from "../../../protos/haberdasher.pb"; +import { Haberdasher, createHaberdasher } from "../../../protos/haberdasher.pb"; function choose(list: T[]): T { return list[Math.floor(Math.random() * list.length)]; } -export const Haberdasher: HaberdasherService = { +export const haberdasher: Haberdasher = { MakeHat: (size) => { return { inches: size.inches, @@ -17,4 +14,4 @@ export const Haberdasher: HaberdasherService = { }, }; -export const HaberdasherHandler = createHaberdasherHandler(Haberdasher); +export const habderdasherHandler = createHaberdasher(haberdasher); diff --git a/examples/typescript-fullstack/src/server/services/haberdasher/test.ts b/examples/typescript-fullstack/src/server/services/haberdasher/test.ts index 2f102531..f3a58a80 100644 --- a/examples/typescript-fullstack/src/server/services/haberdasher/test.ts +++ b/examples/typescript-fullstack/src/server/services/haberdasher/test.ts @@ -1,12 +1,12 @@ import { describe, it, expect } from "@jest/globals"; -import { Haberdasher } from "."; +import { haberdasher } from "."; describe("Haberdasher", () => { describe("Haberdasher.MakeHat", () => { it("makes hats", () => { const size = { inches: 12 }; - expect(Haberdasher.MakeHat(size, {})).toEqual( + expect(haberdasher.MakeHat(size, {})).toEqual( expect.objectContaining({ inches: size.inches, }) diff --git a/examples/typescript-fullstack/src/server/services/index.ts b/examples/typescript-fullstack/src/server/services/index.ts index 34078da9..fdb0e853 100644 --- a/examples/typescript-fullstack/src/server/services/index.ts +++ b/examples/typescript-fullstack/src/server/services/index.ts @@ -1 +1 @@ -export { HaberdasherHandler } from "./haberdasher"; +export { habderdasherHandler } from "./haberdasher"; diff --git a/src/autogenerate/index.ts b/src/autogenerate/index.ts index 0a4e185d..d510b457 100644 --- a/src/autogenerate/index.ts +++ b/src/autogenerate/index.ts @@ -643,12 +643,12 @@ function writeServers( services.forEach((service) => { // print service types if (isTS) { - result += printHeading(`${service.name} Service`); + result += printHeading(`${service.name}`); if (service.comments?.leading) { result += printComments(service.comments.leading); } - result += `export interface ${service.name}Service {\n`; + result += `export interface ${service.name} {\n`; service.methods.forEach((method) => { if (method.comments?.leading) { result += printComments(method.comments.leading); @@ -661,11 +661,9 @@ function writeServers( result += "\n"; - result += `export function create${service.name}Handler${printIfTypescript( + result += `export function create${service.name}${printIfTypescript( "" - )}(service${printIfTypescript( - `: ${service.name}Service` - )}) { return { + )}(service${printIfTypescript(`: ${service.name}`)}) { return { name: '${[packageName, service.name].filter(Boolean).join(".")}', methods: {\n`; service.methods.forEach((method) => { diff --git a/src/test-protos/__snapshots__/test.ts.snap b/src/test-protos/__snapshots__/test.ts.snap index f6961f7d..b8ab1f20 100644 --- a/src/test-protos/__snapshots__/test.ts.snap +++ b/src/test-protos/__snapshots__/test.ts.snap @@ -350,7 +350,7 @@ export async function BarJSON(barRequest, config) { return response; } -export function createTestServiceHandler(service) { +export function createTestService(service) { return { name: \\"protobuf_unittest.TestService\\", methods: { @@ -18752,7 +18752,7 @@ export async function BarJSON(empty, config) { return response; } -export function createFooHandler(service) { +export function createFoo(service) { return { name: \\"Foo\\", methods: { @@ -19117,7 +19117,7 @@ export async function BarJSON(barRequest, config) { return response; } -export function createTestServiceHandler(service) { +export function createTestService(service) { return { name: \\"protobuf_unittest.TestService\\", methods: { @@ -37547,7 +37547,7 @@ export async function BarJSON(empty, config) { return response; } -export function createFooHandler(service) { +export function createFoo(service) { return { name: \\"Foo\\", methods: { @@ -37985,10 +37985,10 @@ export async function BarJSON( } //========================================// -// TestService Service // +// TestService // //========================================// -export interface TestServiceService { +export interface TestService { Foo: ( fooRequest: FooRequest, context: Context @@ -37999,9 +37999,7 @@ export interface TestServiceService { ) => Promise | BarResponse; } -export function createTestServiceHandler( - service: TestServiceService -) { +export function createTestService(service: TestService) { return { name: \\"protobuf_unittest.TestService\\", methods: { @@ -58795,14 +58793,14 @@ export async function BarJSON( } //========================================// -// Foo Service // +// Foo // //========================================// -export interface FooService { +export interface Foo { Bar: (empty: Empty, context: Context) => Promise | Empty; } -export function createFooHandler(service: FooService) { +export function createFoo(service: Foo) { return { name: \\"Foo\\", methods: { @@ -59234,10 +59232,10 @@ export async function BarJSON( } //========================================// -// TestService Service // +// TestService // //========================================// -export interface TestServiceService { +export interface TestService { Foo: ( fooRequest: FooRequest, context: Context @@ -59248,9 +59246,7 @@ export interface TestServiceService { ) => Promise | BarResponse; } -export function createTestServiceHandler( - service: TestServiceService -) { +export function createTestService(service: TestService) { return { name: \\"protobuf_unittest.TestService\\", methods: { @@ -80072,14 +80068,14 @@ export async function BarJSON( } //========================================// -// Foo Service // +// Foo // //========================================// -export interface FooService { +export interface Foo { Bar: (empty: Empty, context: Context) => Promise | Empty; } -export function createFooHandler(service: FooService) { +export function createFoo(service: Foo) { return { name: \\"Foo\\", methods: {