@certd/pipeline 1.38.1 → 1.38.2
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 +10 -0
- package/dist/context/index.d.ts +9 -3
- package/dist/context/index.js +25 -0
- package/dist/plugin/registry.js +10 -1
- package/dist/registry/registry.d.ts +3 -2
- package/dist/registry/registry.js +12 -3
- package/package.json +4 -4
- package/test/dist/index.test.js +17 -0
- package/stats.html +0 -6177
- package/test/echo-plugin.js +0 -86
- package/test/pipeline/access-service-test.js +0 -65
- package/test/user.secret.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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.2](https://github.com/certd/certd/compare/v1.38.1...v1.38.2) (2026-01-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* 修复插件修改名字和删除后没有注销注册的bug ([61192b9](https://github.com/certd/certd/commit/61192b998a7088a8f446fd224cc242def462a79b))
|
|
11
|
+
|
|
12
|
+
### Performance Improvements
|
|
13
|
+
|
|
14
|
+
* 支持同步域名过期时间 ([a97cee8](https://github.com/certd/certd/commit/a97cee84f3bfdeeb2083d91f748cac5405fed6ae))
|
|
15
|
+
|
|
6
16
|
## [1.38.1](https://github.com/certd/certd/compare/v1.38.0...v1.38.1) (2026-01-15)
|
|
7
17
|
|
|
8
18
|
### Bug Fixes
|
package/dist/context/index.d.ts
CHANGED
|
@@ -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?:
|
|
13
|
-
list:
|
|
12
|
+
total?: number;
|
|
13
|
+
list: T[];
|
|
14
14
|
};
|
|
15
15
|
export declare class Pager {
|
|
16
16
|
pageNo: number;
|
|
@@ -19,3 +19,9 @@ export declare class Pager {
|
|
|
19
19
|
getOffset(): number;
|
|
20
20
|
setOffset(offset: number): void;
|
|
21
21
|
}
|
|
22
|
+
export declare function doPageTurn<T>(req: {
|
|
23
|
+
pager: Pager;
|
|
24
|
+
getPage: (pager: Pager) => Promise<PageRes<T>>;
|
|
25
|
+
itemHandle?: (item: T) => Promise<void>;
|
|
26
|
+
batchHandle?: (pageRes: PageRes<T>) => Promise<void>;
|
|
27
|
+
}): Promise<number>;
|
package/dist/context/index.js
CHANGED
|
@@ -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
|
+
}
|
package/dist/plugin/registry.js
CHANGED
|
@@ -18,4 +18,13 @@ const onRegister = ({ key, value }) => {
|
|
|
18
18
|
}
|
|
19
19
|
pluginGroups.other.plugins.push(value.define);
|
|
20
20
|
};
|
|
21
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
4
|
+
"version": "1.38.2",
|
|
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.
|
|
22
|
-
"@certd/plus-core": "^1.38.
|
|
21
|
+
"@certd/basic": "^1.38.2",
|
|
22
|
+
"@certd/plus-core": "^1.38.2",
|
|
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": "
|
|
48
|
+
"gitHead": "f92dc6a1ad103de9cc184da3b84096943906cb59"
|
|
49
49
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { expect } from "chai";
|
|
2
|
+
import "mocha";
|
|
3
|
+
import { EchoPlugin } from "./echo-plugin.js";
|
|
4
|
+
describe("task_plugin", function () {
|
|
5
|
+
it("#taskplugin", function () {
|
|
6
|
+
console.log("before new plugin");
|
|
7
|
+
const echoPlugin = new EchoPlugin();
|
|
8
|
+
console.log("before set property", echoPlugin);
|
|
9
|
+
echoPlugin.cert = { test: 1 };
|
|
10
|
+
console.log("before execute");
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
echoPlugin.execute();
|
|
13
|
+
console.log("after execute");
|
|
14
|
+
expect(echoPlugin.cert.test).eq(1);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLEVBQUUsQ0FBQyxhQUFhLEVBQUU7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxVQUFVLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QixhQUFhO1FBQ2IsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|