@axa-fr/slimfaas-planet-saver

中文文档
0.88.0发布于 2026/11/07MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2563

SlimFaas API将基础设施的复原力转化为UX的复原力并帮助拯救地球

中文使用文档
文档目录6 节
  1. 开始
  2. 用法 :
  3. 运行演示
  4. 配置选项
  5. 关于行为的说明
  6. 生命周期

@axa-fr/slimfaas-plane-save (英语)

npm version

SlimFaas

拯救地球的"香草JS"计划. 斯利姆·法斯(英语:https://github.com/斯利姆普兰特/斯利姆法斯)是库伯涅茨上最细而最简单的功能A级服务. 它作为一个代名词可以被部署在命名空间.

SlimFaas API可以向前端提供基础设施状态的信息. 这是一个改变主意的人!

为什么?

因为在生产中,不设2个复制品的API后端,而是可以设置0个复制品,并使用UX,向用户显示后端已经倒下! @axa-fr/slimfaas-plane-save (英语) 是来做这么容易.

SlimFaas Planet Saver

开始

npm install @axa-fr/slimfaas-planet-saver

反应使用示例 :

import React, { useState, useEffect, useRef } from 'react';
import { SlimFaasPlanetSaver } from '@axa-fr/slimfaas-planet-saver';

const PlanetSaver = ({ children, baseUrl, fetch, noActivityTimeout=60000, behavior={} }) => {
    const [isFirstStart, setIsFirstStart] = useState(true);
    const instanceRef = useRef(null);

    useEffect(() => {
        if (!baseUrl) return;

        if (instanceRef.current) return;

        const instance = new SlimFaasPlanetSaver(baseUrl, {
            interval: 2000,
            fetch,
            behavior,
            updateCallback: (data) => {
                const inst = instanceRef.current;
                // Filter only the items that block the UI (WakeUp+BlockUI)
                const blockingItems = data.filter(
                    (item) => inst?.getBehavior(item.Name) === 'WakeUp+BlockUI'
                );

                // If all blocking items are ready, set isFirstStart to false
                const allBlockingReady = blockingItems.every(
                    (item) => item.NumberReady >= 1
                );
                if (allBlockingReady && isFirstStart) {
                    setIsFirstStart(false);
                }
            },
            errorCallback: (error) => {
                console.error('Error detected :', error);
            },
            overlayStartingMessage: '🌳 Starting the environment.... 🌳',
            overlayNoActivityMessage: 'Waiting activity to start environment...',
            overlayErrorMessage: 'An error occurred when starting environment. Please contact an administrator.',
            overlaySecondaryMessage: 'Startup should be fast, but if no machines are available it can take several minutes.',
            overlayLoadingIcon: '🌍',
            overlayErrorSecondaryMessage: 'If the error persists, please contact an administrator.',
            noActivityTimeout
        });

        instanceRef.current = instance;

        // Initialiser les effets de bord
        instance.initialize();
        instance.startPolling();

        return () => {
            try {
                instance.cleanup();
            } finally {
                instanceRef.current = null;
            }
        };
    }, [baseUrl]);

    if (isFirstStart) {
        return null;
    }

    return <>{children}</>;
};

export default PlanetSaver;



用法 :

const behavior: {
    "api-speech-to-text": "WakeUp",
    "heavy-pdf-service": "WakeUp+BlockUI",
    "deprecated-service": "None"
}

<PlanetSaver baseUrl="http://slimfaas.mycompany.com" fetch={window.fetch} behavior={behavior}>
  <App />
</PlanetSaver>

运行演示

git clone https://github.com/SlimPlanet/slimfaas.git
cd slimfaas/src/SlimFaasPlanetSaver
npm i
npm run dev

这将启动本地 dev 服务器, 让您看到 SlimFaasPlanetSaver 行动中.


配置选项

当你创建一个 new SlimFaasPlanetSaver(baseUrl, options), 您可以在 options 对象 :

财产类型默认说明
更新回调(data: any[]) => void() => {}在成功获取函数状态后调用函数 。 数组数据包括有关每个函数的信息对象,例如: [{ Name: 'myFunc', NumberReady: 1 }, ...]。 。 。 .
调用错误(errorMessage: string) => void() => {}如果在状态获取过程中发生错误( 如网络错误) , 则调用函数 。 接收错误信息串.
间隔number5000投票的频率(以毫秒计).
重叠启动string"🌳 Starting the environment.... 🌳"当环境被唤醒时,主信息显示在覆盖上.
覆盖无活动string"Waiting activity to start environment..."如果用户活动(mouse movement)持续过长, 则显示消息, 但环境尚未准备好 .
重叠错误string"An error occurred while starting the environment."如果出现错误(例如网络出错),则在覆盖上显示的主要消息.
叠加二进制string"Startup should be fast, but if no machines are available it can take several minutes."当环境被唤醒时,在覆被上显示次要信息.
重叠错误string"If the error persists, please contact an administrator."当错误发生时, 在覆盖上显示的次要信件 .
覆盖LoadingIconstring"🌍"覆盖上显示的文本或图标 。 默认为自旋动画.
无活动 超时number60000等待鼠标移动的时间(以毫秒计)多久才能结束没有活动. 如果没有检测到活动,则显示不同的覆盖信息 .
唤醒时间number60000如果某个功能最近被“唤起”, 我们将在这个超时窗口内跳过唤醒.
获取typeof fetch全局获取自定义获取函数, 如果您想要提供自己的功能( 例如, 为 SSR , 或者您的环境没有全局获取) .
行为{ [functionName: string]: 'WakeUp+BlockUI' | 'WakeUp' | 'None' }未设置; 如果未指定, 每个函数默认为“ WakeUp+ BlockUI ”允许您覆盖每个函数的处理方式: 1. "WakeUp+BlockUI":唤醒功能并用上下文来阻挡UI,直到它准备好。 2. 联合国. "WakeUp":醒来时没有挡住UI. 3个. "None":没有唤醒.

关于行为的说明

如果一个函数是 没有 在行为映射图中指定,默认为 "WakeUp+BlockUI"。 。 。 .

  • "WakeUp+BlockUI" 表示覆盖将显示到该函数 NumberReady >= 1。 。 。 .
  • "WakeUp" 表示我们试图唤醒函数,但不保留该函数所显示的复数.
  • "None" 表示该功能不会被唤醒,也不会被屏蔽UI.

生命周期

  1. 初始化 打电话 instance.initialize() 以创建覆盖元素,注入样式,并绑定事件听众(如鼠标移动).

  2. 开始投票 打电话 instance.startPolling() 开始对环境进行定期检查。 如果环境还没有准备好,则会出现叠加.

  3. 停止投票/ 清理 当组件卸载或不再需要监视环境时,请拨 instance.cleanup()。这可以删除覆盖、样式和任何定时器或事件听众.

版本与发布记录

@axa-fr/slimfaas-planet-saver 共发布 867 个版本,首次发布于 2024/11/30;过去 12 个月发布了 275 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.88.0latest2026/11/07今天
0.87.12026/11/07今天
0.87.02026/11/053 天前
0.87.0-dev.1209dev2026/11/043 天前
0.86.42026/11/025 天前
0.86.32026/11/025 天前

关于 @axa-fr/slimfaas-planet-saver 的常见问题

@axa-fr/slimfaas-planet-saver 是什么?

SlimFaas API将基础设施的复原力转化为UX的复原力并帮助拯救地球

如何安装 @axa-fr/slimfaas-planet-saver?

在项目目录运行 npm install @axa-fr/slimfaas-planet-saver,或使用 pnpm add / yarn add / bun add。

@axa-fr/slimfaas-planet-saver 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@axa-fr/slimfaas-planet-saver 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@axa-fr/slimfaas-planet-saver 可以商用吗?

@axa-fr/slimfaas-planet-saver 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@axa-fr/slimfaas-planet-saver 的下载量有多少?

根据 npm 官方下载统计,@axa-fr/slimfaas-planet-saver 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,563 次,日均约 85 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@axa-fr/slimfaas-planet-saver 还在维护吗?

最新版本 0.88.0 发布于 2026/11/07(今天);至今共发布 867 个版本,其中过去 12 个月发布了 275 个;首次发布于 2024/11/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。