Home
Softono
i

inngest

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by inngest

typedwebhook.tools
Open Source

typedwebhook.tools

<p align="center"> <img height="180" src="https://typedwebhook.tools/webhook-color.svg" alt="typedwebhook.tools Logo" /> </p> <h1 align="center">https://typedwebhook.tools</h1> <br /> <p align="center"> <a href="https://www.inngest.com"><img src="https://www.inngest.com/logo-white.svg" alt="Inngest logo" height="20" /></a> <br /> <small><a href="https://www.inngest.com">Sponsored by Inngest</a></small> </p> <hr /> A webhook testing tool which automatically creates types for incoming requests. Any incoming request which is valid JSON is automatically converted to: - [TypeScript](https://github.com/microsoft/TypeScript) - [Cue](https://github.com/cue-lang/cue) - [JSON Schema](https://json-schema.org/) [Here's the website. It's free to use. Knock yourself out!](https://typedwebhook.tools) ## Why? Webhooks are great! But, to use them you almost always need to generate types for the request data. Why not have that done automatically for you? At [Inngest](https://www.inngest.com) we love events. And types. So much that our service allows you to build & deploy serverless functions that run whenever events are received (like webhooks). We hope this tool — and Inngest — is useful for you and saves you time as a developer ✨ ## Example types <table> <tr><th>JSON</th><th>TypeScript</th><th>Cue</th><th>JSON Schema</th></tr> <tr valign="top"> <td> ```json { "name": "Test event", "data": { "id": 1, "name": "Tester McTestFace", "by": "Inngest", "at": "2022-02-21T21:19:05.529Z" }, "user": { "email": "[email protected]" }, "ts": 1645478345529 } ``` </td> <td> ```typescript export interface Event { name: string; data: { by: string; at: string; id: number; name: string; }; user: { email: string; }; ts: number; }; ``` </td> <td> ```cue { data: { id: int name: string by: string at: string } user: { email: string } ts: int name: string } ``` </td> <td> ```json { "properties":{ "data":{ "properties":{ "at":{ "type":"string" }, "by":{ "type":"string" }, "id":{ "type":"integer" }, "name":{ "type":"string" } }, "required":[ "id", "name", "by", "at" ], "type":"object" }, "name":{ "type":"string" }, "ts":{ "type":"integer" }, "user":{ "properties":{ "email":{ "type":"string" } }, "required":[ "email" ], "type":"object" } }, "required":[ "data", "user", "ts", "name" ], "type":"object" } ``` </td> </tr> </table> ## Architecture There are three main components to this app: - The backend, hosted using Cloudflare workers. - The frontend, built using SvelteKit. - The type generator, built using Inngest's [event schema packages](https://github.com/inngest/event-schemas) and ran using webassembly. The backend runs on Cloudflare workers. It accepts requests to create webhook endpoints; to susbcribe to webhook results via websockets; and accepts requests to a webhook URL to record the webhook data. Each webhook has it own unique UUID. While the chance of collision is _extremely low_, webhooks are also created with a shared secret - transmitted only once when the webhook is created. This secret must be supplied when connecting via websockets to receive any requests sent to the URL. This means that: - Webhooks are private - Webhooks are transient (no data is stored using this service; they're proxied directly to the browser) - Webhooks are secure ## Type creation The fun stuff! To create types from plain ol' JSON objects we use the following _pipeline_: 1. Convert the JSON to a Cue type. We do this for you. Cue is fantastic. It's both type definitions and constraints in one. 2. Use our [Cue-to-Typescript package](https://github.com/inngest/event-schemas/tree/main/events/marshalling/typescript) we made. This was fun. It also properly generates enums, interfaces, etc. according to best practices. 3. Use cue's JSON schema generation capabilities. You might be wondering - hey, this is in go, how does this run? If you guessed webassembly, give yourself a lil pat on the back! We shift this to the browser because _we dont want to see your data_. We believe that utilities like this should be free (this is) and should be private (hey, this is too!). If we ran this on a server then, well, we'd have to send your event to a backend. And, as explained above, the current backend runs in Cloudflare and literally proxies the request to your websocket connection. In the future maybe we rewrite this as a go app and do this as we process the request. Who knows. This works, and it only took us a couple days to make. ## Hacking away & contributing PRs are welcome! As are issues. If you're interested in hacking on the type creation stuff, that repo is here: https://github.com/inngest/event-schemas. PRs also welcome to that repo. ## Development ```shell # Install dependencies $ npm install # Start local development server with live reload $ npm run dev # Run tests $ npm test # Run type checking $ npm run types:check ``` ## License GPL, my friend. It's open-source, and should stay that way.

Developer Tools API Tools Testing & QA
305 Github Stars
inngest-js
Open Source

inngest-js

