1.45.0 • Published 3 years ago

loadax v1.45.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

Loadax - micro front-end solution! v1.44.x

Today we can create app on vue, react, angular, svelte, ember or any other... With Loadax - in the same time!!!

Loadax is a powerful solution which opens the way to a new age of web application development!

Full use case you can find at DevOptions ... soon

Install Loadax PWA instance

  • npm init or yarn init
  • npm install loadax or yarn add loadax
  • loadax create-instance
  • npm run dev or yarn dev

Install Loadax module for PWA

  • loadax create-module
  • loadax build

Once Loadax installed will add loadax.config.js to your project directory

Loadax configuration file

This file automatic added after Loadax installed! It needed for build project as Loadax module. More information of Loadax and Loadax modules you can find at DevOptions ... soon

module.exports = {
    dist: "dist/loadax-manifest", // output path for Loadax manifest file
    module: {
        version: "0.0.0", // Version of App
        type: 0, // type of module: 0 - main app enterpoint , 1 - as app pages, 2 - as service lib, 3 - as single reusabel component
        name: "AppName",
        route: "/", // routes as string delemited with ","! Ex.: "/,/main"
        children: "/", // children routes delimited like as "route" props,
        path: "/js/app.js", // URL path to module for loading in Loadax,
        css: "/css/app.css" // url path to modiule styles for loading in Loadax
    }
}

For build Application as Loadax-module execute in terminal: loadax build

Loadax CLI

Execute $: loadax in terminal for details

  • laodax init - auto-execute after installing by default. Create loadax.config.js
  • loadax build - build app as Loadax module
  • loadax create-instance - create loadax pwa main app
  • loadax create-module - create loadax pwa module for main app
  • wip:loadax docker - create Docker file for Loadax
  • wip:loadax add:app - add Lodax default app template
  • wip:loadax add:tests - add full testing
  • wip:loadax add:test:unit - added Loadax unit testing
  • wip:loadax add:test:system - added Loadax system testing
  • wip:loadax add:test:e2e - added Loadax function testing

Simple use case: Multi modules

import Loadax from "loadax"
const Loader = new Loadax('https://rest.api/modules')

Loader.injectAllModules().then(addedModules => {
    console.log(addedModules)
    Loadax.executeModule(addedModules[0].name)
})

Simple use case: Single module

import Loadax from "loadax"
const Loader = new Loadax('https://rest.api/modules')

Loader.injectModule("news").then(addedModule => {
    if (addedModule) {
        console.log(addedModule)
        Loadax.executeModule(addedModule.name)   
    }
})

Simple use your own types

import Loadax, { ModuleBase, LoadedModuleBase } from "loadax"

export type ModuleDate = { createdAt: Date }
export type ShortModuleInfo = ModuleBase & ModuleDate
export type FullModuleInfo = LoadedModuleBase & ModuleDate

const Loader = new Loadax<ShortModuleInfo, FullModuleInfo>('https://rest.api/modules')

Simple use case: Multi modules w\o Loadax instance

import Loadax from "loadax"

Loadax.injectFloatModules('https://rest.api/modules').then(floatModules => {
    console.log(floatModules)
    Loadax.executeFloatModule(floatModules[0].name)
})

Simple use case: Single module w\o Loadax instance

import Loadax from "loadax"

Loadax.injectFloatModule("news", "https://rest.api/modules").then(addedFloatModule => {
    if (addedFloatModule) {
        console.log(addedFloatModule)
        Loadax.executeFloatModule(addedFloatModule.name)  
    }
})

Simple use your own types for float modules

import Loadax, { ModuleBase } from "loadax"

export type ModuleDate = { createdAt: Date }
export type ShortModuleInfo = ModuleBase & ModuleDate

Loadax.injectFloatModules<ShortModuleInfo>('https://rest.api/modules').then(floatModules => {
    console.log(floatModules)
    Loadax.executeFloatModule(floatModules[0].name)
})

Simple use case: PWA

