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

upward

v0.0.9

Published

The front-end library for modern boys and girls

Downloads

7

Readme

Upward

Upward is a JavaScript library with a declarative style. You declare how things should be, and it makes sure things are and stay that way. All CSS and HTML is written in JavaScript as well, so there's a single language to write, preprocess, and run.

Introduction

In the development community's struggles to integrate the front-end technologies that have emerged for mark-up, styling, and program logic, we have created a witches’ brew. We have styles inside logic, logic inside styles, logic inside mark-up, and mark-up inside logic. We have build a tangled web of templating languages, libraries, frameworks, and CSS preprocessors. We have complex build systems to preprocess, precompile, and transpile this steaming mess. We have monstrous config objects with mysterious properties fed to black box add-ons to control magic behaviors. We build assumptions upon assumptions and dependencies upon dependencies. All of this makes our systems hard to write, debug, maintain, build, and deploy.

In Upward, in contrast, everything is logic. Mark-up and styling is all described by logic. It is a purely JS, declarative world.

Upward is not a framework. It is a library, a layer, a context for declaring the relationships among objects and dynamically keeping them up to date. Upward does not make any assumptions about what you want to do. It is ultimately unopinionated.

Basic architecture

The Upward framework is based around

  1. Upwardables, values which observe themselves

  2. Upwardable functions, both built-in and user-defined, which take and return upwardables

  3. Upwardable objects, whose properties are upwardables

Other features include:

  1. Upwardable template strings, which auto-update to reflect changes to upwardable placeholders

  2. DOM Node creation Routines such as UpElement and UpText which are based on upwardables, and thus auto-update themselves

  3. A broad selection of upward-aware data manipulation functions such as map.

  4. An API for defining CSS, which is also upward-aware and thus dynamically changeable

  5. A minimalistic, upward-aware MVC framework.

  6. Utilities such as timers.

  7. An upward-aware test runner.

Project status

In progress, bleeding edge, changing frenetically, unusable.

Environment

Upward is written completely in ES6 and targeted for compilation by babel. The environment it runs in needs to support ES6 features such as Map and Object.observe. It has been tested only in Chrome. It will not run in other browsers due to their lack of support for Object.observe.

The recommended approach to bulding an app is to use browserify:

browserify -t babelify main.js -o bundle.js

Then include the bundle and the babel browser polyfill in your HTML page:

<script src="node_modules/babel-core/browser-polyfill.js"></script>
<script src="bundle.js"></script>

Installation

npm install --save-dev upward

You may now refer to upward modules from inside your app via:

import {U} from 'upward';

Building

There is nothing to build here, except the docs.

Testing

Upward comes with extensive tests using its own testing harness. This testing harness can also be used for testing Upward applications. The tests are located in the separate upward-test repo.

License

Copyright (c) 2014-2015 Bob Myers.

Licensed under the MIT license.

Acronym

"Upward" is an acronym for "Upward Propagation With ARgument Detection", if you insist.