<div align="center"> <br/> <a href="https://www.inngest.com"><img src="https://github.com/inngest/.github/raw/main/profile/github-readme-banner-2025-06-20.png"/></a> <br/> <br/> <p> Inngest is the reliability layer for modern applications. It combines durable execution, events, and queues into a zero-infra platform with built-in observability. </p> **Works with:** <br/> <img src="https://jsr.io/logos/browsers.svg" height="20" /> <img src="https://jsr.io/logos/bun.svg" height="20" /> <img src="https://jsr.io/logos/deno.svg" height="20" /> <img src="https://jsr.io/logos/node.svg" height="20" /> <img src="https://jsr.io/logos/cloudflare-workers.svg" height="20" /> Read the <a href="https://www.inngest.com/docs?ref=github-inngest-js-readme">documentation</a> and get started in minutes. <br/> <p> <a href="https://www.npmjs.com/package/inngest"><img src="https://img.shields.io/npm/v/inngest" /></a> <br/> <a href="https://www.inngest.com/discord"><img src="https://img.shields.io/discord/842170679536517141?label=discord" /></a> <a href="https://twitter.com/inngest"><img src="https://img.shields.io/twitter/follow/inngest?style=social" /></a> </p> </div> <hr /> On _any_ serverless platform ([Next.js](https://www.inngest.com/docs/sdk/serve#framework-next-js), [Deno Deploy](https://www.inngest.com/docs/sdk/serve#framework-fresh-deno), [RedwoodJS](https://www.inngest.com/docs/sdk/serve#framework-redwood), [AWS Lambda](https://www.inngest.com/docs/sdk/serve#framework-aws-lambda), and [anything else](https://www.inngest.com/docs/sdk/serve#custom-frameworks)) and with no extra infrastructure: - ⚡ Write <b>background jobs</b> - 🕐 Create <b>scheduled and cron jobs</b> - ♻️ Build <b>serverless queues</b> - 🪜 Write complex <b>step functions</b> - 🚘 Build <b>serverless event-driven systems</b> - 🪝 Reliably respond to webhooks, with retries and payloads stored for history 👋 _Have a question or feature request? [Join our Discord](https://www.inngest.com/discord)!_ <br /> <p align="center"> <a href="#getting-started">Getting started</a> · <a href="#features">Features</a> · <a href="#version-support">Version support</a> · <a href="#contributing">Contributing</a> · <a href="https://www.inngest.com/docs?ref=github-inngest-js-readme">Documentation</a> </p> <br /> ## Getting started <br /> Install Inngest: ```bash npm install inngest ``` ### Writing functions Write serverless functions and background jobs right in your own code: ```ts import { Inngest } from "inngest"; const inngest = new Inngest({ id: "my-app" }); // This function will be invoked by Inngest via HTTP any time // the "app/user.signup" event is sent to to Inngest export default inngest.createFunction( { id: "user-onboarding-communication", triggers: [{ event: "app/user.signup" }], }, async ({ event, step }) => { await step.run("Send welcome email", async () => { await sendEmail({ email: event.data.email, template: "welcome", }); }); } ); ``` - Functions are triggered by events which can be sent via this SDK, webhooks, integrations, or with a simple HTTP request. - When a matching event is received, Inngest invokes the function automatically, with built-in retries. ### Serving your functions Inngest invokes functions via HTTP, so you need to _serve_ them using an adapter for the framework of your choice. [See all frameworks here in our docs](https://www.inngest.com/docs/sdk/serve?ref=github-inngest-js-readme). Here is an example using the Next.js serve handler: ```ts // /pages/api/inngest.ts import { Inngest } from "inngest"; // See the "inngest/next" adapter imported here: import { serve } from "inngest/next"; import myFunction from "../userOnboardingCommunication"; // see above function // You can create this in a single file and import where it's needed const inngest = new Inngest({ id: "my-app" }); // Securely serve your Inngest functions for remote invocation: export default serve(inngest, [myFunction]); ``` ### Sending events to trigger functions ```ts // Send events import { Inngest } from "inngest"; const inngest = new Inngest({ id: "my-app" }); // This will run the function above automatically, in the background inngest.send("app/user.signup", { data: { email: "[email protected]", user_id: "12345" }, }); ``` - Events can trigger one or more functions automatically, enabling you to fan-out work. - Inngest stores a history of all events for observability, testing, and replay. <br /> ## Features - **Fully serverless:** Run background jobs, scheduled functions, and build event-driven systems without any servers, state, or setup - **Works with your framework**: Works with [Next.js, Redwood, Express, Cloudflare Pages, Nuxt, Fresh (Deno), and Remix](https://www.inngest.com/docs/sdk/serve?ref=github-inngest-js-readme) - **Deploy anywhere**: Keep [deploying to your existing platform](https://www.inngest.com/docs/deploy?ref=github-inngest-js-readme): Vercel, Netlify, Cloudflare, Deno, Digital Ocean, etc. - **Use your existing code:** Write functions within your current project and repo - **Fully typed**: Event schemas, versioning, and governance out of the box - **Observable**: A full UI for managing and inspecting your functions <br /> ## Version support The library works across browsers, Bun, Deno, Node, and Cloudflare Workers. We support the LTS versions of these runtimes and the last 3 minor versions of TypeScript; once a runtime version drops out of LTS, any major, minor, or patch update to the `inngest` library may drop support for it, which will be mentioned in the patch notes. ## Contributing Check out [`CONTRIBUTING.md`](CONTRIBUTING.md) to get started.

Cron & Job Scheduling iPaaS & API Integration
959 Github Stars