piral-systemjs-utils
TypeScript icon, indicating that this package has built-in type declarations

0.15.13 • Public • Published

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.

Package Sidebar

Install

npm i piral-systemjs-utils

Homepage

piral.io

Weekly Downloads

8

Version

0.15.13

License

MIT

Unpacked Size

16.4 kB

Total Files

18

Last publish

Collaborators

  • florianrappl