@coralai/sps-plugin-storage-sync 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare const name = "storage-sync";
|
|
|
24
24
|
export declare const category = "\u5B58\u50A8";
|
|
25
25
|
export declare const description = "\u5DE5\u4F5C\u533A \u2192 \u5BF9\u8C61\u5B58\u50A8\u540C\u6B65:\u6309\u4EA7\u54C1\u58F0\u660E\u7684\u8303\u56F4,\u628A\u7528\u6237\u4EA7\u7269\u589E\u91CF\u642C\u5230 S3 \u517C\u5BB9\u6876\u3002";
|
|
26
26
|
interface ApplyCtx {
|
|
27
|
-
effect(fn: () => void): void;
|
|
27
|
+
effect(fn: () => (() => void) | void): void;
|
|
28
28
|
logger?: {
|
|
29
29
|
info(msg: string): void;
|
|
30
30
|
warn(msg: string): void;
|
package/dist/index.js
CHANGED
|
@@ -65,13 +65,19 @@ export function apply(ctx, config) {
|
|
|
65
65
|
// 没查线上装着的插件 ⇒ gameforge-art 永远 PENDING、六个 art.* 能力全缺席。
|
|
66
66
|
// ⇒ 契约留在 `@coralai/sps-plugin-api`,**实现跟着持有桶凭据的这个插件走**。
|
|
67
67
|
const backend = new MinioBackend(config);
|
|
68
|
-
|
|
68
|
+
// 🔴 `ctx.effect(fn)` **立即执行 fn**,并把 fn 的返回值当卸载时的 disposer。
|
|
69
|
+
// 第一版写成 `const d = provide(...); ctx.effect(() => d())` ——
|
|
70
|
+
// 那当场就把刚 provide 的服务撤销了,而且**没有任何报错**:
|
|
71
|
+
// apply 照常跑完、日志照常打,只有 inject 它的插件永远 PENDING。
|
|
72
|
+
// (2026-08-28 实测:线上 `reflect.get('sps.storage')` 拿不到,
|
|
73
|
+
// 而同一次装配里 `[sps-sync] 常驻` 已经打出来了。)
|
|
74
|
+
// ⇒ 本仓先例是 `ctx.effect(() => ctx[AGENTS].register(f))` —— register 返回 unregister。
|
|
75
|
+
ctx.effect(() => ctx.reflect.provide('sps.storage', {
|
|
69
76
|
configured: () => Boolean(config.endpoint && config.bucket && config.enabled !== false),
|
|
70
77
|
get: (key) => backend.get(key),
|
|
71
78
|
list: (prefix) => backend.list(prefix),
|
|
72
79
|
put: (key, bytes, contentType) => backend.put(key, bytes, contentType),
|
|
73
|
-
});
|
|
74
|
-
ctx.effect(() => disposeStorage());
|
|
80
|
+
}));
|
|
75
81
|
log(`[sps-sync] 常驻:间隔=${intervalMs}ms 范围=近 ${sinceDays || '∞'} 天`);
|
|
76
82
|
void tick().finally(schedule);
|
|
77
83
|
// 插件卸载/重挂时停掉循环 —— 否则改一次配置就多一个循环在跑。
|