promptdeploy
v0.1.2
Published
SDK for PromptDeploy — fetch and render versioned prompts at runtime
Readme
promptdeploy
JavaScript / TypeScript SDK for PromptDeploy — fetch and render versioned prompts at runtime.
Install
npm install promptdeployQuick start
import { PromptDeploy } from 'promptdeploy';
const pd = new PromptDeploy({
apiKey: process.env.PROMPTDEPLOY_API_KEY,
projectId: 'your-project-slug',
env: 'production', // 'production' | 'staging' | 'development'
});
// Render a prompt server-side with variables
const text = await pd.render('welcome-email', {
variables: { name: 'Alice', plan: 'Pro' },
});
// Fetch the raw template and render locally
const tmpl = await pd.get('welcome-email');
const text2 = tmpl.render({ name: 'Bob', plan: 'Free' });API
new PromptDeploy(options)
| Option | Type | Default | Description |
| ----------- | -------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
| apiKey | string | required | API key from your project settings |
| projectId | string | — | Project slug. Recommended — the API will reject the request if the key belongs to a different project |
| env | string | 'production' | Default environment to resolve prompts against |
| cacheTtl | number | 60 | In-memory cache TTL in seconds |
| cacheSize | number | 100 | Max cached entries |
| baseUrl | string | https://api.promptdeploy.dev/v1 | Override for self-hosted instances |
pd.render(slug, options) → Promise<string>
Renders a prompt server-side. Variables are interpolated by the API.
const text = await pd.render('onboarding', {
variables: { userName: 'Alice' },
env: 'staging', // override instance env for this call
});pd.get(slug, options?) → Promise<TemplateResult>
Fetches the raw template. Returns an object with:
template— raw template stringversion— version numberenv— resolved environmentrender(variables, options?)— render locally (no network call)extractVariables()— list variable names detected in the template
const tmpl = await pd.get('system-prompt');
console.log(tmpl.extractVariables()); // ['role', 'context']
const rendered = tmpl.render({ role: 'assistant', context: '...' });pd.getTemplate(slug, options?) → Promise<string>
Shorthand — fetches and returns just the raw template string.
Template syntax
Variables use {{double-brace}} syntax:
Hello, {{name}}! Your plan is {{plan}}.Unknown variables throw by default. Pass strict: false to leave them as-is:
tmpl.render({ name: 'Alice' }, { strict: false });Caching
Fetched templates are cached in memory (LRU). The cache is per-instance, so create one shared instance per process rather than per-request.
License
MIT
