UNPKG

jokio

Version:

core, awesome, simple functions

102 lines (74 loc) 2.07 kB
# jokio 🃏 simple functions for creating complex apps [![Build Status](https://travis-ci.org/jokio/jokio.svg?branch=master)](https://travis-ci.org/jokio/jokio) [![npm version](https://badge.fury.io/js/jokio.svg)](https://badge.fury.io/js/jokio) ## Quick Start: just run: ```bash yarn create jokio-app myapp ``` for detailed information and all options please visit [create-jokio-app](https://github.com/jokio/create-jokio-app) repository. ## Idea: In every process we need three different objects: * Props * State * Context jokio provides following structure to describe processes and make it composable ```ts type Process = (props: Props) => (state: State, context: Context) => Promise<State> const process1: Process const process2: Process const run = compose( process1, process2, ) run(initialState, initialContext) ``` ## Functions: - compose - run - runWith - log - timer - pubsub - uniqueId ## Example: ```js import { compose, log } from 'jokio' const process1 = (props) => (state, context) => { return { ...state, info: state.info + ' hello' } } const process2 = (props) => (state, context) => { return Promise.resolve({ ...state, info: state.info + ' world' }) } const initialState = { info: '[Cool App]' } const run = compose( process1({}), process2({}), log(), ) run(initialState) ``` ## Related Projects: * [GraphQL Server](https://github.com/jokio/jokio-graphql) * [NextJS](https://github.com/jokio/jokio-nextjs) * [Yo App Generator](https://github.com/jokio/generator-jokio) * [create-jokio-app](https://github.com/jokio/create-jokio-app) ## Yeoman You can also use yo generator install once: ```bash npm i -g yo generator-jokio ``` create app: ``` yo jokio ``` Note: this command will not create a new folder, it will generate files in current folder ## Badge: ``` [![engine: jokio](https://img.shields.io/badge/engine-%F0%9F%83%8F%20jokio-44cc11.svg)](https://github.com/jokio/jokio) ``` [![engine: jokio](https://img.shields.io/badge/engine-%F0%9F%83%8F%20jokio-44cc11.svg)](https://github.com/jokio/jokio)