
Security News
Crates.io Users Targeted by Phishing Emails
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
@delicious-simplicity/typekey
Advanced tools
TypeScript library for generating cache keys with type safety
A TypeScript library for generating consistent, type-safe cache keys from a structured dictionary. It ensures cache keys are predictable by sorting cache key parameters and supports configurable key length limits.
import { KeyDictionary, type KeyPrefixConfig } from "typekey";
const dict = {
user: ["id"] as const,
} satisfies KeyPrefixConfig;
const keyDictionary = new KeyDictionary(dict);
keyDictionary.generateKey("user", { id: 1 });
// => 'user:["1"]'
KeyDictionary
classGenerates cache keys based on a provided configuration of prefixes and parameters.
config
(required): An object specifying the prefixes and their associated parameter names. See KeyPrefixConfig
type. All declared parameters are required (even if null
or undefined
)options
(optional): An object to configure the key dictionary. See KeyDictionaryOptions
type.generateKey(prefix, params)
Generates a cache key for the specified prefix with itsz parameters.
prefix
(required): The prefix to use for the generated key. Must be one of the keys from the config
object passed to the constructor.params
(required): An object containing the parameter values for the specified prefix. The parameter names must match those defined in the config
object for the given prefix.Returns: The generated cache key as a string.
Throws:
KeyDictionaryError
if throwOnMaxLengthViolation
is enabled and the generated key exceeds the configured maxKeyLength
.Error
if a required parameter is missing or if an unexpected parameter is provided.KeyPrefixConfig
An object where the keys are prefixes and the values are arrays of parameter names associated with each prefix.
KeyDictionaryOptions
Configuration options for the key dictionary.
Properties:
maxKeyLength
(optional): The maximum allowed length for generated keys. Defaults to Number.POSITIVE_INFINITY
.throwOnMaxLengthViolation
(optional): Whether to throw an error if a generated key exceeds maxKeyLength
. If set to true
, maxKeyLength
must be provided. Defaults to false
.FAQs
TypeScript library for generating cache keys with type safety
We found that @delicious-simplicity/typekey demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Product
Socket now lets you customize pull request alert headers, helping security teams share clear guidance right in PRs to speed reviews and reduce back-and-forth.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.