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

@oncely/upstash

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

@oncely/upstash

Upstash Redis adapter for oncely idempotency

latest
Source
npmnpm
Version
1.0.3
Version published
Maintainers
1
Created
Source

@oncely/upstash

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

npm version

Installation

npm install @oncely/core @oncely/upstash

Quick Start

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

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

Configuration

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

// From environment variables (ONCELY_UPSTASH_REST_URL, ONCELY_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
ONCELY_UPSTASH_REST_URLUpstash REST endpoint (e.g., https://xyz.upstash.io)
ONCELY_UPSTASH_REST_TOKENUpstash REST token

Usage with Next.js App Router

// app/api/orders/route.ts
import { next } from '@oncely/next';
import { upstash } from '@oncely/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 '@oncely/next/pages';
import { upstash } from '@oncely/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 '@oncely/next';
import { upstash } from '@oncely/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 oncely: by default. Customize with:

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

License

MIT

Keywords

oncely

FAQs

Package last updated on 25 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