@flicknote/integration-utils
v6.0.0
Published
Shared KV utilities for FlickNote integrations
Maintainers
Readme
@flicknote/integration-utils
Shared KV utilities for FlickNote integrations with Cloudflare Workers.
Installation
npm install @flicknote/integration-utilsUsage
Core Setup
import { KeyBuilder } from '@flicknote/integration-utils/core';
// Initialize KeyBuilder with your key patterns
const keyBuilder = new KeyBuilder(yourKeyPatterns);Telegram Integration
import { TelegramKVOperations } from '@flicknote/integration-utils/integrations/telegram';
const telegramOps = new TelegramKVOperations(kv, keyBuilder);
// Generate binding code
const { code, expiresIn } = await telegramOps.generateBinding(userId);
// Link Telegram user
await telegramOps.linkTelegramUser(userId, telegramId, username);
// Get user mappings
const telegramId = await telegramOps.getTelegramId(userId);
const userId = await telegramOps.getUserId(telegramId);
// Settings management
const settings = await telegramOps.getSettings(userId);
await telegramOps.updateSettings(userId, { send_confirmation: false });Key Patterns
Each integration provides key patterns for KV storage:
import { telegramKeyPatterns } from '@flicknote/integration-utils/integrations/telegram';
import { discordKeyPatterns } from '@flicknote/integration-utils/integrations/discord';
// Register patterns with your KeyBuilder
const keyBuilder = new KeyBuilder({
...telegramKeyPatterns,
...discordKeyPatterns,
// your custom patterns
});TypeScript Support
Full TypeScript support with exported types:
import type {
TelegramIntegrationData,
TelegramSettings,
BindingCodeData
} from '@flicknote/integration-utils/integrations/telegram';Cloudflare Workers Integration
This package is designed for Cloudflare Workers:
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const kv = env.INTEGRATION_BINDING; // Your KV namespace
const keyBuilder = new KeyBuilder(keyPatterns);
const telegramOps = new TelegramKVOperations(kv, keyBuilder);
// Use the operations...
}
};License
MIT
Contributing
Issues and pull requests are welcome at GitHub.
