rigjs 2.1.20 → 2.1.23

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.
@@ -3,215 +3,190 @@ import CICDCmd from '@/classes/cicd/CICDCmd';
3
3
  import CDN from '@/classes/cicd/Deploy/CDN';
4
4
 
5
5
  const delay = async (ms: number) => {
6
- await new Promise((resolve) => {
7
- setTimeout(resolve, ms);
8
- });
6
+ await new Promise((resolve) => {
7
+ setTimeout(resolve, ms);
8
+ });
9
9
  };
10
10
 
11
11
  const setRewriteUri = async (
12
- domain: string,
13
- original: string,
14
- deployDir: string,
15
- cdn: CDN
12
+ domain: string,
13
+ original: string,
14
+ deployDir: string,
15
+ cdn: CDN
16
16
  ) => {
17
- const rwriteResult = await cdn.setRewriteUri(
18
- domain,
19
- [original],
20
- [deployDir],
21
- ['enhance_break']
22
- );
17
+ const rwriteResult = await cdn.setRewriteUri(
18
+ domain,
19
+ [original],
20
+ [deployDir],
21
+ ['enhance_break']
22
+ );
23
23
 
24
- const configId = rwriteResult?.DomainConfigList.DomainConfigModel[0].ConfigId;
25
- while (true) {
26
- const configInfo = await cdn.describeCdnDomainConfigs(domain, configId);
27
- if (configInfo.DomainConfigs.DomainConfig[0].Status === 'success') {
28
- break;
29
- }
30
- if (configInfo.DomainConfigs.DomainConfig[0].Status === 'failed') {
31
- throw new Error('cdn rewrite fail');
32
- }
33
- await delay(3000);
34
- }
24
+ const configId = rwriteResult?.DomainConfigList.DomainConfigModel[0].ConfigId;
25
+ while (true) {
26
+ const configInfo = await cdn.describeCdnDomainConfigs(domain, configId);
27
+ if (configInfo.DomainConfigs.DomainConfig[0].Status === 'success') {
28
+ break;
29
+ }
30
+ if (configInfo.DomainConfigs.DomainConfig[0].Status === 'failed') {
31
+ throw new Error('cdn rewrite fail');
32
+ }
33
+ await delay(3000);
34
+ }
35
35
  };
36
36
 
37
37
  const refreshCache = async (urls: string[], cdn: CDN) => {
38
- const refreshResult = await cdn.refreshCache(urls.join('\n'));
39
- console.log('Please Wait For RefreshCache...');
40
- while (true) {
41
- const desResult = await cdn.describeRefreshTaskById(
42
- refreshResult.RefreshTaskId
43
- );
44
- let successCount = 0;
45
- for (const item of desResult.Tasks) {
46
- if (item.Status === 'Complete') {
47
- successCount++;
48
- } else if (item.Status === 'Failed') {
49
- throw new Error('RefreshCache Failed');
50
- }
51
- }
52
- if (successCount === desResult.Tasks.length) {
53
- break;
54
- }
55
- await delay(3000);
56
- }
57
- console.log('RefreshCache Done');
38
+ const refreshResult = await cdn.refreshCache(urls.join('\n'));
39
+ console.log('Please Wait For RefreshCache...');
40
+ while (true) {
41
+ const desResult = await cdn.describeRefreshTaskById(
42
+ refreshResult.RefreshTaskId
43
+ );
44
+ let successCount = 0;
45
+ for (const item of desResult.Tasks) {
46
+ if (item.Status === 'Complete') {
47
+ successCount++;
48
+ } else if (item.Status === 'Failed') {
49
+ throw new Error('RefreshCache Failed');
50
+ }
51
+ }
52
+ if (successCount === desResult.Tasks.length) {
53
+ break;
54
+ }
55
+ await delay(3000);
56
+ }
57
+ console.log('RefreshCache Done');
58
58
  };
59
59
 
