0.7.1 • Published 5 years ago

@yagni-js/yagni v0.7.1

Weekly downloads
-
License
Unlicense
Repository
github
Last release
5 years ago

yagni

Yet another pure functional frontend library.

Pure functional in this context means functional code style - library code is linted using eslint-plugin-fp and eslint-plugin-better. Javascript code is purely functional with just two exceptions:

  • tap() function, used for controllable side effects,
  • mutate() function, used for controllable mutations.

Installation

Using npm:

$ npm install --save-dev @yagni-js/yagni

Using yarn:

$ yarn add -D @yagni-js/yagni

Usage

Source code is written using ES6 modules, built using rollup and distributed in two formats - as CommonJS module and as ES6 module.

CommonJS usage:

const _ = require('@yagni-js/yagni');

ES6 module usage:

import * as _ from '@yagni-js/yagni';
// or
import { pipe, transform, map } from '@yagni-js/yagni';

Documentation

Not yet available, please check sources.

Example

Here is a function to convert an array of objects to http request query string:

import * as _ from '@yagni-js/yagni';


const toQuery = _.pipe([
  _.map(
    _.pipe([
      _.transformArr([
        _.pick('key'),
        _.pipe([
          _.pick('value'),
          encodeURIComponent
        ])
      ]),
      _.join('=')
    ])
  ),
  _.join('&'),
  _.concat('?')
]);

Having input as:

const params = [
  {key: 'name', value: 'John Smith'},
  {key: 'age', value: 35},
  {key: 'country', value: 'UK'}
];

the result will be the following:

const query = toQuery(params);
// query === '?name=John%20Smith&age=35&country=UK'

License

Unlicense

0.7.1

5 years ago

0.7.0

5 years ago

0.6.0

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.0

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago