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 🙏

© 2024 – Pkg Stats / Ryan Hefner

array-nocomplex

v0.0.22

Published

Array.prototype augmentations, no complex

Downloads

33

Readme

Array.nocomplex

Build Status

Introduction

Array.prototype augmentations, no complex.

I know this is bad but _( _( _( this ).is ).ugly() while this.is.clean(). Furthemore, I promise to modify all .prototype invocations on modules that are becoming popular.

## Array.prototype ###

All helpers are atomised in AMD modules. You can use it for instance with require.js or almond.js.

You can require juste one, such as map ( define('myModule', ['Array.nocomplex/map']); ) or group exists, such as Array/basics, Array/math or Array.nocomplex/all

Basics

Array/basics provide the following :

  • map
  • collect
  • first
  • has
  • last
  • onEls
  • remove
  • removeOneValue * except
  • exceptFn
  • uniq
  • equals

map

    [10,20].map(function(n) { return n * 2 }); // [20, 40]

collect

Such as map, but provide a useful tricks :

    [{ name : 'cyril'}, { name : 'piercus'}].collect('name') // ['cyril', 'piercus']

send

Useful, allow you to call a method on each element of the array

[{ callMe : function(arg) { console.log(arg)}}, { callMe : function() { console.log('world')}}].send('callMe', 'hello'); // log 'hello' and then 'world'

#### where Return a new array with all found occurences

find

Return the first found occurence wich evaluate to true

first

Return array[0]

has

Return true if instance has value

['cyril', 'piercus'].has('cyril'); // true

onEls

Replaces every element of this with f(element)

remove

If found, the argument is removed from the array

last

Return the last element of the array

except

Return a new array without the element that are the same at the argument

#### isIn

equals

each

Math

Useful helpers when dealing with geometry.

Array/math provide the following :

  • equals
  • multiply
  • divide
  • minus
  • add
  • round
  • norm

Demo

See cagosta.github.io/Array.nocomplex

## Install ##

Array.nocomplex is coded as amd module but can be installed with npm, bower or old-fashioned src=".min.js".

With npm:

npm install array-nocomplex

and use it with nodejs:

var ArrayNocomplex = require('array-nocomplex')

With bower:

bower install Array.nocomplex

and use it with requirejs

require(['Array.nocomplex/Array.nocomplex'], function( ArrayNocomplex ){

})

With src=" .min.js"

Inside the dist folder, download latest standalone minified version or development version and include it in your html page:

<script src="[path_to_source]/Array.nocomplex-latest-standalone-min.js%>"></script>

The module is available via the scope

window.ArrayNocomplex

## Documentation ##

See jsdoc-generated documentation in /documentation

Folder Structure

app         ->  development files
|- bower_components          ->  [bower](https://github.com/bower/bower) front-end packages
|- main.js                   ->  main file for browser and node.js, handle AMD config
|- array.nocomplex   -> main AMD module
test        ->  unit tests
|
tasks       -> [Grunt](http://gruntjs.com/) tasks, see [generator-mangrove-module](https://github.com/cagosta/generator-mangrove-module)
|
dist        ->  distribution & build files
|
node_modules -> node packages
|
documentation  -> [jsdoc](http://usejsdoc.org/about-jsdoc3.html) generated documentation 

Run unit tests

On the browser

Run grunt test:browser and open test/ on your browser.

#### On a headless browser ####

grunt test:headless will run your tests in a headless browser, with phantomjs and mocha

On node

grunt test:node will run your tests with node and mocha.

Because of requirejs, the mocha command does not work.

To do

  • check future default implementations
  • base all naming on lodash

Build your own

This project uses Node.js, Grunt and Require.js for the build process. If for some reason you need to build a custom version install Node.js, npm install and run:

grunt build

## Yeoman Mangrove module Generator ##

This module is based on a Yeoman generator: Generator-mangrove-module
Check it for task-related references such as build, deploy etc ..

License

MIT License

Authors