/
githubmirror
/
angular
Обзор
Документация
Войти
/
githubmirror
/
angular
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/common/src/pipes/i18n_select_pipe.ts
58 строк
1 KB
arturovt
fix(common): use Object.hasOwn in I18nSelectPipe to handle null-prototype and shadowed mappings
01 июл 2026, 03:46
01 июл 2026, 03:46
311aff0
Код
Авторство
О чём код?
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import {Pipe, PipeTransform} from '@angular/core'; import {invalidPipeArgumentError} from './utils'; /** * @ngModule CommonModule * @description * * Generic selector that displays the string that matches the current value. * * If none of the keys of the `mapping` match the `value`, then the content * of the `other` key is returned when present, otherwise an empty string is returned. * * @usageNotes * * ### Example * * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'} * * @see [Built-in Pipes](guide/templates/pipes#built-in-pipes) * * @publicApi */ @Pipe({ name: 'i18nSelect', }) export class I18nSelectPipe implements PipeTransform { /** * @param value a string to be internationalized. * @param mapping an object that indicates the text that should be displayed * for different values of the provided `value`. */ transform(value: string | null | undefined, mapping: {[key: string]: string}): string { if (value == null) return ''; if (typeof mapping !== 'object' || typeof value !== 'string') { throw invalidPipeArgumentError(I18nSelectPipe, mapping); } if (Object.hasOwn(mapping, value)) { return mapping[value]; } if (Object.hasOwn(mapping, 'other')) { return mapping['other']; } return ''; } }