New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

@schematichq/schematic-typescript-cloudflare

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@schematichq/schematic-typescript-cloudflare

Cloudflare KV adapter for Schematic SDK

latest
npmnpm
Version
0.3.0
Version published
Weekly downloads
107
-78.12%
Maintainers
4
Weekly downloads
 
Created
Source

Schematic Cloudflare Node

Cloudflare KV cache adapter for Schematic SDK.

Installation

npm install @schematichq/schematic-typescript-cloudflare

Usage

With Schematic SDK

import { SchematicClient, type CheckFlagWithEntitlementResponse } from "@schematichq/schematic-typescript-node";
import { CloudflareKVCache } from "@schematichq/schematic-typescript-cloudflare";

// Inside a Cloudflare Worker
export default {
  async fetch(request, env, ctx) {
    // Create a CloudflareKVCache instance
    const cache = new CloudflareKVCache<CheckFlagWithEntitlementResponse>(env.MY_KV_NAMESPACE, {
        ttl: 1000 * 60 * 60, // 1 hour
      });
    
    // Initialize Schematic with the cache
    const schematic = new SchematicClient({
      apiKey: env.SCHEMATIC_API_KEY,
      cacheProviders: {
        flagChecks: [cache],
      }});
    // Your application logic...
  }
};

API

KVNamespace Interface

interface KVNamespace {
  get<T>(key: string, type: 'json'): Promise<T | null>;
  put(key: string, value: string, options?: { expirationTtl?: number }): Promise<void>;
  delete(key: string): Promise<void>;
  list(options?: { prefix?: string }): Promise<{ keys: Array<{ name: string }> }>;
}

The interface matches the Cloudflare Workers KV API, including support for typed get<T>() operations for enhanced type safety.

CloudflareKVCache

class CloudflareKVCache<T> {
  constructor(
    kvNamespace: KVNamespace,
    options?: {
      keyPrefix?: string;  // Default: 'schematic:'
      ttl?: number;        // Default: 5000ms
    }
  );

  get(key: string): Promise<T | undefined>;
  set(key: string, value: T, ttlOverride?: number): Promise<void>;
  delete(key: string): Promise<void>;
  deleteAllExcept(keysToKeep: string[]): Promise<void>;
  clear(): Promise<void>;
}

License

MIT

Keywords

schematic

FAQs

Package last updated on 02 Mar 2026

Related posts