Skip to content

JS Client library to interact with Jet queue plugin

Notifications You must be signed in to change notification settings

Byzanteam/jet-queue-plugin-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jet-queue-plugin-js

JS Client library to interact with Jet queue plugin, supporting both plugin-based and in-memory queue mechanisms for testing and development purposes.

Usage

Installation

Install it via jsdelivr.

import { useQueue } from "https://cdn.jsdelivr.net/gh/Byzanteam/jet-queue-plugin-js/mod.ts";

Enqueuing a Job

const { enqueue } = useQueue("default", { instanceName: "jetQueueInstance" });

// enqueue a job
await enqueue({ id: 1, name: "Alice" }, {
  meta: { slug: "unique-key" },
  unique: { fields: ["meta"], keys: ["slug", "id", "name"] },
});

Listening for Jobs

const { listen } = useQueue("default", { instanceName: "jetQueueInstance" });

await listen(async (jobs) => {
  for (const job of jobs) {
    // handle job
  }
});

Testing Setup with testing.ts

Use testing.ts for easy testing setup and assertions in BDD frameworks:

Quick Setup

import { setupQueue } from "https://cdn.jsdelivr.net/gh/Byzanteam/jet-queue-plugin-js/testing.ts";

describe("Queue Tests", () => {
  const { assertEnqueuedJob } = setupQueue();

  it("enqueues job correctly", () => {
    // Enqueue job
    assertEnqueuedJob("testQueue", { id: 1, name: "Test" });
  });
});