@ddoronin/super-object
TypeScript icon, indicating that this package has built-in type declarations

0.0.7 • Public • Published

super-object

GitHub license npm version Build Status Coverage Status

$ yarn add @ddoronin/super-object

It's like Object.assign(), but even more.

Usage

Suppose you compose a request to upload a file. You decided to set different content types based on a file extension and apply gzip if this a javascript or css file.

import { compose } from 'super-object';
...
function createRequest(payload: any, fileExt: string) {
    return api.compose({
        body: { ...payload }
    }).if(fileExt === '.js', {
        contentType: 'text/javascript'
    }).elseif(fileExt === '.css', {
        contentType: 'text/css'
    }).else({
        contentType: 'application/octet-stream'
    }).if(fileExt === '.js' || fileExt === '.css', {
        encoding: 'gzip'
    }).val();
}

API

method description
compose<A extends {}>(a: A = {} as any): IComposer<A> Creates a wrapper around a given object a: A that is a context object.
append<B>(b: B): IComposer<A | B> Appends a given object b to the context A
if<B>(condition: boolean, b: B): IComposer<A | B> Appends a given object b to the context A if and only if the condition is satisfied.
elseif<C>(condition: boolean, c: C): IComposer<A | C> Appends a given object c to the context A if and only if the condition is satisfied and a previous conditions were falsy.
else<D>(d: D): IComposer<A | D> Appends a given object d to the context A if all previous conditions were falsy.
val(): A Simply returns the context object A.
export interface IComposer<A> {

    append<B>(b: B): IComposer<A | B>;

    if<B>(condition: boolean, b: B): IComposer<A | B>;

    elseif<C>(condition: boolean, c: C): IComposer<A | C>

    else<D>(d: D): IComposer<A | D>;

    val(): A;
}

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @ddoronin/super-object

Weekly Downloads

0

Version

0.0.7

License

MIT

Unpacked Size

80.3 kB

Total Files

11

Last publish

Collaborators

  • ddoronin