@flagpole/node
v0.0.1
Published
Node.js SDK for Flagpole feature flag management system
Maintainers
Readme
Flagpole Node.js SDK
Server-side Node.js SDK for the Flagpole feature flag management system. Provides real-time feature flag updates, caching, Express.js middleware, decorators, and comprehensive server-side feature flag management.
Installation
npm install @flagpole/node socket.io-client node-fetch
# or
yarn add @flagpole/node socket.io-client node-fetchQuick Start
Basic Usage
import { FlagpoleClient } from '@flagpole/node';
const client = new FlagpoleClient({
apiKey: 'your-api-key-here',
environments: ['development'],
cache: {
enabled: true,
ttl: 300, // 5 minutes
},
fallbacks: {
'new-feature': false,
},
});
// Initialize client
await client.initialize();
// Check feature flags
const isEnabled = await client.isFeatureEnabled('new-feature');
console.log('Feature enabled:', isEnabled);
// With evaluation context
const isPremium = await client.isFeatureEnabled('premium-feature', {
userId: 'user-123',
userType: 'premium',
});Express.js Integration
import express from 'express';
import {
FlagpoleClient,
flagpoleMiddleware,
requireFeatureFlag,
} from '@flagpole/node';
const app = express();
const client = new FlagpoleClient({ apiKey: 'your-api-key' });
// Use middleware
app.use(flagpoleMiddleware(client));
// Protected route
app.get('/beta', requireFeatureFlag('beta-access'), (req, res) => {
res.json({ message: 'Beta feature!' });
});
// Check flags in route handler
app.get('/dashboard', async (req, res) => {
const showAdvanced = await req.flagpole!.isFeatureEnabled(
'advanced-dashboard'
);
res.json({ advanced: showAdvanced });
});Features
✅ Real-time Updates - WebSocket integration for instant flag changes
✅ Caching - Built-in memory cache with TTL support
✅ Express Middleware - Easy integration with Express.js applications
✅ Decorators - Method and class decorators for clean code
