{"id":16728068,"url":"https://github.com/broadsw0rd/vectory","last_synced_at":"2025-03-21T21:31:09.302Z","repository":{"id":42204060,"uuid":"49771057","full_name":"broadsw0rd/vectory","owner":"broadsw0rd","description":"High performant, DevTools friendly, Crankshaft tolerant 2d vectors","archived":false,"fork":false,"pushed_at":"2022-12-09T07:19:00.000Z","size":1147,"stargazers_count":6,"open_issues_count":15,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-18T05:13:18.737Z","etag":null,"topics":["math","vector","vector2","vector2d"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/broadsw0rd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-16T11:42:37.000Z","updated_at":"2019-09-18T13:14:43.000Z","dependencies_parsed_at":"2023-01-25T12:15:19.814Z","dependency_job_id":null,"html_url":"https://github.com/broadsw0rd/vectory","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadsw0rd%2Fvectory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadsw0rd%2Fvectory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadsw0rd%2Fvectory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadsw0rd%2Fvectory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broadsw0rd","download_url":"https://codeload.github.com/broadsw0rd/vectory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244874156,"owners_count":20524576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["math","vector","vector2","vector2d"],"created_at":"2024-10-12T23:08:33.969Z","updated_at":"2025-03-21T21:31:08.820Z","avatar_url":"https://github.com/broadsw0rd.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eVectory\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eHigh performant, DevTools friendly, Crankshaft tolerant 2d vectors\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://www.npmjs.com/package/vectory\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://img.shields.io/npm/v/vectory.svg\" alt=\"NPM version\" target=\"_blank\"\u003e\u003c/img\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://travis-ci.org/broadsw0rd/vectory\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://travis-ci.org/broadsw0rd/vectory.svg?branch=master\" alt=\"Build Status\" target=\"_blank\"\u003e\u003c/img\u003e\n   \u003c/a\u003e\n   \u003ca href='https://coveralls.io/github/broadsw0rd/vectory?branch=master' target=\"_blank\"\u003e\n      \u003cimg src='https://coveralls.io/repos/broadsw0rd/vectory/badge.svg?branch=master\u0026service=github' alt='Coverage Status' /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://www.bithound.io/github/broadsw0rd/vectory\"\u003e\n      \u003cimg src=\"https://www.bithound.io/github/broadsw0rd/vectory/badges/score.svg\" alt=\"bitHound Overall Score\"\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/feross/standard\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat\" alt=\"js-standard-style\"\u003e\u003c/img\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\nYet another 2d vector implementation for basic motion\n\n``` js\nthis.velocity.iadd(this.acceleration)\nthis.position.iadd(this.velocity)\nthis.acceleration.zero()\n```\n\nwith rare methods such as [lerp](https://en.wikipedia.org/wiki/Linear_interpolation)\n\n``` js\nvar prev = new Vector(1, 2)\nvar next = new Vector(3, 4)\nprev.lerp(next, 0.5) // Vector(2, 3)\n```\n\nand [swizzling](https://www.opengl.org/wiki/Data_Type_%28GLSL%29#Swizzling)\n\n``` js\nvar vector = new Vector(1 ,2)\nvector.yx // Vector(2, 1)\n```\n\nwith some ES6 support\n\n``` js\nvar vector = new Vector(0, 0)\nvar vec3 = [...vector, 0] // [0, 0, 0]\n```\n\nand FP ability\n\n``` js\n// create vectors from raw data and scale them twice\nvar data = [[1, 2], [3, 4]/*,  ... */]\nvar vectors = data.map(Vector.from).map(Vector.mul.bind(null, 2))\n```\n\n## Table of Contents\n\n- [Features](#features)\n- [Install](#install)\n- [Usage](#usage)\n- [Support](#support)\n- [API](#api)\n- [Benchmark](#benchmark)\n- [Development](#development)\n\n## Features\n\n- Designed with performance in mind\n- Simple - [371 LOC](https://github.com/broadsw0rd/vectory/blob/master/dist/vectory.js#371)\n- Lightweight - [4.5 Kb](https://github.com/broadsw0rd/vectory/blob/master/dist/vectory.min.js)\n- Well tested - [100% code coverage](https://coveralls.io/github/broadsw0rd/vectory?branch=master)\n- Rich [api](#api) - 33 methods\n\n## Install\n\n```\nnpm install --save vectory\n```\n\n```js\nimport Vector from 'vectory'\nvar position = new Vector(0, 0)\n```\n\nor\n\n```html\n\u003cscript src=\"https://rawgit.com/broadsw0rd/vectory/master/dist/vectory.min.js\"\u003e\u003c/script\u003e\n```\n\n```js\nvar position = new Vector(0, 0)\n```\n\n## Usage\n\nFollow [this link](https://processing.org/tutorials/pvector/) to read more about vectors' usage in the Daniel Shiffman's article\n\n## Support\n\n- Latest Chrome, FF, Safari\n- IE 9+\n- Node 4+\n\n## API\n\n**Creation**\n\n- [x] [`new Vector(x, y)`](https://github.com/broadsw0rd/vectory/blob/master/src/vector.js#L1)\n- [x] [`Vector.from([x, y])`](https://github.com/broadsw0rd/vectory/blob/master/src/creation.js#L3)\n- [x] [`Vector.fromAngle(angle, magnitude)`](https://github.com/broadsw0rd/vectory/blob/master/src/creation.js#L7)\n- [x] [`Vector.parse(string)`](https://github.com/broadsw0rd/vectory/blob/master/src/creation.js#L11)\n\n**Addition**\n\n- [x] [`Vector.add(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/addition.js#L3)\n- [x] [`Vector.prototype.add(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/addition.js#L7)\n- [x] [`Vector.iadd(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/addition.js#L11)\n- [x] [`Vector.prototype.iadd(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/addition.js#L15)\n\n**Substraction**\n\n- [x] [`Vector.sub(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/substraction.js#L3)\n- [x] [`Vector.prototype.sub(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/substraction.js#L7)\n- [x] [`Vector.isub(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/substraction.js#L11)\n- [x] [`Vector.prototype.isub(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/substraction.js#L15)\n\n**Multiplication**\n\n- [x] [`Vector.mul(scalar, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/multiplication.js#L3)\n- [x] [`Vector.prototype.mul(scalar)`](https://github.com/broadsw0rd/vectory/blob/master/src/multiplication.js#L7)\n- [x] [`Vector.imul(scalar, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/multiplication.js#L11)\n- [x] [`Vector.prototype.imul(scalar)`](https://github.com/broadsw0rd/vectory/blob/master/src/multiplication.js#L15)\n\n**Division**\n\n- [x] [`Vector.div(scalar, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/division.js#L3)\n- [x] [`Vector.prototype.div(scalar)`](https://github.com/broadsw0rd/vectory/blob/master/src/division.js#L7)\n- [x] [`Vector.idiv(scalar, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/division.js#L11)\n- [x] [`Vector.prototype.idiv(scalar)`](https://github.com/broadsw0rd/vectory/blob/master/src/division.js#L15)\n\n**Linear interpolation**\n\n- [x] [`Vector.lerp(one, another, t)`](https://github.com/broadsw0rd/vectory/blob/master/src/lerp.js#L3)\n- [x] [`Vector.prototype.lerp(vector, t)`](https://github.com/broadsw0rd/vectory/blob/master/src/lerp.js#L7)\n\n**Normalization**\n\n- [x] [`Vector.normalized(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/normalization.js#L3)\n- [x] [`Vector.prototype.normalized()`](https://github.com/broadsw0rd/vectory/blob/master/src/normalization.js#L7)\n- [x] [`Vector.normalize(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/normalization.js#L18)\n- [x] [`Vector.prototype.normalize()`](https://github.com/broadsw0rd/vectory/blob/master/src/normalization.js#L22)\n\n**Magnitude**\n\n- [x] [`Vector.magnitude(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/magnitude.js#L3)\n- [x] [`Vector.prototype.magnitude()`](https://github.com/broadsw0rd/vectory/blob/master/src/magnitude.js#L7)\n\n**Dot product**\n\n- [x] [`Vector.dot(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/dot-product.js#L3)\n- [x] [`Vector.prototype.dot(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/dot-product.js#L7)\n\n**Distance**\n\n- [x] [`Vector.distance(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/distance.js#L3)\n- [x] [`Vector.prototype.distance(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/distance.js#L7)\n\n**Angle computing**\n\n- [x] [`Vector.angleOf(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/angle.js#L3)\n- [x] [`Vector.prototype.angleOf()`](https://github.com/broadsw0rd/vectory/blob/master/src/angle.js#L7)\n- [x] [`Vector.angleTo(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/angle.js#L11)\n- [x] [`Vector.prototype.angleTo(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/angle.js#L15)\n\n**Rotation**\n\n- [x] [`Vector.rotate(theta, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/rotation.js#L13)\n- [x] [`Vector.prototype.rotate(theta)`](https://github.com/broadsw0rd/vectory/blob/master/src/rotation.js#L17)\n- [x] [`Vector.irotate(theta, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/rotation.js#L21)\n- [x] [`Vector.prototype.irotate(theta)`](https://github.com/broadsw0rd/vectory/blob/master/src/rotation.js#L25)\n\n**Resetting**\n\n- [x] [`Vector.reset(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L3)\n- [x] [`Vector.prototype.reset(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L7)\n- [x] [`Vector.zero(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L13)\n- [x] [`Vector.prototype.zero()`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L17)\n- [x] [`Vector.set(x, y, vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L23)\n- [x] [`Vector.prototype.set(x, y)`](https://github.com/broadsw0rd/vectory/blob/master/src/resetting.js#L27)\n\n**Copy**\n\n- [x] [`Vector.copy(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/copy.js#L3) (alias `Vector.clone(vector)`)\n- [x] [`Vector.prototype.copy()`](https://github.com/broadsw0rd/vectory/blob/master/src/copy.js#L7) (alias `Vector.prototype.clone(vector)`)\n\n**Convertion**\n\n- [x] [`Vector.toJSON(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L3)\n- [x] [`Vector.prototype.toJSON()`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L7)\n- [x] [`Vector.toString(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L11)\n- [x] [`Vector.prototype.toString()`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L15)\n- [x] [`Vector.prototype[Symbol.toStringTag]`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L21) (Latest Chrome and FF or shim)\n- [x] [`Vector.toArray(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L24)\n- [x] [`Vector.prototype.toArray()`](https://github.com/broadsw0rd/vectory/blob/master/src/convertion.js#L28)\n\n\n**Equality**\n\n- [x] [`Vector.equals(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/equality.js#L4)\n- [x] [`Vector.protototype.equals(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/equality.js#L8)\n- [x] [`Vector.compare(one, another)`](https://github.com/broadsw0rd/vectory/blob/master/src/equality.js#L15)\n- [x] [`Vector.protototype.compare(vector)`](https://github.com/broadsw0rd/vectory/blob/master/src/equality.js#L19)\n\n**Swizzling**\n\n- [x] [`Vector.prototype.xx`](https://github.com/broadsw0rd/vectory/blob/master/src/swizzling.js#L4)\n- [x] [`Vector.prototype.xy`](https://github.com/broadsw0rd/vectory/blob/master/src/swizzling.js#L14)\n- [x] [`Vector.prototype.yx`](https://github.com/broadsw0rd/vectory/blob/master/src/swizzling.js#L24)\n- [x] [`Vector.prototype.yy`](https://github.com/broadsw0rd/vectory/blob/master/src/swizzling.js#L34)\n\n**Iterator**\n\n- [x] [`Vector.prototype[Symbol.iterator]()`](https://github.com/broadsw0rd/vectory/blob/master/src/iterator.js#L31) (Latest Chrome and FF or shim)\n\n## Benchmark\n\nIntel Core i7-7700HQ @ 2.8 GHz, DDR3 16 Gb, node v12.4.0\n\n```\n\n\u003e vectory@1.2.3 bench D:\\Projects\\vectory\n\u003e node ./bench/index.js\n\ni start benchmark, please wait a bit...\n\n  Cteation\n    √ Vector(x, y) x 861,542,389 ops/sec ±0.69% (94 runs sampled)\n    √ Vector.from([x, y]) x 844,695,778 ops/sec ±1.22% (93 runs sampled)\n    √ Vector.fromAngle(angle, magnitude) x 838,933,413 ops/sec ±1.43% (88 runs sampled)\n    √ Vector.parse(string) x 1,510,940 ops/sec ±2.42% (86 runs sampled)\n\n  Addition\n    √ Vector.add(one, another) x 782,517,391 ops/sec ±1.27% (85 runs sampled)\n    √ Vector#add(vector) x 781,789,927 ops/sec ±0.88% (87 runs sampled)\n    √ Vector.iadd(one, another) x 353,879,756 ops/sec ±0.60% (89 runs sampled)\n    √ Vector#iadd(vector) x 367,269,195 ops/sec ±0.64% (91 runs sampled)\n\n  Substraction\n    √ Vector.sub(one, another) x 822,718,592 ops/sec ±0.50% (95 runs sampled)\n    √ Vector#sub(vector) x 808,219,928 ops/sec ±0.71% (91 runs sampled)\n    √ Vector.isub(one, another) x 360,450,634 ops/sec ±0.60% (92 runs sampled)\n    √ Vector#isub(vector) x 366,154,868 ops/sec ±0.43% (90 runs sampled)\n\n  Multiplication\n    √ Vector.mul(scalar, vector) x 817,965,124 ops/sec ±0.70% (91 runs sampled)\n    √ Vector#mul(vector) x 808,311,011 ops/sec ±0.60% (94 runs sampled)\n    √ Vector.imul(scalar, vector) x 361,688,702 ops/sec ±0.47% (90 runs sampled)\n    √ Vector#imul(vector) x 357,685,548 ops/sec ±0.51% (92 runs sampled)\n\n  Division\n    √ Vector.div(scalar, vector) x 816,988,130 ops/sec ±0.43% (94 runs sampled)\n    √ Vector#div(vector) x 615,974,995 ops/sec ±21.62% (69 runs sampled)\n    √ Vector.idiv(scalar, vector) x 120,962,052 ops/sec ±2.20% (88 runs sampled)\n    √ Vector#idiv(vector) x 118,041,377 ops/sec ±2.95% (86 runs sampled)\n\n  Linear Interpolation\n    √ Vector.lerp(one, another, t) x 776,561,727 ops/sec ±1.07% (90 runs sampled)\n    √ Vector#lerp(vector, t) x 804,305,035 ops/sec ±0.92% (88 runs sampled)\n\n  Normalization\n    √ Vector.normalized(vector) x 177,230,218 ops/sec ±1.25% (93 runs sampled)\n    √ Vector#normalized() x 175,674,151 ops/sec ±0.94% (89 runs sampled)\n    √ Vector.normalize(vector) x 81,142,672 ops/sec ±0.45% (90 runs sampled)\n    √ Vector#normalize() x 72,733,658 ops/sec ±0.81% (93 runs sampled)\n\n  Magnitude\n    √ Vector.magnitude(vector) x 862,343,311 ops/sec ±0.96% (95 runs sampled)\n    √ Vector#magnitude() x 861,499,315 ops/sec ±0.88% (91 runs sampled)\n\n  Dot Product\n    √ Vector.dot(one, another) x 861,820,342 ops/sec ±0.83% (94 runs sampled)\n    √ Vector#dot(vector) x 693,283,756 ops/sec ±19.13% (77 runs sampled)\n\n  Distance\n    √ Vector.distance(one, another) x 140,160,765 ops/sec ±2.67% (86 runs sampled)\n    √ Vector#distance(vector) x 846,767,936 ops/sec ±0.95% (88 runs sampled)\n\n  Angle computing\n    √ Vector.angleOf(vector) x 861,986,566 ops/sec ±0.68% (89 runs sampled)\n    √ Vector#angleOf() x 848,238,376 ops/sec ±0.77% (94 runs sampled)\n    √ Vector.angleTo(one, another) x 768,939,821 ops/sec ±0.69% (90 runs sampled)\n    √ Vector#angleTo(vector) x 796,718,879 ops/sec ±0.54% (89 runs sampled)\n\n  Rotation\n    √ Vector.rotate(theta, vector) x 831,731,143 ops/sec ±0.96% (91 runs sampled)\n    √ Vector#rotate(theta) x 869,785,085 ops/sec ±0.42% (97 runs sampled)\n    √ Vector.irotate(theta, vector) x 233,852,488 ops/sec ±6.66% (81 runs sampled)\n    √ Vector#irotate(theta) x 118,719,502 ops/sec ±2.55% (89 runs sampled)\n\n  Resetting\n    √ Vector.reset(one, another) x 824,366,918 ops/sec ±1.40% (87 runs sampled)\n    √ Vector#reset(vector) x 870,499,543 ops/sec ±0.74% (89 runs sampled)\n    √ Vector.zero(vector) x 864,045,085 ops/sec ±0.91% (94 runs sampled)\n    √ Vector#zero() x 872,766,394 ops/sec ±0.68% (89 runs sampled)\n    √ Vector.set(x, y, vector) x 875,117,874 ops/sec ±0.45% (94 runs sampled)\n    √ Vector#set(vector) x 879,133,310 ops/sec ±0.41% (95 runs sampled)\n\n  Copy\n    √ Vector.copy(vector) x 857,718,468 ops/sec ±0.59% (94 runs sampled)\n    √ Vector#copy() x 860,378,542 ops/sec ±0.73% (94 runs sampled)\n\n  Convertion\n    √ Vector.toJSON(vector) x 474,395,813 ops/sec ±27.90% (55 runs sampled)\n    √ Vector#toJSON() x 142,701,054 ops/sec ±2.75% (85 runs sampled)\n    √ Vector.toString(vector) x 2,119,735 ops/sec ±0.49% (94 runs sampled)\n    √ Vector#toString() x 2,194,938 ops/sec ±0.41% (96 runs sampled)\n    √ Vector.toArray(vector) x 861,049,656 ops/sec ±0.72% (94 runs sampled)\n    √ Vector#toArray() x 851,493,627 ops/sec ±0.57% (91 runs sampled)\n\n  Equality\n    √ Vector.equals(one, another) x 186,961,843 ops/sec ±0.23% (91 runs sampled)\n    √ Vector#equals(vector) x 182,172,457 ops/sec ±0.58% (93 runs sampled)\n    √ Vector.compare(one, another) x 857,370,215 ops/sec ±0.70% (94 runs sampled)\n    √ Vector#compare(vector) x 879,521,174 ops/sec ±0.41% (95 runs sampled)\n\n  Swizzling\n    √ Vector#xx get x 872,462,026 ops/sec ±0.49% (95 runs sampled)\n    √ Vector#xx set x 851,739,979 ops/sec ±0.82% (92 runs sampled)\n    √ Vector#xy get x 796,653,570 ops/sec ±18.91% (89 runs sampled)\n    √ Vector#xy set x 137,242,036 ops/sec ±2.91% (86 runs sampled)\n    √ Vector#yx get x 869,334,030 ops/sec ±0.48% (94 runs sampled)\n    √ Vector#yx set x 857,707,815 ops/sec ±0.62% (91 runs sampled)\n    √ Vector#yy get x 871,330,173 ops/sec ±0.43% (93 runs sampled)\n    √ Vector#yy set x 877,637,098 ops/sec ±0.40% (94 runs sampled)\n\n  Iterator\n    √ Spread operator x 7,353,650 ops/sec ±1.96% (90 runs sampled)\n    √ for..of loop x 49,734,482 ops/sec ±0.63% (91 runs sampled)\n\n```\n\n## Development\n\nCommand | Description\n--------| -----------\n`npm run check` | Check standard code style by [snazzy](https://www.npmjs.com/package/snazzy)\n`npm run build` | Wrap source code in [UMD](https://github.com/umdjs/umd) by [rollup](https://github.com/rollup/rollup)\n`npm run bench` | Run [benchmark](http://benchmarkjs.com/)\n`npm run test` | Run tests by [tape](https://github.com/substack/tape) and compute code coverage by [nyc](https://github.com/bcoe/nyc)\n`npm run min` | Minify code by [UglifyJS](https://github.com/mishoo/UglifyJS)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadsw0rd%2Fvectory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbroadsw0rd%2Fvectory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbroadsw0rd%2Fvectory/lists"}