![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Serverless event-driven queues, background jobs, and scheduled jobs for Typescript.
Works with any framework and platform.
On any serverless platform (Next.js, Deno Deploy, RedwoodJS, AWS Lambda, and anything else) and with no extra infrastructure:
๐ Have a question or feature request? Join our Discord!
Getting started ยท Features ยท Contributing ยท Documentation
Install Inngest:
npm install inngest # or yarn add inngest
Write serverless functions and background jobs right in your own code:
import { Inngest } from "inngest";
const inngest = new Inngest({ name: "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(
{ name: "User onboarding communication" },
{ event: "app/user.signup" },
async ({ event, step }) => {
await step.run("Send welcome email", async () => {
await sendEmail({
email: event.data.email,
template: "welcome",
});
});
}
);
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. Here is an example using the Next.js serve handler:
// /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({ name: "My App" });
// Securely serve your Inngest functions for remote invocation:
export default serve(inngest, [myFunction]);
// Send events
import { Inngest } from "inngest";
const inngest = new Inngest({ name: "My App" });
// This will run the function above automatically, in the background
inngest.send("app/user.signup", {
data: { email: "text@example.com", user_id: "12345" },
});
Clone the repository, then:
yarn dev # install dependencies, build/lint/test
We use Volta to manage Node/Yarn versions.
When making a pull request, make sure to commit the changed
etc/inngest.api.md
file; this is a generated types/docs file that will highlight changes to the exposed API.
npm|yarn link
)In order to provide sensible namespaced imports such as "inngest/next"
, the package actually builds to and deploys from dist/
.
To replicate this locally to test changes with other local repos, you can link the project like so (replace npm
for yarn
if desired):
# in this repo
yarn build
yarn prelink
cd dist/
yarn link
# in another repo
yarn link inngest
Alternatively, you can also package the library and ship it with an application. This is a nice way to generate and ship snapshot/test versions of the library to test in production environments without requiring releasing to npm.
# in this repo
yarn local:pack
cp inngest.tgz ../some-other-repo-root
# in another repo
yarn add ./inngest.tgz
Some platforms require manually installing the package again at build time to properly link dependencies, so you may have to change your yarn build
script to be prefixed with this install, e.g.:
yarn add ./inngest.tgz && framework dev
To release to production, we use Changesets. This means that releasing and changelog generation is all managed through PRs, where a bot will guide you through the process of announcing changes in PRs and releasing them once merged to main
.
Merging and releasing to previous major versions of the SDK is also supported.
backport v*.x
label (e.g. backport v1.x
) to a PR to have a backport PR generated when the initial PR is merged.v*.x
branch creates a release PR (named Release v1.x, for example) the same as the main
branch. Simply merge to release.If a local inngest.tgz
isn't ideal, we can release a tagged version to npm. For now, this is relatively manual. For this, please ensure you are in an open PR branch for observability.
Decide on the "tag" you will be publishing to, which will dictate how the user installs the snapshot, e.g. if your tag is beta
, the user will install using inngest@beta
.
You can see the currently available tags on the inngest
npm page.
NEVER use the
latest
tag, and NEVER runnpm publish
without specifying--tag
.
If the current active version is v1.1.1
, this is a minor release, and our tag is foo
, we'd do:
yarn version v1.2.0-foo.1
yarn build
yarn prelink
cd dist/
npm publish --access public --tag foo
You can iterate the final number for each extra snapshot you need to do on a branch.
FAQs
Official SDK for Inngest.com. Inngest is the reliability layer for modern applications. Inngest combines durable execution, events, and queues into a zero-infra platform with built-in observability.
The npm package inngest receives a total of 85,890 weekly downloads. As such, inngest popularity was classified as popular.
We found that inngest demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.