jokio
Version:
core, awesome, simple functions
102 lines (74 loc) • 2.07 kB
Markdown
# jokio 🃏
simple functions for creating complex apps
[](https://travis-ci.org/jokio/jokio)
[](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:
```
[](https://github.com/jokio/jokio)
```
[](https://github.com/jokio/jokio)