🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

applit

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

applit

Applit 🌶: Micro Web App Framework for building Stateful Apps with lit-html 🔥 View Layer

0.0.6
latest
npm
Version published
Weekly downloads
3
Maintainers
1
Weekly downloads
 
Created
Source

What is Applit 🌶

Applit is a web framework that drastically decreases the concepts to learn in order to build an application.

Concepts

  • state: An object that represents the state of the application. (e.g. { count: 0 })
  • view: The view is a function of state (view = f(state)). The view is formed by using tagged templates. We use lit-html to create and rerender the DOM. (e.g. state => html`${state.count}`)
  • reducer: A function that takes a state and returns a modified new state
    (e.g. up = state => ({ count: state.count + 1}))
  • bind: This function is being passed to the view, in order to bind the reducer to the current state
  • render cycle: Whenever a call is made to a bound function, a rerender of the view will take place (e.g. bind(up)())

Example

Try an example here codesandbox.io

Getting Started

This is a very minimal example to get you started. A simple counter, with up and down actions.

Install applit and parcel (to build and run the app).

npm init -y
npm install --save applit lit-html
npm install --save-dev parcel

Create an src/index.js

import { html } from 'lit-html'
import { applit } from 'applit'

const up = () => state => ({ count: state.count + 1 })
const down = () => state => ({ count: state.count - 1 })

applit(
  () => ({ count: 0 }),
  (bind, state) => html`
    <h1>Counter</h1>
    <p>${state.count}</p>
    <button onclick=${bind(up, bind)}>Up</bind>
    <button onclick=${bind(down, bind)}>Down</bind>
  `,
  document.body
)

And use it in the src/index.html

<html>
<body>
  <script src="./src/index.js"></script>
</body>
</html>

Now run Parcel and view it in your browser (npx is a tool to run node_modules/.bin executables from the project)

npx parcel ./src/index.html

Status

Early alpha This project is in development phase. IT'll have breaking changes to the APIs until a first version is released. The roadmap below will give an insight in what will be the focus.

Roadmap and ideas

  • 0.0.5 update state outside the view
  • lifecycle events (oncreate, ondestroy, etc)
  • payload to call 'actions' with dynamic data
  • async (for calls to api's)
  • lazy components using dynamic imports
  • composable applits.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Albert Groothedde - Initial idea - Alber70g

License

This project is licensed under the MIT License

Keywords

lit-html

FAQs

Package last updated on 13 Jul 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts