@xfe-repo/bff-transform 1.0.0

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.
Files changed (42) hide show
  1. package/README.md +3 -0
  2. package/dist/chunk-G2JFFY2W.mjs +103 -0
  3. package/dist/chunk-MWZOUQAS.mjs +51 -0
  4. package/dist/chunk-NZ6LDQJI.mjs +564 -0
  5. package/dist/chunk-O7SEPPUS.mjs +23 -0
  6. package/dist/chunk-Q7G5RLD4.mjs +9 -0
  7. package/dist/chunk-V62BSXTW.mjs +28 -0
  8. package/dist/chunk-XUGPHFIH.mjs +49 -0
  9. package/dist/chunk-YP5H6IG4.mjs +130 -0
  10. package/dist/index.d.mts +79 -0
  11. package/dist/index.d.ts +79 -0
  12. package/dist/index.js +1042 -0
  13. package/dist/index.mjs +147 -0
  14. package/dist/transform.decorators.d.mts +13 -0
  15. package/dist/transform.decorators.d.ts +13 -0
  16. package/dist/transform.decorators.js +50 -0
  17. package/dist/transform.decorators.mjs +9 -0
  18. package/dist/transform.interceptor.d.mts +16 -0
  19. package/dist/transform.interceptor.d.ts +16 -0
  20. package/dist/transform.interceptor.js +289 -0
  21. package/dist/transform.interceptor.mjs +10 -0
  22. package/dist/transform.iplugin.d.mts +22 -0
  23. package/dist/transform.iplugin.d.ts +22 -0
  24. package/dist/transform.iplugin.js +72 -0
  25. package/dist/transform.iplugin.mjs +9 -0
  26. package/dist/transform.metadata-storage.d.mts +9 -0
  27. package/dist/transform.metadata-storage.d.ts +9 -0
  28. package/dist/transform.metadata-storage.js +55 -0
  29. package/dist/transform.metadata-storage.mjs +7 -0
  30. package/dist/transform.module.d.mts +14 -0
  31. package/dist/transform.module.d.ts +14 -0
  32. package/dist/transform.module.js +887 -0
  33. package/dist/transform.module.mjs +12 -0
  34. package/dist/transform.plugin.manager.d.mts +21 -0
  35. package/dist/transform.plugin.manager.d.ts +21 -0
  36. package/dist/transform.plugin.manager.js +247 -0
  37. package/dist/transform.plugin.manager.mjs +9 -0
  38. package/dist/traverse.utils.d.mts +15 -0
  39. package/dist/traverse.utils.d.ts +15 -0
  40. package/dist/traverse.utils.js +124 -0
  41. package/dist/traverse.utils.mjs +7 -0
  42. package/package.json +50 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # `@xfe-repo/bff-transform`
