npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

groovy.utils

v0.0.10

Published

Реализация некоторых полезных функций из Groovy на Javascript

Downloads

14

Readme

groovy.utils

Реализация некоторых полезных функций из Groovy на Javascript

Установка

bower install groovy.utils

Все функции имеют два первых необязательных аргумента. Если:

  1. передано два аргумента, то это colletion и handler, в качестве контекста используется контекст функции.
  2. передан один аргумент, то это handler. Коллекция берется из контекста функции и она же используется как контекст.

Таким образом можно привязать коллекцию к функции в виде контекста

var myCollectionEach = each.bind([1, 2, 3]);
myCollectionEach(function(value, key, index){ /* ... */ });

Collection

В документации под коллекцией подразумевается Array, Object, FileList, HTMLCollection, jQuery или NodeList. С этими объектами функции работают правильно. Список будет дополняться.

each

Collection each([collection, context], handler)

Вызывает принятый обработчик в заданном или глобальном контексте, для каждого элемента коллекции и возвращает исходный объект

each([1,2,3], console, function(value, key, index){
  this.log(value, key, index);
});

grep

Array|Object grep([collection, context], handler)

Отфильтрует коллекцию и вернет новую в виде массива или объекта, в зависимости от того что было указано в качестве коллекции.

grep([1,2,3,4], function(value){ return value % 2 === 0; });

collect

Array|Object collect([collection, context], handler)

Вызывает принятый обработчик, в заданном или глобальном контексте, для каждого элемента коллекции и использует резутат вызова как новое значение для этих элементов. Вернет либо новый массив, либо новый объект, в зависимости от того что было указано в качестве коллекции.

collect([1,2,3], function(value, key, index){ return value * index; }); // [0, 2, 6]

collectEntries

Array|Object collectEntries([collection, context], handler)

Вызывает принятый обработчик, в заданном или глобальном контексте, для каждого элемента коллекции и использует резутат вызова как новые ключ и значение для этих элементов. Если обработчик вернул false, элемент не попадет в новую коллекцию. Вернет новую коллекцию в виде массива или объекта, в зависимости от того что было указано в качестве коллекции.

collectEntries({a: 10, b: 20}, function(value, key, index){ return [key.toUpperCase(), value * 10]; }); // {A: 100, B: 200}

fs

String fs(format, args[, cusomMods])

Выводит строку отформатированную в соответствии с указанным форматом. Принцип работы похож на функцию printf в PHP или System.out.format в Java, только адаптированный под требования javascript.

Синтаксис ключей

  • %s - без аргументов
  • ${su} - без агрументов
  • ${sr:foo,bar} - с аргументами

Строковые (интерпретируют аргумент как строку)

  • s - отобразить как есть
  • sU - привести к верхнему регистру
  • su - привести первый символ каждого слова к верхнему регистру
  • sL - привести к нижнему регистру
  • sl - привести первый символ каждого слова к нижнему регистру
  • seu - кодировать функцией encodeURIComponent
  • sdu - декодировать функцией decodeURIComponent
  • sr:from,to - заменить подстроку указанную в первом параметре на подстроку указанную во втором

Числовые (аргумент интерпретируется как число)

  • d - отобразить как есть
  • df:num - добавить дробную часть указанной длины (два, по умолчанию)
  • de:num - научная нотация в нижнем регистре (в параметре кол-во знаков после запятой)
  • dE:num - научная нотация в верхнем регистре (в параметре кол-во знаков после запятой)
  • dh - как шестнадцатиричное число в нижнем регистре
  • dH - как шестнадцатиричное число в верхнем регистре
  • db - как бинарное число
  • do - как восьмиричное число
  • dn:from,to - переводит в из указанной системы в указанную систему счисления (по умлочанию 10)

Массивы (аргумент будет привен к массиву, если не является таковым, и у него будет вызван метод join)

  • a - элементы через запятую + побел ', '
  • as:str - конкатенация элементов указаной подстрокой (по умолчанию запятая)

JSON (аргумент будет прведен к массиву, если не является массивом или объктом)

  • j - будет использована функция JSON.stringify
fs("Меня зовут %su и мне ${dn:16} лет", ["виктор", 19]) // Меня зовут Виктор и мне 25 лет