🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@idempotix/upstash

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@idempotix/upstash

Upstash Redis adapter for Idempotix idempotency

latest
Source
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

Idempotix

@idempotix/upstash

Upstash Redis adapter for Idempotix. HTTP-based, perfect for serverless and edge.

npm version

Installation

npm install @idempotix/core @idempotix/upstash

Quick Start

import { upstash } from '@idempotix/upstash';
import { next } from '@idempotix/next';

// From environment variables
export const POST = next({ storage: upstash() })(handler);

Configuration

import { upstash } from '@idempotix/upstash';

// From environment variables (IDEMPOTIX_UPSTASH_REST_URL, IDEMPOTIX_UPSTASH_REST_TOKEN)
const storage = upstash();

// With explicit credentials
const storage = upstash({
  url: 'https://your-redis.upstash.io',
  token: 'your-rest-token',
});

// With options
const storage = upstash({
  url: process.env.UPSTASH_REDIS_REST_URL,
  token: process.env.UPSTASH_REDIS_REST_TOKEN,
  keyPrefix: 'myapp:idem:',
});

// With existing @upstash/redis client
import { Redis } from '@upstash/redis';
const client = new Redis({ url: '...', token: '...' });
const storage = upstash({ client });

Environment Variables

VariableDescription
IDEMPOTIX_UPSTASH_REST_URLUpstash REST endpoint (e.g., https://xyz.upstash.io)
IDEMPOTIX_UPSTASH_REST_TOKENUpstash REST token

Usage with Next.js App Router

// app/api/orders/route.ts
import { next } from '@idempotix/next';
import { upstash } from '@idempotix/upstash';

export const POST = next({ storage: upstash() })(async (req) => {
  const order = await createOrder(await req.json());
  return Response.json(order, { status: 201 });
});

Usage with Next.js Pages Router

// pages/api/orders.ts
import { pages } from '@idempotix/next/pages';
import { upstash } from '@idempotix/upstash';

export default pages({ storage: upstash() })(async (req, res) => {
  const order = await createOrder(req.body);
  res.status(201).json(order);
});

Pre-configured Factory

// lib/idempotency.ts
import { configure } from '@idempotix/next';
import { upstash } from '@idempotix/upstash';

export const idempotent = configure({
  storage: upstash(),
  ttl: '1h',
});

// app/api/orders/route.ts
import { idempotent } from '@/lib/idempotency';

export const POST = idempotent()(handler);

Vercel KV

Vercel KV is compatible with Upstash. Use the Vercel KV environment variables:

const storage = upstash({
  url: process.env.KV_REST_API_URL,
  token: process.env.KV_REST_API_TOKEN,
});

Key Prefix

All keys are prefixed with Idempotix: by default. Customize with:

const storage = upstash({ keyPrefix: 'myapp:idem:' });

License

MIT

Keywords

Idempotix

FAQs

Package last updated on 28 Jan 2026

Did you know?

Socket

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.

Install

Related posts