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

es6pack

v0.10.3

Published

Safe and performant ECMAScript 2015 script loading for the browser.

Downloads

3

Readme

NPM version

Safe and performant ECMAScript 2015 script loading for the browser.

Installation

$ npm install es6pack

Purpose

  • Use ECMAScript 2015 (sans "transpilation") and contemporary browser APIs as progressive enhancement without bothering the little guy.
  • Expose the conditional script resource URLs to the preload scanner.
  • Load the script resources in parallel without blocking page rendering.
  • Execute the loaded script resources in source order.

Declarative API

  • the HEAD element must have an itemscope attribute
  • resources are declared with LINK elements that have
    • a required itemprop attribute with one of the following values
      • style-resource
      • script-resource
    • a required href attribute with the resource URL
    • an optional media attribute with a media query
      • for script resources, the media query is only evaluated once, when the bootload script is executed; use it with caution and common sense
    • an optional rel attribute with a resource hint value of sorts
  • the bootload script itself succeeds those LINK elements

Since the bootload script should always be included inline, the module exports the script as a string that can directly be used with a template engine.

Normal style sheets links should be placed after this inline script because the CSSOM blocks script execution: https://www.igvita.com/2014/05/20/script-injected-async-scripts-considered-harmful/

React example

const es6pack = require('es6pack');

[...]

<head itemscope>
  [...]
  <link itemprop="style-resource" href="beep.css" />
  <link itemprop="script-resource" href="beep.js" />
  <link itemprop="script-resource" href="boop.js" />
  <script
    dangerouslySetInnerHTML={{__html: es6pack}}
    ></script>
  <link href="mobile-first.css" rel="stylesheet" />
</head>

ECMAScript 2015 feature tests

evaled

  • const declaration
  • let declaration
  • arrow function
  • default parameter
  • template string
  • object destructuring
  • generator function
  • for/of loop
  • yield
  • spread
  • class/extends

Global objects

  • Map
  • Promise
  • Proxy
  • Reflect
  • Set
  • Symbol
  • WeakMap
  • WeakSet

Host objects feature tests

  • MutationObserver
  • WebSocket
  • Worker
  • fetch
  • matchMedia
  • requestAnimationFrame
  • document has the methods
    • getElementsByClassName
    • querySelectorAll
  • HTMLElement instances have a classList object
  • HTMLScriptElement instances have a boolean async IDL attribute
  • SVG can be used in HTML

Example

$ npm run prepublish
$ cd example
$ npm start

License

MIT