Утилита интерполяции строк для JavaScript
|
|
1 год назад | |
|---|---|---|
| .husky | 1 год назад | |
| src | 1 год назад | |
| .c8rc | 2 лет назад | |
| .commitlintrc | 2 лет назад | |
| .editorconfig | 2 лет назад | |
| .gitignore | 1 год назад | |
| .mocharc.cjs | 1 год назад | |
| .prettierrc | 2 лет назад | |
| LICENSE | 1 год назад | |
| README.md | 1 год назад | |
| eslint.config.js | 1 год назад | |
| package.json | 1 год назад | |
| tsconfig.json | 2 лет назад |
Расширенная версия format из Node.js модуля
util
%s, %d и
%j%v для вывода примитивных значений и имен
конструктора%l для вывода списка через запятую
1, 2, 3Дополнительно:
Errorf с интерполяцией сообщения об
ошибкеnpm install @e22m4u/js-format
Es-импорт
import {format} from '@e22m4u/js-format';
%vСтроки оборачиваются в кавычки, остальные примитивы приводятся к строке, а для более сложных типов выводится имя конструктора.
format('> %v', 'foo'); // > "foo"
format('> %v', ''); // > ""
format('> %v', 10); // > 10
format('> %v', 0); // > 0
format('> %v', NaN); // > NaN
format('> %v', Infinity); // > Infinity
format('> %v', true); // > true
format('> %v', false); // > false
format('> %v', {foo: 'bar'}); // > Object
format('> %v', new Date()); // > Date
format('> %v', new Map()); // > Map
format('> %v', () => 10); // > Function
format('> %v', undefined); // > undefined
format('> %v', null); // > null
Спецификатор %v проектировался для вывода значений в
сообщениях об ошибке, когда важно иметь представление об их типах. При
этом, вывод содержимого объекта может быть избыточен для такой задачи.
По этой причине, объекты приводятся к имени конструктора, что позволяет
относительно точно определить тип выводимого значения.
class MyClass {}
format('> %v', 'MyClass'); // > "MyClass"
format('> %v', MyClass); // > MyClass
format('> %v', new MyClass()); // > MyClass (экземпляр)
%lВывод элементов массива через запятую.
format('> %l', ['foo', 10, true]); // > "foo", 10, true
Элементы массива приводятся к строке по логике спецификатора
%v
format('> %l', ['foo']); // > "foo"
format('> %l', ['']); // > ""
format('> %l', [10]); // > 10
format('> %l', [0]); // > 0
format('> %l', [NaN]); // > NaN
format('> %l', [Infinity]); // > Infinity
format('> %l', [true]); // > true
format('> %l', [false]); // > false
format('> %l', [{foo: 'bar'}]); // > Object
format('> %l', [new Date()]); // > Date
format('> %l', [new Map()]); // > Map
format('> %l', [() => 10]); // > Function
format('> %l', [undefined]); // > undefined
format('> %l', [null]); // > null
Конструктор класса Errorf передает аргументы функции
format для формирования сообщения об ошибке.
Пример:
import {Errorf} from '@e22m4u/js-format';
throw new Errorf(
'It requires one of %l, but %v given.',
[true, false, 'y', 'n'],
new Map(),
);
// Error: It requires one of true, false, "y", "n", but Map given.
npm run test
MIT