2.0.38 • Published 5 months ago

@pisell/pisellos v2.0.38

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

PisellOS 前端 SDK 框架

PisellOS 是一个灵活的、可扩展的前端 SDK 框架,专为构建模块化应用设计。它支持插件系统,允许在不同运行环境中无缝集成功能。

特性

  • 模块化架构:支持各种功能模块(如购物车、结账流程等)的插入和管理
  • 插件系统:通过插件提供环境抽象,解决跨环境兼容性问题
  • 事件驱动:基于事件总线的模块间通信机制
  • 类型安全:使用 TypeScript 构建,提供完整的类型定义
  • 轻量级:核心框架轻量,按需加载模块

安装

npm install pisell-os

快速开始

基本用法

import PisellOSCore, { plugins, modules } from "pisell-os";

// 创建 PisellOS 实例
const pisellOS = new PisellOSCore({
	debug: true, // 开启调试日志
	plugins: [{ plugin: plugins.window }, { plugin: plugins.request }],
	modules: [
		{
			module: modules.cart,
			options: {
				plugins: ["window", "request"], // 依赖的插件
			},
		},
	],
});

// 获取购物车模块并使用
const cartModule = pisellOS.getModuleExports("cart");
await cartModule.addItem({
	id: "product-001",
	name: "商品1",
	price: 99.9,
	quantity: 1,
});

// 使用插件
const windowPlugin = pisellOS.getPlugin("window");
windowPlugin.localStorage.setItem("key", "value");

架构

PisellOS 的核心架构包括四个主要部分:

  1. 核心框架:负责模块和插件的注册、管理和生命周期控制
  2. 插件系统:为不同环境提供统一接口,如 window、request 等
  3. 模块系统:提供业务功能实现,可依赖插件和其他模块
  4. 解决方案:解决方案是 pisell_os 中对业务流程层的抽象,用于将多个独立的模块(Module)编排成一个完整的业务解决方案。 它本质上是一个特殊的“业务 orchestrator”,负责协调模块调用、控制数据流动和处理统一状态管理。

核心 API

// 创建实例
const pisellOS = new PisellOSCore(options);

// 注册插件
pisellOS.registerPlugin(plugin, options);

// 注册模块
pisellOS.registerModule(module, options);

// 获取插件
const plugin = pisellOS.getPlugin<PluginType>(name);

// 获取模块
const module = pisellOS.getModule<ModuleType>(name);

// 获取模块导出的 API
const api = pisellOS.getModuleExports<ApiType>(name);

// 事件机制
pisellOS.on(event, handler);
pisellOS.emit(event, data);

内置插件

PisellOS 提供了几个内置插件以简化开发:

  • window:提供 window 对象模拟,包括 localStorage、setTimeout 等
  • request:提供网络请求功能,支持各种 HTTP 方法和拦截器

内置模块

  • cart:购物车模块,提供商品管理、数量更新等功能

自定义扩展

创建自定义插件

import { Plugin } from "pisell-os";

class MyPlugin implements Plugin {
	name = "my-plugin";
	version = "1.0.0";

	initialize() {
		console.log("My plugin initialized");
	}

	destroy() {
		console.log("My plugin destroyed");
	}

	// 自定义方法
	myMethod() {
		return "Hello from my plugin";
	}
}

export default new MyPlugin();

创建自定义模块

import { Module, PisellCore } from "pisell-os";

class MyModule implements Module {
	name = "my-module";
	version = "1.0.0";

	private core: PisellCore;

	// 导出 API
	exports = {
		doSomething: () => this.doSomething(),
	};

	initialize(core: PisellCore) {
		this.core = core;
		console.log("My module initialized");
	}

	destroy() {
		console.log("My module destroyed");
	}

	private doSomething() {
		return "Hello from my module";
	}
}

export default new MyModule();

开发

# 安装依赖
npm install

# 构建项目
npm run build

# 运行示例
npm run example

# 开发模式
npm run dev

许可

MIT License

2.0.38

5 months ago

1.0.5

5 months ago

2.0.37

5 months ago

1.0.4

5 months ago

0.0.132

5 months ago

1.0.3

5 months ago

0.0.131

5 months ago

1.0.2

5 months ago

0.0.130

5 months ago

1.0.1

5 months ago

0.0.129

5 months ago

0.0.128

5 months ago

3.0.39

6 months ago

2.0.36

6 months ago

0.0.127

6 months ago

2.0.35

6 months ago

0.0.126

6 months ago

3.0.38

6 months ago

3.0.37

6 months ago

2.0.34

6 months ago

0.0.125

6 months ago

3.0.36

6 months ago

2.0.33

6 months ago

0.0.124

6 months ago

0.0.123

6 months ago

0.0.122

6 months ago

2.0.32

6 months ago

2.0.31

6 months ago

3.0.35

6 months ago

2.0.30

6 months ago

0.0.121

6 months ago

0.0.120

6 months ago

2.0.29

6 months ago

0.0.119

6 months ago

0.0.118

6 months ago

2.0.28

6 months ago

0.0.117

6 months ago

3.0.34

6 months ago

