UNPKG

@t1mmen/srtd

Version:

Supabase Repeatable Template Definitions (srtd): 🪄 Live-reloading SQL templates for Supabase DX. Make your database changes reviewable and migrations maintainable! 🚀

43 lines • 1.57 kB
/** * Interpolation utility for migration filename templates * Supports $timestamp, $migrationName, and $prefix variables */ /** * Interpolate a migration filename template with the provided values. * * Supported variables: * - $timestamp: The migration timestamp * - $migrationName: The template name (or 'bundle' for bundled migrations) * - $prefix: The migration prefix with trailing dash (empty if no prefix) * * @example * // Default pattern (backward compatible) * interpolateMigrationFilename({ * template: '$timestamp_$prefix$migrationName.sql', * timestamp: '20240101123456', * migrationName: 'create_users', * prefix: 'srtd' * }); * // Returns: '20240101123456_srtd-create_users.sql' * * @example * // Directory-based pattern (Issue #41) * interpolateMigrationFilename({ * template: '$migrationName/migrate.sql', * timestamp: '20240101123456', * migrationName: 'create_users', * prefix: 'srtd' * }); * // Returns: 'create_users/migrate.sql' */ export function interpolateMigrationFilename(options) { const { template, timestamp, migrationName, prefix } = options; // Prefix gets a trailing dash when it exists, empty string otherwise const prefixValue = prefix ? `${prefix}-` : ''; // Use replacer functions to prevent special replacement patterns (e.g., $&, $`) return template .replace(/\$timestamp/g, () => timestamp) .replace(/\$migrationName/g, () => migrationName) .replace(/\$prefix/g, () => prefixValue); } //# sourceMappingURL=interpolateMigrationFilename.js.map