@certd/pipeline 1.38.1 → 1.38.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.38.3](https://github.com/certd/certd/compare/v1.38.2...v1.38.3) (2026-01-28)
7
+
8
+ **Note:** Version bump only for package @certd/pipeline
9
+
10
+ ## [1.38.2](https://github.com/certd/certd/compare/v1.38.1...v1.38.2) (2026-01-22)
11
+
12
+ ### Bug Fixes
13
+
14
+ * 修复插件修改名字和删除后没有注销注册的bug ([61192b9](https://github.com/certd/certd/commit/61192b998a7088a8f446fd224cc242def462a79b))
15
+
16
+ ### Performance Improvements
17
+
18
+ * 支持同步域名过期时间 ([a97cee8](https://github.com/certd/certd/commit/a97cee84f3bfdeeb2083d91f748cac5405fed6ae))
19
+
6
20
  ## [1.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15)
7
21
 
8
22
  ### Bug Fixes
@@ -6,11 +6,11 @@ export type PageSearch = {
6
6
  pageSize?: number;
7
7
  searchKey?: string;
8
8
  };
9
- export type PageRes = {
9
+ export type PageRes<T = any> = {
10
10
  pageNo?: number;
11
11
  pageSize?: number;
12
- total?: string;
13
- list: any[];
12
+ total?: number;
13
+ list: T[];
14
14
  };
15
15
  export declare class Pager {
16
16
  pageNo: number;
@@ -19,3 +19,10 @@ export declare class Pager {
19
19
  getOffset(): number;
20
20
  setOffset(offset: number): void;
21
21
  }
22
+ export type PageTurnReq<T = any> = {
23
+ pager: Pager;
24
+ getPage: (pager: Pager) => Promise<PageRes<T>>;
25
+ itemHandle?: (item: T) => Promise<void>;
26
+ batchHandle?: (pageRes: PageRes<T>) => Promise<void>;
27
+ };
28
+ export declare function doPageTurn<T>(req: PageTurnReq<T>): Promise<number>;
@@ -12,3 +12,28 @@ export class Pager {
12
12
  this.pageNo = Math.ceil(offset / (this.pageSize ?? 50)) + 1;
13
13
  }
14
14
  }
15
+ export async function doPageTurn(req) {
16
+ let count = 0;
17
+ const { pager, getPage, itemHandle, batchHandle } = req;
18
+ while (true) {
19
+ const pageRes = await getPage(pager);
20
+ if (!pageRes || !pageRes.list || pageRes.list.length === 0) {
21
+ break;
22
+ }
23
+ count += pageRes.list.length;
24
+ if (batchHandle) {
25
+ await batchHandle(pageRes);
26
+ }
27
+ if (itemHandle) {
28
+ for (const item of pageRes.list) {
29
+ await itemHandle(item);
30
+ }
31
+ }
32
+ if (pageRes.total && pageRes.total >= 0 && count >= pageRes.total) {
33
+ //遍历完成
34
+ break;
35
+ }
36
+ pager.pageNo++;
37
+ }
38
+ return count;
39
+ }
@@ -18,4 +18,13 @@ const onRegister = ({ key, value }) => {
18
18
  }
19
19
  pluginGroups.other.plugins.push(value.define);
20
20
  };
21
- export const pluginRegistry = createRegistry("plugin", onRegister);
21
+ const onUnRegister = ({ key }) => {
22
+ for (const group of Object.values(pluginGroups)) {
23
+ const index = group.plugins.findIndex(plugin => plugin.name === key);
24
+ if (index > -1) {
25
+ group.plugins.splice(index, 1);
26
+ return;
27
+ }
28
+ }
29
+ };
30
+ export const pluginRegistry = createRegistry("plugin", onRegister, onUnRegister);
@@ -23,7 +23,8 @@ export declare class Registry<T = any> {
23
23
  [key: string]: RegistryItem<T>;
24
24
  };
25
25
  onRegister?: OnRegister<T>;
26
- constructor(type: string, onRegister?: OnRegister<T>);
26
+ onUnRegister?: OnRegister<T>;
27
+ constructor(type: string, onRegister?: OnRegister<T>, onUnRegister?: OnRegister<T>);
27
28
  register(key: string, value: RegistryItem<T>): void;
28
29
  unRegister(key: string): void;
29
30
  get(name: string): RegistryItem<T>;
@@ -41,4 +42,4 @@ export declare class Registry<T = any> {
41
42
  }[];
42
43
  getDefine(key: string, prefix?: string): Registrable | undefined;
43
44
  }
44
- export declare function createRegistry<T>(type: string, onRegister?: OnRegister<T>): Registry<T>;
45
+ export declare function createRegistry<T>(type: string, onRegister?: OnRegister<T>, onUnRegister?: OnRegister<T>): Registry<T>;
@@ -3,9 +3,11 @@ export class Registry {
3
3
  type = "";
4
4
  storage = {};
5
5
  onRegister;
6
- constructor(type, onRegister) {
6
+ onUnRegister;
7
+ constructor(type, onRegister, onUnRegister) {
7
8
  this.type = type;
8
9
  this.onRegister = onRegister;
10
+ this.onUnRegister = onUnRegister;
9
11
  }
10
12
  register(key, value) {
11
13
  if (!key || value == null) {
@@ -22,6 +24,13 @@ export class Registry {
22
24
  logger.info(`注册插件:${this.type}:${key}`);
23
25
  }
24
26
  unRegister(key) {
27
+ if (this.onUnRegister) {
28
+ this.onUnRegister({
29
+ registry: this,
30
+ key,
31
+ value: this.storage[key],
32
+ });
33
+ }
25
34
  delete this.storage[key];
26
35
  logger.info(`反注册插件:${this.type}:${key}`);
27
36
  }
@@ -74,7 +83,7 @@ export class Registry {
74
83
  return item.define;
75
84
  }
76
85
  }
77
- export function createRegistry(type, onRegister) {
86
+ export function createRegistry(type, onRegister, onUnRegister) {
78
87
  const pipelineregistrycacheKey = "PIPELINE_REGISTRY_CACHE";
79
88
  // @ts-ignore
80
89
  let cached = global[pipelineregistrycacheKey];
@@ -86,7 +95,7 @@ export function createRegistry(type, onRegister) {
86
95
  if (cached[type]) {
87
96
  return cached[type];
88
97
  }
89
- const newRegistry = new Registry(type, onRegister);
98
+ const newRegistry = new Registry(type, onRegister, onUnRegister);
90
99
  cached[type] = newRegistry;
91
100
  return newRegistry;
92
101
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@certd/pipeline",
3
3
  "private": false,
4
- "version": "1.38.1",
4
+ "version": "1.38.3",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -18,8 +18,8 @@
18
18
  "compile": "tsc --skipLibCheck --watch"
19
19
  },
20
20
  "dependencies": {
21
- "@certd/basic": "^1.38.1",
22
- "@certd/plus-core": "^1.38.1",
21
+ "@certd/basic": "^1.38.3",
22
+ "@certd/plus-core": "^1.38.3",
23
23
  "dayjs": "^1.11.7",
24
24
  "lodash-es": "^4.17.21",
25
25
  "reflect-metadata": "^0.1.13"
@@ -45,5 +45,5 @@
45
45
  "tslib": "^2.8.1",
46
46
  "typescript": "^5.4.2"
47
47
  },
48
- "gitHead": "2c80c35b21b3f435e835167fca13db510bbc38a2"
48
+ "gitHead": "ee6cdfb391568ad8532701a2c37ee53e88e39f75"
49
49
  }