For run Loadax as PWA application execute in terminal loadax pwa and all necessary files will be added at project directory. Sync application data store for all modules:

const Loader = new Loadax('https://rest.api/modules');
Loader.asPwa({ asInstance: true }) || Loader.asInstance()

Loadax PWA properties example:

const Loader = new Loadax('https://rest.api/modules');
Loadaer.asPwa({
    app, // (Required) Loadax mount Application entepoint method: 'mount(ctx)'. Where ctx - ServiceWorker context 
    store, // (required) Lodax application processing Store
    asInstance, // (custom) props for set as Main Application enterpoint mode
    url // (custom) URL for ServceWorker file, default as public/main/ws-loadax.js
})

Loadax as PWA demo case. This is recommended work mode for Loadax, because this mode provide default store sync of Loadax modules.

import Loadax from "loadax";
const Loader = new Loadax('https://rest.api/modules');

const App = {
    version: "1.0.0",
    mount (node: HTMLElement) {
        const elem = document.createElement("h1")
        elem.innerText = `Click: ${App.version}`
        Loader.storeEmit(data => elem.innerText = `Click: ${data.app.version}`, 'app.version.ust')
        node.appendChild(elem)
        node.onclick = () => Loader.storeAction<string>({
            namespace: "app.version", 
            payload: (Math.random()*100).toString()
        })
    }
}

const mountApp = () => {
    App.mount(document.body)
}

Loader.asPwa({
    app: mountApp,
    asInstance: true,
    store: [
        {
            name: "app",
            value: {
                version: App.version
            }
        }
    ]
})

Contacts

npm@devoptions.ru

1.45.0

3 years ago

1.44.30

3 years ago

1.44.31

3 years ago

1.44.29

3 years ago

1.44.27

3 years ago

1.44.28

3 years ago

1.44.25

3 years ago

1.44.26

3 years ago

1.44.23

3 years ago

1.44.24

3 years ago

1.44.21

3 years ago

1.44.22

3 years ago

1.44.20

3 years ago

1.44.18

3 years ago

1.44.19

3 years ago

1.44.13

3 years ago

1.44.16

3 years ago

1.44.17

3 years ago

1.44.14

3 years ago

1.44.154

3 years ago

1.44.0

3 years ago

1.44.2

3 years ago

1.44.1

3 years ago

1.44.4

3 years ago

1.44.3

3 years ago

1.44.6

3 years ago

1.44.5

3 years ago

1.44.8

3 years ago

1.44.7

3 years ago

1.44.12

3 years ago

1.44.9

3 years ago

1.44.10

3 years ago

1.44.11

3 years ago

1.40.14

3 years ago

1.40.11

3 years ago

1.40.12

3 years ago

1.40.13

3 years ago

1.36.0

3 years ago

1.37.0

3 years ago

1.37.3

3 years ago

1.37.4

3 years ago

1.37.2

3 years ago

1.37.8

3 years ago

1.37.5

3 years ago

1.37.6

3 years ago

1.40.0

3 years ago

1.40.2

3 years ago

1.40.1

3 years ago

1.40.4

3 years ago

1.40.3

3 years ago

1.40.6

3 years ago

1.40.5

3 years ago

1.40.7

3 years ago

1.40.9

3 years ago

1.41.1

3 years ago

1.41.0

3 years ago

1.41.3

3 years ago

1.41.2

3 years ago

1.41.5

3 years ago

1.41.4

3 years ago

1.41.6

3 years ago

1.39.0

3 years ago

1.42.0

3 years ago

1.42.2

3 years ago

1.42.1

3 years ago

1.42.4

3 years ago

1.42.3

3 years ago

1.42.6

3 years ago

1.42.5

3 years ago

1.42.8

3 years ago

1.42.7

3 years ago

1.42.9

3 years ago

1.43.1

3 years ago

1.43.0

3 years ago

1.42.11

3 years ago

1.42.10

3 years ago

1.42.13

3 years ago

1.42.12

3 years ago

1.35.0

3 years ago

1.34.11

3 years ago

1.34.10

