0.11.12 • Published 2 years ago

gridl v0.11.12

Weekly downloads
7
License
MIT
Repository
github
Last release
2 years ago

gridl

A functional toolbox for grid-based data.

Documentation

Installation

Using npm

npm install gridl

Using yarn

yarn add gridl

ES6 modules

import { createGrid } from "gridl/core";

Nodejs

const { createGrid } = require("gridl/_umd");

Usage

See the website for detailed information and getting started guides.

import { createGrid } from "gridl/core";

const grid = createGrid({
  columnCount: 4,
  rowCount: 3,
  createCell: (pos, idx) => (pos.y < 2 ? idx : "x"),
});

// creates the following data object
// => {
//     x: 0,
//     y: 0,
//     cellCount: 12,
//     columnCount: 4,
//     rowCount: 3,
//     array2D: [
//         [  0,   1,   2,   3],
//         [  4,   5,   6,   7],
//         ["x", "x", "x", "x"],
//     ],
// }

Selectors

Easily select cells, columns, rows, sub grids or neighbouring cells with selector functions. Read more about selectors in the getting started section or have a look at the API docs.

import { createGridFromArray2D, selectCell } from "gridl/core";

const grid = createGridFromArray2D([
  [0, 1, 2, 3],
  [4, 5, 6, 7],
  [8, 9, 10, 11],
]);

// get the cell value at position = {x: 1, y: 2}
selectCell({ grid, x: 2, y: 1 }); // => 6

// get the column at x = 2
selectColumn({ grid, x: 2 }); // => [2, 6, 10]

// get the row at y = 1
selectRow({ grid, y: 1 }); // => [4, 5, 6, 7];

Transformers

Perform all kinds of data transformations on your grid, such as add, remove, rotate, swap, mirror and more. Read more about transformers in the getting started section or have a look at the API docs.

import { createGridFromArray2D } from "gridl/core";
import { addRowTop } from "gridl/transformers";

const grid = createGridFromArray2D([
  [0, 1, 2, 3],
  [4, 5, 6, 7],
  [8, 9, 10, 11],
]);
const newGrid = addRowTop(["x", "x", "x", "x"])(grid);
// resulting grid:
// {
//     x: 0,
//     y: 0,
//     cellCount: 12,
//     columnCount: 4,
//     rowCount: 4,
//     array2D: [
//         ["x", "x", "x", "x"],
//         [  0,   1,   2,   3],
//         [  4,   5,   6,   7],
//         [  8,   9,  10,  11],
//     ],
// }

Walkers

Traverse over your grid in variety of ways. Choose from a predefined set of iterators or just come up with your own one. Read more about walkers in the getting started section or have a look at the API docs.

import { createWalker } from "gridl/core";

const grid = createGridFromArray2D([
  [1, 1, 1],
  [1, 1, 1],
]);
const walker = createWalker(grid);
walker.next(); // => {value: {index: 0, position: {x: 0, y: 0}}, done: false}
walker.next(); // => {value: {index: 1, position: {x: 1, y: 0}}, done: false}
walker.next(); // => {value: {index: 2, position: {x: 2, y: 0}}, done: false}
walker.next(); // => {value: {index: 3, position: {x: 0, y: 1}}, done: false}
walker.next(); // => {value: {index: 4, position: {x: 1, y: 1}}, done: false}
walker.next(); // => {value: {index: 5, position: {x: 2, y: 1}}, done: false}
walker.next(); // => {value: undefined, done: true}

Issues

Report issues, bugs and feature request on the github issues page.


License

MIT © Sascha Klatt

0.11.11

2 years ago

0.11.12

2 years ago

0.11.10

3 years ago

0.11.9

3 years ago

0.11.8

3 years ago

0.11.7

3 years ago

0.11.6

3 years ago

0.11.4

3 years ago

0.11.5

3 years ago

0.11.3

3 years ago

0.11.0

3 years ago

0.11.1

3 years ago

0.11.2

3 years ago

0.11.0-beta.0

3 years ago

0.10.5

6 years ago

0.10.4

6 years ago

0.10.3

6 years ago

0.10.2

6 years ago

0.10.1

6 years ago

0.10.0

6 years ago

0.9.0

6 years ago

0.8.7

6 years ago

0.8.6

6 years ago

0.8.5

6 years ago

0.8.4

6 years ago

0.8.3

6 years ago

0.8.2

6 years ago

0.8.1

6 years ago

0.8.0

6 years ago

0.7.0

6 years ago

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.0

6 years ago

0.4.13

6 years ago

0.4.12

6 years ago

0.4.11

6 years ago

0.4.10

6 years ago

0.4.9

6 years ago

0.4.8

6 years ago

0.4.7

6 years ago

0.4.6

6 years ago

0.4.5

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.0

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago