npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

movium

v0.12.0

Published

MVU JavaScript web framework

Downloads

6

Readme

movium

Movium

Movium is an implementation of the MVU architecture (a.k.a. Elm architecture) in JavaScript. This package provides the base framework built on top of Snabbdom as well a few helper functions.

Status: experimental

This framework is currently in an experimental phase, and the API may change from time to time. Do not expect a stable release until version 1.0.0. Please see the changelog for information about the current progress.

Key features

  • MVU architecture
  • Custom types and type-based pattern matching
  • Integrated HTTP request functions
  • Support for both class-based and style-based transitions
  • Support for binding to document events as well as events outside the node
  • Easily extensible at multiple levels
  • Able to continue running after an uncaught exception

Quick example

import { match, when, id, div, input, onInput, value, p, render } from 'movium'

// MODEL

let init = () => 'hello'

// UPDATE

let SetName = {}

let update = (msg, model) => match(msg,
  when(SetName, id),
)

// VIEW

let view = model => (
  div([],
    p([], `Hello, ${model}`),
    p([],
      input([onInput(SetName), value(model)]),
    ),
  )
)

// Render the example

render(document.querySelector('#app'), init, update, view)

Starting a Movium app project

The simplest way to start is to use degit:

npm degit foxbunny/movium/app-template my-app
cd my-app
yarn
yarn start

If you want to set everything up from scratch, movium package is available on NPM:

yarn add movium

Documentation

Library functions

This section provides an in-depth coverage of various functions that Movium provides. If you want a breadth-first coverage, see the application development guides.

Application development guides

This section provides a broad overview of how to write Movium applications. If you want a more in-dept look at particular features, look at the library functions section.

Example code

The examples directory contains a handful of example apps that demonstrate concepts discussed in the documentation as well as one or two that are not.

To start the example apps, clone this repository to a machine that has NodeJS and yarn, and run the following commands:

yarn install
yarn examples:start

The visit http://localhost:8080 in your browser to see the access the page with a list of examples.