3 years ago

1.34.9

3 years ago

1.34.8

3 years ago

1.34.7

3 years ago

1.34.6

3 years ago

1.34.5

3 years ago

1.34.4

3 years ago

1.34.3

3 years ago

1.34.2

3 years ago

1.34.1

3 years ago

1.34.0

3 years ago

1.33.0

3 years ago

1.32.1

3 years ago

1.32.0

3 years ago

1.31.0

3 years ago

1.30.17

3 years ago

1.30.16

3 years ago

1.30.15

3 years ago

1.30.14

3 years ago

1.30.13

3 years ago

1.30.12

3 years ago

1.30.11

3 years ago

1.30.10

3 years ago

1.30.9

3 years ago

1.30.8

3 years ago

1.30.7

3 years ago

1.30.6

3 years ago

1.30.5

3 years ago

1.30.4

3 years ago

1.30.3

3 years ago

1.30.2

3 years ago

1.30.1

3 years ago

1.30.0

3 years ago

1.29.4

3 years ago

1.29.2

3 years ago

1.29.1

3 years ago

1.29.0

3 years ago

1.28.13

3 years ago

1.28.12

3 years ago

1.28.11

3 years ago

1.28.10

3 years ago

1.28.9

3 years ago

1.28.8

3 years ago

1.28.7

3 years ago

1.28.6

3 years ago

1.28.5

3 years ago

1.28.4

3 years ago

1.28.3

3 years ago

1.28.2

3 years ago

1.28.1

3 years ago

1.28.0

3 years ago

1.27.2

3 years ago

1.27.1

3 years ago

1.27.0

3 years ago

1.26.29

3 years ago

1.26.28

3 years ago

1.26.27

3 years ago

1.26.26

3 years ago

1.26.25

3 years ago

1.26.24

3 years ago

1.26.23

3 years ago

1.26.22

3 years ago

1.26.21

3 years ago

1.26.20

3 years ago

1.26.19

3 years ago

1.26.18

3 years ago

1.26.17

3 years ago

1.26.16

3 years ago

1.26.15

3 years ago

1.26.14

3 years ago

1.26.13

3 years ago

1.26.12

3 years ago

1.26.11

3 years ago

1.26.10

3 years ago

1.26.9

3 years ago

1.26.8

3 years ago

1.26.7

3 years ago

1.26.6

3 years ago

1.26.5

3 years ago

1.26.4

3 years ago

1.26.3

3 years ago

1.26.2

3 years ago

1.26.1

3 years ago

1.26.0

3 years ago

1.25.2

3 years ago

1.25.1

3 years ago

1.25.0

3 years ago

1.24.1

3 years ago

1.24.0

3 years ago

1.23.0

3 years ago

1.22.0

3 years ago

1.21.0

3 years ago

1.20.2

3 years ago

1.20.1

3 years ago

1.20.0

3 years ago

1.19.4

3 years ago

1.19.3

3 years ago

1.19.2

3 years ago

1.19.1

3 years ago

1.19.0

3 years ago

1.18.9

3 years ago

1.18.8

3 years ago

1.18.7

3 years ago

1.18.6

3 years ago

1.18.5

3 years ago

1.18.4

3 years ago

1.18.3

3 years ago

1.18.2

3 years ago

1.18.1

3 years ago

1.18.0

3 years ago

1.17.0

3 years ago

1.16.0

3 years ago

1.15.0

3 years ago

1.14.0

3 years ago

1.13.1

3 years ago

1.13.0

3 years ago

1.12.8

3 years ago

1.12.7

3 years ago

1.12.6

3 years ago

1.12.5

3 years ago

1.12.4

3 years ago

1.12.3

3 years ago

1.12.2

3 years ago

1.12.1

3 years ago

1.12.0

3 years ago

1.11.2

3 years ago

1.11.1

3 years ago

1.11.0

3 years ago

1.10.1

3 years ago

1.10.0

3 years ago

1.9.0

3 years ago

1.8.0

3 years ago

1.7.0

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago