A lightweight TypeScript utility package for Node.js applications to retrieve secrets from Pantheon-style environment variables. It simplifies the process of fetching environment-specific and production secrets with full type safety.
You can install this package via npm:
npm install pantheon-secrets- 🔐 Secure secret management - Environment-based secret resolution
- 📦 Dual module support - Works with both ESM (
import) and CommonJS (require) - 🎯 TypeScript native - Full type safety and IntelliSense support
- 🚀 Zero dependencies - Lightweight with no external dependencies
- ✅ Well tested - Comprehensive test suite included
The package exposes a single function, pantheonGetSecret, which takes the name of a secret as a string and returns the corresponding value or null if not found.
import { pantheonGetSecret } from 'pantheon-secrets';
const mySecret = pantheonGetSecret('HELLO');
console.log(`The value of HELLO is: ${mySecret}`);
const anotherSecret = pantheonGetSecret('nonexistent');
console.log(`The value of nonexistent is: ${anotherSecret}`);
// The value of nonexistent is: nullconst { pantheonGetSecret } = require('pantheon-secrets');
const mySecret = pantheonGetSecret('HELLO');
console.log(`The value of HELLO is: ${mySecret}`);The function automatically determines which secret to use based on your application's environment variables. It first checks for a live production secret, then looks for a value specific to your current environment, and finally falls back to a default value if no other options are found. If the secret is not defined, it returns null.
npm run build # Build all formats
npm run build:esm # Build ESM only
npm run build:cjs # Build CommonJS onlynpm install # Install dependencies
npm test # Run test suitesrc/pantheon-secrets.ts- Main TypeScript sourceindex.ts- Entry point that exports from source__tests__/- Test directory containing all test filesdist/esm/- ESM build output (ESNext)dist/cjs/- CommonJS build output (ES2020)- TypeScript definitions included for both formats