2
+
3
+ bff transform 字段转换库
@@ -0,0 +1,103 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-Q7G5RLD4.mjs";
4
+
5
+ // src/traverse.utils.ts
6
+ function traverse(obj, callback, options = {}) {
7
+ const { maxDepth = Infinity, detectCircular = false, method = "iterative" } = options;
8
+ if (method === "recursive") {
9
+ recursiveTraverse(obj, callback, maxDepth, detectCircular);
10
+ } else {
11
+ iterativeTraverse(obj, callback, maxDepth, detectCircular);
12
+ }
13
+ }
14
+ __name(traverse, "traverse");
15
+ function recursiveTraverse(current, callback, maxDepth, detectCircular, path = [], parent = null, seen = /* @__PURE__ */ new WeakSet()) {
16
+ if (path.length > maxDepth) return;
17
+ const key = path.length > 0 ? path[path.length - 1] : null;
18
+ callback({
19
+ value: current,
20
+ key,
21
+ path,
22
+ parent
23
+ });
24
+ if (detectCircular && typeof current === "object" && current !== null) {
25
+ if (seen.has(current)) return;
26
+ seen.add(current);
27
+ }
28
+ if (current !== null && typeof current === "object" && path.length < maxDepth) {
29
+ if (Array.isArray(current)) {
30
+ for (let i = 0; i < current.length; i++) {
31
+ recursiveTraverse(current[i], callback, maxDepth, detectCircular, [
32
+ ...path,
33
+ i
34
+ ], current, seen);
35
+ }
36
+ } else {
37
+ for (const [k, v] of Object.entries(current)) {
38
+ recursiveTraverse(v, callback, maxDepth, detectCircular, [
39
+ ...path,
40
+ k
41
+ ], current, seen);
42
+ }
43
+ }
44
+ }
45
+ }
46
+ __name(recursiveTraverse, "recursiveTraverse");
47
+ function iterativeTraverse(root, callback, maxDepth, detectCircular) {
48
+ const stack = [
49
+ {
50
+ value: root,
51
+ path: [],
52
+ parent: null
53
+ }
54
+ ];
55
+ const seen = detectCircular ? /* @__PURE__ */ new WeakSet() : null;
56
+ while (stack.length > 0) {
57
+ const { value, path, parent } = stack.pop();
58
+ if (path.length > maxDepth) continue;
59
+ const key = path.length > 0 ? path[path.length - 1] : null;
60
+ callback({
61
+ value,
62
+ key,
63
+ path,
64
+ parent
65
+ });
66
+ if (value !== null && typeof value === "object" && path.length < maxDepth) {
67
+ if (detectCircular) {
68
+ if (seen.has(value)) continue;
69
+ seen.add(value);
70
+ }
71
+ if (Array.isArray(value)) {
72
+ for (let i = value.length - 1; i >= 0; i--) {
73
+ stack.push({
74
+ value: value[i],
75
+ path: [
76
+ ...path,
77
+ i
78
+ ],
79
+ parent: value
80
+ });
81
+ }
82
+ } else {
83
+ const keys = Object.keys(value);
84
+ for (let i = keys.length - 1; i >= 0; i--) {
85
+ const k = keys[i];
86
+ stack.push({
87
+ value: value[k],
88
+ path: [
89
+ ...path,
90
+ k
91
+ ],
92
+ parent: value
93
+ });
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ __name(iterativeTraverse, "iterativeTraverse");
100
+
101
+ export {
102
+ traverse
103
+ };
@@ -0,0 +1,51 @@
1
+ import {
2
+ TransformPluginManager
3
+ } from "./chunk-YP5H6IG4.mjs";
4
+ import {
5
+ __name,
6
+ __publicField
7
+ } from "./chunk-Q7G5RLD4.mjs";
8
+
9
+ // src/transform.interceptor.ts
10
+ import { Injectable, Logger } from "@nestjs/common";
11
+ import { mergeMap } from "rxjs/operators";
12
+ function _ts_decorate(decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ }
18
+ __name(_ts_decorate, "_ts_decorate");
19
+ function _ts_metadata(k, v) {
20
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
21
+ }
22
+ __name(_ts_metadata, "_ts_metadata");
23
+ var _TransformInterceptor = class _TransformInterceptor {
24
+ constructor(transformPluginManager) {
25
+ __publicField(this, "transformPluginManager");
26
+ __publicField(this, "logger", new Logger(_TransformInterceptor.name));
27
+ this.transformPluginManager = transformPluginManager;
28
+ }
29
+ intercept(_context, next) {
30
+ return next.handle().pipe(mergeMap(async (data) => {
31
+ if (!data) return data;
32
+ await this.transformPluginManager.main(data).catch((error) => {
33
+ this.logger.error("PluginManager execute failed:", error);
34
+ });
35
+ return data;
36
+ }));
37
+ }
38
+ };
39
+ __name(_TransformInterceptor, "TransformInterceptor");
40
+ var TransformInterceptor = _TransformInterceptor;
41
+ TransformInterceptor = _ts_decorate([
42
+ Injectable(),
43
+ _ts_metadata("design:type", Function),
44
+ _ts_metadata("design:paramtypes", [
45
+ typeof TransformPluginManager === "undefined" ? Object : TransformPluginManager
46
+ ])
47
+ ], TransformInterceptor);
48
+
49
+ export {
50
+ TransformInterceptor
51
+ };