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

piral-systemjs-utils

v0.15.13

Published

Utilities for providing SystemJS support to Piral.

Downloads

483

Readme

Piral Logo

Piral SystemJS Utils · GitHub License npm version tested with jest Gitter Chat

This is a utility library that can be used for providing support to SystemJS modules.

What piral-systemjs-utils offers are helper functions to actually support SystemJS modules for pilets incl. SystemJS compatible import maps as feed source.

Installation

This should only be installed as a dependency (dependencies) as it is only designed mostly for runtime/consumption by Piral together with piral-cli-webpack or another bundler that is SystemJS compatible.

If you'd love to use yarn:

yarn add piral-systemjs-utils

Alternatively, npm works reliably, too:

npm i --save piral-systemjs-utils

Setup

Provide your pilets via import maps in the index.html:

<script type='systemjs-importmap' src="https://feed.piral.cloud/api/v1/pilet/my-import-maps"></script>

Make sure that the Webpack configuration is actually extended using the System calls.

A simple way for achieving this is to create a file called webpack.config.js in the Piral instance's root folder. It may look as follows:

module.exports = function (config) {
  config.module.rules.push({
    parser: {
      system: false,
    },
  });
  return config;
};

This is everything for setting up SystemJS in Piral.

Usage

App Shell Authors

Using the configured SystemJS import maps is simple. When your Piral instance is created supply the loadPilet and requestPilets functions from the helper library.

An example:

import { createInstance } from 'piral';
import { loadPilet, requestPilets } from 'piral-systemjs-utils';

const instance = createInstance({
  loadPilet,
  requestPilets,
  // ...
});

// render instance in <Piral /> etc.

By default, this will assume that all entries of the previously supplied import maps are pilets. Everything will be loaded and resolved via SystemJS.

Pilet Authors

Pilet authors don't need to know anything besides that the build system has support SystemJS. Therefore, like with the Piral instance, pilets need to be created via piral-cli-webpack or another bundler supporting SystemJS.

The most straight forward way to apply SystemJS to your pilets is to use --schema v2 (which is the default schema) when building or publishing:

# build the current pilet
npx pilet build --schema v2

# publish the current build with a fresh build
npx pilet publish --fresh --schema v2 --url <feed-service-url> --api-key <your-api-key>

License

Piral is released using the MIT license. For more information see the license file.