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

1.5.2 • Public • Published

Piral Logo

This is the base library that is required for any Piral instance. It is independent of React, a state container, or anything else. It only brings functionality for loading and evaluating pilets.

Documentation

For details on the provided API check out the documentation at the Piral website or on GitHub.

Getting Started

Creating your own Piral app based on piral-base is in general not recommended.

The only exception is when a Piral-fork that is based on another technology than React should be created. In any other case please look at piral-core library or the full piral framework.

More information can be found in our documentation at the Piral website.

Available Options

By default, the loading of pilets assumes standard metadata. In general, however, the loadPilet option allows to bring in other ways.

Full Loader Override

One example of using loadPilet to extend Piral beyond its initial capabilities is to use SystemJS for loading the pilets.

startLoadingPilets({
  // ...
  loadPilet(meta) {
    return System.import(meta.name)
      .catch((err) => {
        // error
        return {};
      })
      .then((moduleContent) => ({
        ...meta,
        ...moduleContent,
      }))
      .then((pilet: Pilet) => {
        if (typeof pilet.setup !== 'function') {
          pilet.setup = () => {};
        }

        return pilet;
      });
  },
});

Another example is to define loader overrides using the spec identifier.

Spec-Specific Loader Overrides

The loaders option can be passed in an object where the spec to override is provided as key:

startLoadingPilets({
  // ...
  loaders: {
    'esm': (meta) => {
      // ...
      return pilet;
    },
    'systemjs': (meta) => {
      // ...
      return pilet;
    }
  },
});

The spec key is defined by the API response via the spec field. This is mostly used with custom specified pilet formats indicated via the v:x version marker. A version marker such as //@pilet v:x(esm) would lead to use the esm override given as an example above.

The two options, loadPilet and loaders are not exclusive. The loadPilet option defines the default, while loaders define spec-dependent overrides.

License

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

Package Sidebar

Install

npm i piral-base

Homepage

piral.io

Weekly Downloads

3,745

Version

1.5.2

License

MIT

Unpacked Size

788 kB

Total Files

103

Last publish

Collaborators

  • florianrappl