@byteluck-fe/model-driven-upgrade 2.23.0-beta.4 → 2.23.0-beta.7

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.
@@ -0,0 +1,133 @@
1
+ function _class_call_check(instance, Constructor) {
2
+ if (!(instance instanceof Constructor)) {
3
+ throw new TypeError("Cannot call a class as a function");
4
+ }
5
+ }
6
+ function _defineProperties(target, props) {
7
+ for(var i = 0; i < props.length; i++){
8
+ var descriptor = props[i];
9
+ descriptor.enumerable = descriptor.enumerable || false;
10
+ descriptor.configurable = true;
11
+ if ("value" in descriptor) descriptor.writable = true;
12
+ Object.defineProperty(target, descriptor.key, descriptor);
13
+ }
14
+ }
15
+ function _create_class(Constructor, protoProps, staticProps) {
16
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
17
+ if (staticProps) _defineProperties(Constructor, staticProps);
18
+ return Constructor;
19
+ }
20
+ function _define_property(obj, key, value) {
21
+ if (key in obj) {
22
+ Object.defineProperty(obj, key, {
23
+ value: value,
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true
27
+ });
28
+ } else {
29
+ obj[key] = value;
30
+ }
31
+ return obj;
32
+ }
33
+ import { error, log } from '@byteluck-fe/model-driven-shared';
34
+ import dataCleaner from './upgrade';
35
+ import { compareVersions, compare } from 'compare-versions';
36
+ function versionReplace$v(version) {
37
+ return version.replace(/^v/, '');
38
+ }
39
+ function versionToNumber(version) {
40
+ return Number(versionReplace$v(version));
41
+ }
42
+ var versionKeys = Object.keys(dataCleaner).map(function(key) {
43
+ return versionReplace$v(key);
44
+ }).sort(compareVersions);
45
+ var nowVersion = versionKeys[versionKeys.length - 1];
46
+ // const result = compareVersions('2.10', '3.1')
47
+ // const sort = versionKeys.sort(compareVersions)
48
+ // console.log('compareVersions', result, sort)
49
+ export var VersionBuilder = /*#__PURE__*/ function() {
50
+ "use strict";
51
+ function VersionBuilder(schemaVersion) {
52
+ var version = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : nowVersion;
53
+ _class_call_check(this, VersionBuilder);
54
+ _define_property(this, "toVersion", void 0);
55
+ _define_property(this, "schemaVersion", void 0);
56
+ this.schemaVersion = schemaVersion;
57
+ this.toVersion = version;
58
+ // if (versionToNumber(version) > versionToNumber(nowVersion)) {
59
+ if (compare(version, nowVersion, '>')) {
60
+ error("Version Builder: The specified ".concat(version, " is an undefined version, and the current latest version is ").concat(nowVersion));
61
+ } else if (!versionKeys.includes(versionReplace$v(version)) || !versionKeys.includes(versionReplace$v(schemaVersion))) {
62
+ error("Version Builder: Please give me a valid version number, The valid version is: ".concat(versionKeys.join(','), ", But give me a ").concat(schemaVersion));
63
+ }
64
+ }
65
+ _create_class(VersionBuilder, [
66
+ {
67
+ key: "dataCleaner",
68
+ value: function dataCleaner1(schema, payload) {
69
+ var _this = this;
70
+ // if (this._version === this._schemaVersion) {
71
+ if (compare(this.toVersion, this.schemaVersion, '=')) {
72
+ return schema;
73
+ }
74
+ var result = this.callDataCleanerKeys.reduce(function(schema, currentVersion, index, arr) {
75
+ var _arr_;
76
+ var nextVersion = (_arr_ = arr[index + 1]) !== null && _arr_ !== void 0 ? _arr_ : _this.toVersion;
77
+ log("Version Builder: current version: ".concat(currentVersion, ", nextVersion: ").concat(nextVersion));
78
+ var callback = dataCleaner[currentVersion];
79
+ var result = schema;
80
+ if (typeof callback === 'function') {
81
+ var callResult = callback(schema, payload);
82
+ if (callResult) {
83
+ result = callResult;
84
+ }
85
+ }
86
+ return result;
87
+ }, schema);
88
+ log("Version Builder: Version conversion completed, evolving from ".concat(this.schemaVersion, " to ").concat(this.toVersion));
89
+ return result;
90
+ }
91
+ },
92
+ {
93
+ key: "runDataCleanerKeys",
94
+ get: function get() {
95
+ var _this = this;
96
+ return versionKeys.filter(function(item) {
97
+ return(// Number(item) >= this._schemaVersion && Number(item) < this._version
98
+ compare(item, _this.schemaVersion, '>=') && compare(item, _this.toVersion, '<'));
99
+ });
100
+ }
101
+ },
102
+ {
103
+ key: "callDataCleanerKeys",
104
+ get: function get() {
105
+ return this.runDataCleanerKeys.map(function(key) {
106
+ return 'v' + key;
107
+ });
108
+ }
109
+ },
110
+ {
111
+ key: "version",
112
+ get: // private get _version() {
113
+ // return versionToNumber(this.toVersion)
114
+ // }
115
+ // private get _schemaVersion() {
116
+ // return versionToNumber(this.schemaVersion)
117
+ // }
118
+ /*
119
+ * 最新版本号
120
+ * */ function get() {
121
+ return nowVersion;
122
+ }
123
+ }
124
+ ], [
125
+ {
126
+ key: "version",
127
+ get: function get() {
128
+ return nowVersion;
129
+ }
130
+ }
131
+ ]);
132
+ return VersionBuilder;
133
+ }();
@@ -0,0 +1,2 @@
1
+ export * from './VersionBuilder';
2
+ export * from './types';
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,57 @@
1
+ /*
2
+ * @Author: changjiaqi@byteluck.com && SuperLuckyqi
3
+ * @Date: 2024-05-11 14:40:02
4
+ * @LastEditors: SuperLuckyqi
5
+ * @LastEditTime: 2024-05-11 14:42:17
6
+ * @FilePath: /model-driven/packages/upgrade/src/upgrade/index.ts
7
+ * @Description:
8
+ */ import { dataCleaner as dataCleanerV1toV2 } from './v1_0';
9
+ import { dataCleaner as dataCleanerV2toV2_1 } from './v2_0';
10
+ import { dataCleaner as dataCleanerV2_1toV2_2 } from './v2_1';
11
+ import { dataCleaner as dataCleanerV2_2toV2_3 } from './v2_2';
12
+ import { dataCleaner as dataCleanerV2_3toV2_4 } from './v2_3';
13
+ import { dataCleaner as dataCleanerV2_4toV2_5 } from './v2_4';
14
+ import { dataCleaner as dataCleanerV2_5toV2_6 } from './v2_5';
15
+ import { dataCleaner as dataCleanerV2_6toV2_7 } from './v2_6';
16
+ import { dataCleaner as dataCleanerV2_7toV2_8 } from './v2_7';
17
+ import { dataCleaner as dataCleanerV2_8toV2_9 } from './v2_8';
18
+ import { dataCleaner as dataCleanerV2_9toV2_10 } from './v2_9';
19
+ import { dataCleaner as dataCleanerV2_10toV3_0 } from './v2_10';
20
+ import { dataCleaner as dataCleanerV3_0toV3_1 } from './v3_0';
21
+ import { dataCleaner as dataCleanerV3_1toV3_2 } from './v3_1';
22
+ import { dataCleaner as dataCleanerV3_1toV3_3 } from './v3_2';
23
+ import { dataCleaner as dataCleanerV3_1toV3_4 } from './v3_3';
24
+ import { dataCleaner as dataCleanerV3_1toV3_5 } from './v3_4';
25
+ import { dataCleaner as dataCleanerV3_5toV3_6 } from './v3_5';
26
+ import { dataCleaner as dataCleanerV3_6toV3_7 } from './v3_6';
27
+ import { dataCleaner as dataCleanerV3_7toV3_8 } from './v3_7';
28
+ import { dataCleaner as dataCleanerV3_7toV3_9 } from './v3_8';
29
+ import { dataCleaner as dataCleanerV3_9toV3_10 } from './v3_10';
30
+ // TODO 切记复制粘贴的时候改一下from后边的路径,不然会出事儿
31
+ // TODO 注意从2.5版本开始,没有进行驼峰转下划线了,写的时候要注意
32
+ export default {
33
+ 'v1.0': dataCleanerV1toV2,
34
+ 'v2.0': dataCleanerV2toV2_1,
35
+ 'v2.1': dataCleanerV2_1toV2_2,
36
+ 'v2.2': dataCleanerV2_2toV2_3,
37
+ 'v2.3': dataCleanerV2_3toV2_4,
38
+ 'v2.4': dataCleanerV2_4toV2_5,
39
+ 'v2.5': dataCleanerV2_5toV2_6,
40
+ 'v2.6': dataCleanerV2_6toV2_7,
41
+ 'v2.7': dataCleanerV2_7toV2_8,
42
+ 'v2.8': dataCleanerV2_8toV2_9,
43
+ 'v2.9': dataCleanerV2_9toV2_10,
44
+ 'v2.10': dataCleanerV2_10toV3_0,
45
+ 'v3.0': dataCleanerV3_0toV3_1,
46
+ 'v3.1': dataCleanerV3_1toV3_2,
47
+ 'v3.2': dataCleanerV3_1toV3_3,
48
+ // 每次都需要预留一个下一版本的转换函数,会使用到对应的key作为当前最新的schema version
49
+ 'v3.3': dataCleanerV3_1toV3_4,
50
+ 'v3.4': dataCleanerV3_1toV3_5,
51
+ 'v3.5': dataCleanerV3_5toV3_6,
52
+ 'v3.6': dataCleanerV3_6toV3_7,
53
+ 'v3.7': dataCleanerV3_7toV3_8,
54
+ 'v3.8': dataCleanerV3_7toV3_9,
55
+ 'v3.10': dataCleanerV3_9toV3_10,
56
+ 'v3.11': function() {}
57
+ };