0.1.0 • Published 6 years ago

yagni v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
6 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

Using yarn:

$ yarn add -D 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');

ES6 module usage:

import * as _ from 'yagni';
// or
import { pipe, transform, map } from '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';


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

MIT

0.1.0

6 years ago

0.0.1

6 years ago