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) => {
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.