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

escompose

v0.1.7

Published

A standard for transforming ES Modules into linked Web Components

Downloads

2

Readme

escompose

Npm package version Npm package monthly downloads License: AGPL v3 Discord

ES Components is a standard for transforming ES Modules into standardized Web Components to simplify the process of authoring composable web applications.

The escompose library transforms ES Components into Web Components that respond to each other.

escompose is a core library of the Brains@Play Framework

The Specification

Each Component contains one default export and any number of named exports.

export let nExecutions = 0

export default function(){
    this.nExecutions++
    return this.nExecutions
}

As such, this specification treats namespace imports (which access default and named exports) as first-class citizens.

Default Exports

The default export defines the behavior of the Component.

Named Exports

named exports define the states of the Component.

However, multiple named exports without a default function may also be passed. These are transformed into individual Components within the same graph.

Special Properties

Cross-File Properties

__define

This is a registry of ESC that you'd like to transform into Web Components.

  • Note: This has to be loaded
__compose

This is a key that allows you to specify how this ESC inherits from another.

__children

This is a tree of ESC instances that determine how they will be displayed on the screen—as well as how they're referenced in listener scope.

__listeners

This is a collection of configuration objects that specify how ESC will listen to each other.

JSON / HTML Properties

__trigger

This allows you to run the default function of an ESC using the arguments specified here.

{
    "__trigger": [true],
    "__compose": "./components/trigger.js'
}

__animate

This allows you to specify an animation loop for your component.

{
    "__animate": 10, // Runs 10 times every second
    // "__animate": true, // Runs on the default animation loop
    "__compose": "./components/time.js'
}

Acknowledgments

This library is maintained by Garrett Flynn and Joshua Brewster, who use contract work and community contributions through Open Collective to support themselves.

Backers

Support us with a monthly donation and help us continue our activities!

Sponsors

Become a sponsor and get your logo here with a link to your site!