0.0.4 • Published 1 year ago

@zhujianshi/case-match v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

@zhujianshi/case-match

Read this in other languages: English, 简体中文.

Description: experimental write if-then code using chain mode

Warning: This project only demonstates the possibility to write if-then code using chain mode. DON'T USE IT IN PRODUCTION.

Install

yarn add @zhujianshi/case-match

Usage

import {createType,pm,base} from '@zhujianshi/case-match';

const Author = createType('author',base.number,base.string);//authorId,authorName
const Book = createType('book',base.number,base.string,Author);//bookId,bookTitle,author

const adt2Obj = pm
  .case(Author,(authorId,authorName)=>({authorId,authorName}))
  .case(Book,(bookId,bookTitle,author)=>({
    bookId,
    bookTitle,
    author,//readme: this is adt value
  }))

const author = Author(1,'Jack');
const book = Book(1,'Jack\'s book',author);

deepEqual(adt2Obj(author) ,{
  authorId:1,
  authorName:'Jack',
});
deepEqual(adt2Obj(book) ,{
    bookId:1,
    bookTitle:'Jack\'s book',
    author,//readme: this is adt value
});