- Тайпинги для
no.jsetter.*
.
- [no.jpath] Исправлен позорный баг. Скомпилированные jpath'ы не сохранялись в кэш.
- Убрано поле
engines
изpackage.json
.
-
[no.jsetter] Поддержка динамических ключей в объектах. Например:
no.jsetter( '.foo[ key ]' )( data, { key: 'bar' }, value ) no.jsetter( '.foo[ key ].quu' )( data, { key: 'bar' }, value )
- [no.date] Поддержка %e в no.date #32
-
Почищен
no.jpath
. Удалены все заделы для teya, которые так и не пригодились (типы в частности). Доки для jpath. -
Добавлен jsetter.
- Правильные .d.ts для date/number/events.
- Typings для
no.Events
.
- На этот раз на самом деле добавляем
index.d.ts
.
- Добавлен
lib/index.d.ts
.
- [no.promise] Метод
abort
для промисов, тригерящий событиеabort
на себе, если промис еще не зарезолвлен.
-
[no.jpath] Пофикшен баг с такими, например, jpath'ами:
no.jpath( '.result.*{ .is_active === true }', data )
- При генерации тернарного оператора, оборачиваем его целиком в
( ... )
.
-
BREAKING. Для браузера нужно использовать сборку через browserify. Например:
// test.js var no = require('nommon/lib/no.jpath.js'); var foobar = no.jpath( '.foo.bar', { foo: { bar: 42 } } ); console.log( foobar );
Сборка:
browserify test.js > _test.js
-
[no.jpath] Пофикшены внешние функции. Например:
no.jpath.defunc( 'upper_case', function( x ) { return ( x || '' ).toUpperCase(); } ); var result = no.jpath.string( 'hello-{ upper_case( .hello ) } );
- [no.jpath] Обнаружен и частично пофикшен баг #30.
- [no.jpath] Тернарный оператор.
- Фикс в
no.number.format
. Проверяем, что передали число.
- В
lib/index.js
добавлен забытыйrequire( './no.number.js' );
.
no.string.group_sep
.no.number.format
.
- Немного локализации в
no.date.js
.
- В
package.json
забыт файлlib/no.js
.
-
Важно! Смена движка
jpath
-ов.Скорее всего, у вас все сломается. Не двигайте версию выше
0.0.32
, если вы не знаете точно, что делаете.
- Методы
no.array.uniq
,no.array.union
. no.Watcher
.
- Метод
no.object.is_empty()
.
- Вернулся в строй модуль
no.future.js
.
no.promise
может принимать теперь объект (а не только массив).
-
Не используем больше нигде
instanceof Array
т.к. это не работет в файлах, исполняемых через разные виды eval'а. -
[shims/string] Не трогаем прототип, все уносим в
no.string.*
. При eval'е файлов, очень трудно добиться, чтобы в них работали методы из, например,String.prototype
.
- [shims/string]
String.prototype.repeat
иString.prototype.padLeft
. - [no.date] Подключаем
shims/string.js
.
- [no.date] Формат
%f
для того, чтобы выводить секунды с точностью до одной тысячной.
- [no.date] Простой форматер дат.
-
[no.jpath] "Внешние" функции а-ля
yate
:no.jpath.expr( '"http://yandex.ru/yandsearch?text={ encode(.text) }"', // Variables null, // Functions { encode: function(s) { return encodeURIComponent(s) } } )
Подробности и дальнейшая дискуссия: #18.
-
[no.jpath] Short-circuit evaluation для
&&
и||
. Т.е. теперь.foo || 42
вычислится в 42, если.foo
ложно, а не вtrue
.