3.0.33

6 months ago

0.0.116

6 months ago

2.0.27

6 months ago

2.0.26

6 months ago

2.0.25

6 months ago

2.0.24

6 months ago

0.0.115

6 months ago

0.0.114

6 months ago

0.0.113

6 months ago

0.0.112

6 months ago

0.0.111

6 months ago

3.0.32

6 months ago

0.0.110

6 months ago

3.0.31

6 months ago

0.0.109

6 months ago

2.0.23

6 months ago

0.0.108

6 months ago

0.0.107

6 months ago

0.0.106

6 months ago

0.0.105

6 months ago

3.0.30

6 months ago

0.0.104

6 months ago

0.0.103

6 months ago

0.0.102

6 months ago

0.0.101

6 months ago

3.0.29

6 months ago

2.0.22

6 months ago

0.0.100

6 months ago

0.0.99

6 months ago

3.0.28

6 months ago

3.0.27

6 months ago

2.0.21

6 months ago

0.0.98

6 months ago

0.0.97

6 months ago

3.0.26

6 months ago

2.0.20

6 months ago

0.0.96

6 months ago

0.0.95

6 months ago

3.0.25

6 months ago

0.0.94

6 months ago

0.0.93

6 months ago

3.0.24

6 months ago

3.0.23

6 months ago

0.0.92

6 months ago

3.0.22

6 months ago

0.0.91

6 months ago

3.0.21

6 months ago

0.0.90

6 months ago

3.0.20

6 months ago

3.0.19

6 months ago

2.0.19

6 months ago

2.0.18

6 months ago

2.0.17

6 months ago

0.0.89

6 months ago

0.0.88

6 months ago

0.0.87

6 months ago

3.0.18

6 months ago

2.0.16

6 months ago

2.0.15

6 months ago

0.0.86

6 months ago

2.0.14

6 months ago

0.0.85

6 months ago

3.0.16

6 months ago

3.0.15

7 months ago

2.0.13

7 months ago

0.0.84

7 months ago

0.0.83

7 months ago

0.0.82

7 months ago

0.0.81

7 months ago

0.0.80

7 months ago

0.0.79

7 months ago

3.0.14

7 months ago

2.0.12

7 months ago

0.0.78

7 months ago

0.0.77

7 months ago

0.0.76

7 months ago

0.0.75

7 months ago

0.0.74

7 months ago

3.0.13

7 months ago

3.0.12

7 months ago

2.0.11

7 months ago

3.0.11

7 months ago

2.0.10

7 months ago

0.0.73

7 months ago

0.0.72

7 months ago

3.0.10

7 months ago

2.0.9

7 months ago

0.0.71

7 months ago

3.0.9

7 months ago

3.0.8

7 months ago

0.0.70

7 months ago

0.0.69

7 months ago

3.0.7

7 months ago

3.0.6

7 months ago

2.0.8

7 months ago

0.0.68

7 months ago

2.0.7

7 months ago

0.0.66

7 months ago

0.0.65

7 months ago

2.0.6

7 months ago

0.0.64

7 months ago

0.0.63

7 months ago

2.0.5

7 months ago

0.0.62

7 months ago

0.0.61

7 months ago

3.0.5

7 months ago

0.0.60

7 months ago

0.0.59

7 months ago

0.0.58

7 months ago

0.0.57

7 months ago

0.0.56

7 months ago

0.0.55

7 months ago

0.0.54

7 months ago

0.0.53

7 months ago

0.0.52

7 months ago

0.0.51

7 months ago

0.0.50

7 months ago

0.0.49

7 months ago

0.0.48

7 months ago

0.0.47

7 months ago

0.0.46

7 months ago

0.0.45

7 months ago

0.0.44

7 months ago

2.0.4

7 months ago

3.0.4

7 months ago

0.0.43

7 months ago

0.0.42

7 months ago

0.0.41

7 months ago

2.0.3

7 months ago

0.0.40

7 months ago

3.0.3

7 months ago

0.0.39

7 months ago

2.0.2

7 months ago

2.0.1

7 months ago

0.0.38

7 months ago

0.0.37

7 months ago

0.0.36

7 months ago

3.0.2

7 months ago

0.0.35

7 months ago

0.0.34

7 months ago

0.0.33

7 months ago

3.0.1

7 months ago

0.0.32

7 months ago

0.0.31

7 months ago

0.0.30

7 months ago

0.0.29

7 months ago

0.0.28

7 months ago

0.0.27

7 months ago

0.0.26

7 months ago

0.0.25

7 months ago

0.0.24

7 months ago

0.0.23

7 months ago

0.0.22

7 months ago

0.0.21

7 months ago

0.0.20

7 months ago

0.0.19

7 months ago

0.0.18

7 months ago

0.0.17

7 months ago

0.0.16

7 months ago

0.0.15

7 months ago

0.0.14

7 months ago

0.0.13

7 months ago

0.0.11

7 months ago

0.0.10

8 months ago

0.0.9

8 months ago

0.0.8

8 months ago

0.0.7

8 months ago

0.0.6

8 months ago

0.0.5

8 months ago