compatx
v0.1.8
Published
🌴 Gradual feature flags.
Downloads
2,263,136
Readme
compatx
🌴 Compatibility toolkit.
[!NOTE] This is a WIP toolkit. See RFC for initial motivations.
Install
# ✨ Auto-detect
npx nypm install -D compatx
# npm
npm install -D compatx
# yarn
yarn add -D compatx
# pnpm
pnpm install -D compatx
# bun
bun install -D compatx
Utils
formatCompatibilityDate(input)
Format compatibility date spec to a string
formatDate(date)
Format a date to a YYYY-MM-DD
string
Example:
formatDateString(new Date("2021/01/01")) // "2021-01-01"
getCompatibilityChanges(allUpdates, compatibilityDate1, compatibilityDate2)
Get compatibility changes between two dates.
getCompatibilityUpdates(allUpdates, compatibilityDate)
Get compatibility updates applicable for the user given platform and date range.
platforms
- Type:
array
- Default:
["aws","azure","cloudflare","deno","firebase","netlify","vercel"]
resolveCompatibilityDates(input?, defaults?)
Normalize the compatibility dates from input config and defaults.
resolveCompatibilityDatesFromEnv(overridesInput?)
Resolve compatibility dates with environment variables as defaults.
Environment variable name format is COMPATIBILITY_DATE
for default and COMPATIBILITY_DATE_<PLATFORM>
for specific platforms.
Types
import type {
// Typed date string in `YYYY-MM-DD` format
DateString,
// Platform names
PlatformName,
// Compatibility dates
CompatibilityDateSpec,
CompatibilityDates,
// Compatibility updates
CompatibilityUpdate,
CompatibilityUpdates
} from "./types";
Development
- Clone this repository
- Install latest LTS version of Node.js
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run interactive tests using
pnpm dev
License
Made with 💛
Published under MIT License.