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

    0.14.7 • Public • Published

    Piral Logo

    Piral Containers · GitHub License npm version tested with jest Gitter Chat

    This is a plugin that only has a peer dependency to piral-core. What piral-containers brings to the table is a set of Pilet API extensions that can be used with piral or piral-core.

    By default, these API extensions are not integrated in piral, so you'd need to add them to your Piral instance.

    Why and When

    State management is important. While plugins such as piral-redux bring in an additional kind of state container they also allow using this state container in pilets. piral-containers makes the global app state container accessible by all pilets. Using piral-containers every pilet can create its own states within the global store.

    Alternatives: Leave every pilet to decide and bundle their own state management. A lightweight, framework-agnostic alternative would be unistore.


    We also have a video for this plugin:



    The following functions are brought to the Pilet API.


    Creates a new pilet global state container. The state container will essentially couple to the app shell global state container. It is, however, only available for use inside the pilet.


    ::: summary: For pilet authors

    You can use the createState function from the Pilet API to create your own sub states in the global state container of the Piral instance.

    Example use:

    import { PiletApi } from '<name-of-piral-instance>';
    import { MyPage } from './MyPage';
    export function setup(piral: PiletApi) {
      const connect = piral.createState({
        state: {
          count: 0,
        actions: {
          increment(dispatch) {
            dispatch(state => ({
              count: state.count + 1,
          decrement(dispatch) {
            dispatch(state => ({
              count: state.count - 1,
        connect(({ state, actions }) => <MyPage count={state.count} {...actions} />),


    ::: summary: For Piral instance developers

    The provided library only brings API extensions for pilets to a Piral instance.

    For the setup of the library itself you'll need to import createContainersApi from the piral-containers package.

    import { createContainersApi } from 'piral-containers';

    The integration looks like:

    const instance = createInstance({
      // important part
      plugins: [createContainersApi()],
      // ...

    There are no options available.



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


    npm i piral-containers



    DownloadsWeekly Downloads






    Unpacked Size

    34.9 kB

    Total Files


    Last publish


    • florianrappl