UNPKG

@accounter/server

Version:
50 lines 1.72 kB
/** * Placeholder strings used in demo fixtures for runtime replacement. */ export const PLACEHOLDERS = { ADMIN_BUSINESS_ID: '{{ADMIN_BUSINESS_ID}}', }; /** * Resolve admin business ID placeholders in fixture objects. * * This function performs a deep replacement of all `{{ADMIN_BUSINESS_ID}}` placeholder * strings within a fixture object by serializing to JSON, replacing all occurrences, * and deserializing back to the original type. * * @param fixture - Fixture object containing placeholders (any type) * @param adminBusinessId - The actual admin business UUID to replace placeholders with * @returns New fixture object with all placeholders replaced * * @example * ```typescript * const fixture = { * id: 'charge-123', * ownerId: '{{ADMIN_BUSINESS_ID}}', * nested: { * businessId: '{{ADMIN_BUSINESS_ID}}' * } * }; * * const resolved = resolveAdminPlaceholders(fixture, 'actual-uuid-123'); * // { * // id: 'charge-123', * // ownerId: 'actual-uuid-123', * // nested: { businessId: 'actual-uuid-123' } * // } * ``` * * @remarks * **Performance Note:** * Uses JSON serialization for deep replacement. For very large fixture objects, * consider a more optimized approach if performance becomes an issue. * * **Type Safety:** * Returns the same type as input, but type information is lost during JSON * serialization (e.g., Date objects become strings). Use with plain object fixtures. */ export function resolveAdminPlaceholders(fixture, adminBusinessId) { const json = JSON.stringify(fixture); const resolved = json.replace(/\{\{ADMIN_BUSINESS_ID\}\}/g, adminBusinessId); return JSON.parse(resolved); } //# sourceMappingURL=placeholder.js.map