60
60
  export default async (cmd: any) => {
61
- try {
62
- //create cicd object
63
- const cicd = CICD.createByDefault(cmd);
64
- //construct cmd object
65
- const cicdCmd = new CICDCmd(cmd, cicd);
61
+ try {
62
+ //create cicd object
63
+ const cicd = CICD.createByDefault(cmd);
64
+ //construct cmd object
65
+ const cicdCmd = new CICDCmd(cmd, cicd);
66
66
 
67
- console.log('Start Publish-----');
68
- const target = Array.isArray(cicdCmd.cicd.target)
69
- ? cicdCmd.cicd.target[0]
70
- : cicdCmd.cicd.target;
67
+ console.log('Start Publish-----');
68
+ const target = Array.isArray(cicdCmd.cicd.target)
69
+ ? cicdCmd.cicd.target[0]
70
+ : cicdCmd.cicd.target;
71
71
 
72
- const cdn = new CDN(target);
73
- const urls: string[] = [];
74
- const setRewriteUriPromises: Promise<any>[] = [];
75
- if (!cicdCmd.endpoints || cicdCmd.endpoints.length === 0) {
76
- throw new Error('Endpoints.length Can Not Be 0!');
77
- }
78
- for (const endpoint of cicdCmd.endpoints) {
79
- if (
80
- !endpoint.uri_rewrite &&
81
- (!target.uri_rewrite ||
82
- !target.uri_rewrite.original ||
83
- !target.uri_rewrite.original_regexp)
84
- ) {
85
- let webEntryPath: string;
86
- if (cicd.web_type === 'mpa') {
87
- webEntryPath = '/';
88
- } else if (cicd.web_type === 'history'){
89
- webEntryPath = '/';
90
- } else {
91
- webEntryPath = endpoint.web_entry_path
92
- ? endpoint.web_entry_path
93
- : target.web_entry_path || '/';
94
- }
95
- for (const domain of endpoint.domains) {
96
- if (cicd.web_type === 'mpa') {
97
- //文件
98
- setRewriteUriPromises.push(
99
- setRewriteUri(
100
- domain,
101
- '^\\/([^?]*\\.[a-zA-Z0-9]+)($|\\?)',
102
- `/${endpoint.deployDir.replace(/\\/g, '/')}/$1`,
103
- cdn
104
- )
105
- );
106
- //非首页
107
- setRewriteUriPromises.push(
108
- setRewriteUri(
109
- domain,
110
- '^\\/([\\w-/]*\\w+)(?![^?]*\\.\\w+)',
111
- `/${endpoint.deployDir.replace(/\\/g, '/')}/$1.html`,
112
- cdn
113
- )
114
- );
115
- setRewriteUriPromises.push(
116
- setRewriteUri(
117
- domain,
118
- `^(${webEntryPath})($|\\?|#|\\/\\?|\\/$)`,
119
- `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
120
- cdn
121
- )
122
- );
123
- } else if (cicd.web_type === 'history'){
124
- //文件
125
- setRewriteUriPromises.push(
126
- setRewriteUri(
127
- domain,
128
- '^\\/([^?]*\\.[a-zA-Z0-9]+)($|\\?)',
129
- `/$1`,
130
- cdn
131
- )
132
- );
133
- setRewriteUriPromises.push(
134
- setRewriteUri(
135
- domain,
136
- '^\\/([\\w-/]*\\w+)(?![^?]*\\.\\w+)',
137
- `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
138
- cdn
139
- )
140
- );
141
- setRewriteUriPromises.push(
142
- setRewriteUri(
143
- domain,
144
- `^(${webEntryPath})($|\\?|#|\\/\\?|\\/$)`,
145
- `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
146
- cdn
147
- )
148
- );
149
- }else {
150
- //文件
151
- setRewriteUriPromises.push(
152
- setRewriteUri(
153
- domain,
154
- '^\\/([^?]*\\.[a-zA-Z0-9]+)($|\\?)',
155
- `/$1`,
156
- cdn
157
- )
158
- );
159
- setRewriteUriPromises.push(
160
- setRewriteUri(
161
- domain,
162
- `^(${webEntryPath})($|\\?|#|\\/\\?|\\/$)`,
163
- `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
164
- cdn
165
- )
166
- );
167
- }
168
- urls.push(`https://${domain}${webEntryPath}`);
169
- }
170
- } else {
171
- const uriRewrite = endpoint.uri_rewrite
172
- ? endpoint.uri_rewrite
173
- : target.uri_rewrite;
72
+ const cdn = new CDN(target);
73
+ const urls: string[] = [];
74
+ const setRewriteUriPromises: Promise<any>[] = [];
75
+ if (!cicdCmd.endpoints || cicdCmd.endpoints.length === 0) {
76
+ throw new Error('Endpoints.length Can Not Be 0!');
77
+ }
78
+ for (const endpoint of cicdCmd.endpoints) {
79
+ if (
80
+ !endpoint.uri_rewrite &&
81
+ (!target.uri_rewrite ||
82
+ !target.uri_rewrite.original ||
83
+ !target.uri_rewrite.original_regexp)
84
+ ) {
85
+ let webEntryPath: string;
86
+ if (cicd.web_type === 'mpa') {
87
+ webEntryPath = '/';
88
+ } else if (cicd.web_type === 'history') {
89
+ webEntryPath = '/';
90
+ } else {
91
+ webEntryPath = endpoint.web_entry_path
92
+ ? endpoint.web_entry_path
93
+ : target.web_entry_path || '/';
94
+ }
95
+ for (const domain of endpoint.domains) {
96
+ if (cicd.web_type === 'mpa') {
97
+ //mpa匹配非首页
98
+ setRewriteUriPromises.push(
99
+ setRewriteUri(
100
+ domain,
101
+ '^\\/([\\w-/]*\\w+)(?![^?]*\\.\\w+)',
102
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/$1.html`,
103
+ cdn
104
+ )
105
+ );
106
+ } else if (cicd.web_type === 'history') {
107
+ //spa/history匹配非首页
108
+ setRewriteUriPromises.push(
109
+ setRewriteUri(
110
+ domain,
111
+ '^\\/([\\w-/]*\\w+)(?![^?]*\\.\\w+)',
112
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
113
+ cdn
114
+ )
115
+ );
116
+ }
117
+ //匹配文件,3个模式通用
118
+ setRewriteUriPromises.push(
119
+ setRewriteUri(
120
+ domain,
121
+ '^\\/([^?]*\\.[a-zA-Z0-9]+)($|\\?)',
122
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/$1`,
123
+ cdn
124
+ )
125
+ );
126
+ //首页匹配正则,hash,history,mpa三个模式通用
127
+ setRewriteUriPromises.push(
128
+ setRewriteUri(
129
+ domain,
130
+ `^(${webEntryPath})($|\\?|#|\\/\\?|\\/$)`,
131
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
132
+ cdn
133
+ )
134
+ );
135
+ urls.push(`https://${domain}${webEntryPath}`);
136
+ }
137
+ } else {
138
+ const uriRewrite = endpoint.uri_rewrite
139
+ ? endpoint.uri_rewrite
140
+ : target.uri_rewrite;
174
141
 
175
- if (!uriRewrite) {
176
- continue;
177
- }
142
+ if (!uriRewrite) {
143
+ continue;
144
+ }
178
145
 
179
- for (const domain of endpoint.domains) {
180
- setRewriteUriPromises.push(
181
- setRewriteUri(
182
- domain,
183
- `${
184
- uriRewrite.original_regexp
185
- ? uriRewrite.original_regexp
186
- : uriRewrite.original
187
- }`,
188
- `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
189
- cdn
190
- )
191
- );
192
- urls.push(`https://${domain}${uriRewrite.original}`);
193
- }
194
- }
195
- }
146
+ for (const domain of endpoint.domains) {
147
+ setRewriteUriPromises.push(
148
+ setRewriteUri(
149
+ domain,
150
+ '^\\/([^?]*\\.[a-zA-Z0-9]+)($|\\?)',
151
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/$1`,
152
+ cdn
153
+ )
154
+ );
155
+ setRewriteUriPromises.push(
156
+ setRewriteUri(
157
+ domain,
158
+ `${
159
+ uriRewrite.original_regexp
160
+ ? uriRewrite.original_regexp
161
+ : uriRewrite.original
162
+ }`,
163
+ `/${endpoint.deployDir.replace(/\\/g, '/')}/index.html`,
164
+ cdn
165
+ )
166
+ );
167
+ urls.push(`https://${domain}${uriRewrite.original}`);
168
+ }
169
+ }
170
+ }
196
171
 
197
- // 回源URI改写
198
- console.log('Please Wait For Set RWrite URI...');
199
- if (setRewriteUriPromises.length > 0) {
200
- await Promise.all(setRewriteUriPromises);
201
- } else {
202
- console.log('Not Have To Set RWrite URI');
203
- }
204
- console.log('Set RWrite URI Done');
172
+ // 回源URI改写
173
+ console.log('Please Wait For Set RWrite URI...');
174
+ if (setRewriteUriPromises.length > 0) {
175
+ await Promise.all(setRewriteUriPromises);
176
+ } else {
177
+ console.log('Not Have To Set RWrite URI');
178
+ }
179
+ console.log('Set RWrite URI Done');
205
180
 
206
- //刷新cdn
207
- if (urls.length > 0) {
208
- await refreshCache(urls, cdn);
209
- } else {
210
- console.log('Not Have To RefreshCache');
211
- }
212
- console.log('Publish Done-----');
213
- } catch (e: any) {
214
- console.error(e.message);
215
- process.exit(1);
216
- }
181
+ //刷新cdn
182
+ if (urls.length > 0) {
183
+ await refreshCache(urls, cdn);
184
+ } else {
185
+ console.log('Not Have To RefreshCache');
186
+ }
187
+ console.log('Publish Done-----');
188
+ } catch (e: any) {
189
+ console.error(e.message);
190
+ process.exit(1);
191
+ }
217
192
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rigjs",
3
- "version": "2.1.20",
3
+ "version": "2.1.23",
4
4
  "description": "A multi-repos dev tool based on yarn and git.Rig is inspired by cocoapods. Not like those monorepo solutions,rig is a tool for organizing multi-repos.",
5
5
  "keywords": [
6
6
  "modular",