@rife/cli 0.0.6-beta.7 → 0.0.6-beta.9

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 (43) hide show
  1. package/dist/1.js +24 -0
  2. package/dist/1.mjs +20 -0
  3. package/dist/cjs/1.js +24 -0
  4. package/dist/cli.js +1 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/esm/1.mjs +20 -0
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/plugin/commander.js +2 -0
  10. package/dist/plugin/commander.js.map +1 -1
  11. package/dist/plugin/compiler/index.js +3 -3
  12. package/dist/plugin/compiler/index.js.map +1 -1
  13. package/dist/plugin/compiler/swc.js +2 -1
  14. package/dist/plugin/compiler/swc.js.map +1 -1
  15. package/dist/plugin/compiler/swc2.js +65 -0
  16. package/dist/plugin/compiler/swc2.js.map +1 -0
  17. package/dist/plugin/config.js +20 -5
  18. package/dist/plugin/config.js.map +1 -1
  19. package/dist/plugin/index.js +1 -0
  20. package/dist/plugin/index.js.map +1 -1
  21. package/dist/plugin/release.js +38 -24
  22. package/dist/plugin/release.js.map +1 -1
  23. package/dist/runner.js +9 -3
  24. package/dist/runner.js.map +1 -1
  25. package/dist/sync.js +3 -3
  26. package/dist/sync.js.map +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/dist/util.js +14 -0
  29. package/dist/util.js.map +1 -0
  30. package/package.json +23 -23
  31. package/src/cli.ts +1 -2
  32. package/src/index.ts +4 -0
  33. package/src/plugin/commander.ts +2 -0
  34. package/src/plugin/compiler/index.ts +115 -115
  35. package/src/plugin/compiler/swc.ts +2 -1
  36. package/src/plugin/config.ts +78 -64
  37. package/src/plugin/index.ts +1 -0
  38. package/src/plugin/release.ts +42 -26
  39. package/src/runner.ts +10 -3
  40. package/src/sync.ts +3 -3
  41. package/src/util.ts +9 -0
  42. package/src/pnpmfile.ts +0 -147
  43. package/src/test/pnpmfile.test.ts +0 -223
package/src/pnpmfile.ts DELETED
@@ -1,147 +0,0 @@
1
- // @ts-ignore
2
- const fs = require('fs');
3
- // @ts-ignore
4
- const h = require('https');
5
-
6
- const request = h.request;
7
- h.request = function (...args: any[]) {
8
- const path = args[0].path || '';
9
- if (path.startsWith('/@rife') && !path.endsWith('.tgz')) {
10
- console.log(path);
11
- args[0].headers['accept'] = 'application/json';
12
- }
13
- return request(...args);
14
- };
15
-
16
- let root: any;
17
- let exit: (message: string) => any;
18
- const origin: any = {};
19
-
20
- export function parseVersion(version: string) {
21
- const [_, a = '', b = '', c = '', d = ''] = /(\d+?)\.(\d+?)\.(\d+?)\D*(\d+)?/.exec(version) || [];
22
- if (!a || !b || !c) {
23
- exit(`version ${version}`);
24
- }
25
- return [a, b, c, d].map(t => t.padStart(3, '0')).join('.');
26
- }
27
-
28
- function compareVersion(v1: string, v2: string) {
29
- const v = [v1, v2].filter(t => Boolean(t));
30
- if (v.length === 0) {
31
- exit('version empty');
32
- }
33
- if (v.length === 1) {
34
- return v[0];
35
- }
36
-
37
- return parseVersion(v1) > parseVersion(v2) ? v1 : v2;
38
- }
39
-
40
- const host: any = {};
41
- function updateRoot(type: 'dependencies' | 'devDependencies', name: string, version: string, from: string) {
42
- if (origin[type][name]) return;
43
- if (!host[type]) {
44
- host[type] = {};
45
- }
46
- const dependencies = host[type];
47
- dependencies[name] = {
48
- version: compareVersion(version, dependencies[name]?.version),
49
- from,
50
- };
51
- }
52
-
53
- export const readPackage = (pkg: any, context: any) => {
54
- if (!exit) {
55
- exit = (message: string) => {
56
- context.log(message);
57
- // @ts-ignore
58
- process.exit(1);
59
- };
60
- }
61
- if (!root) {
62
- root = pkg;
63
- origin.dependencies = { ...root.dependencies };
64
- origin.devDependencies = { ...root.devDependencies };
65
- }
66
- const dependencies = pkg.dependencies || {};
67
- const devDependencies = pkg.devDependencies || {};
68
- const { hostDependencies = {} } = pkg.rife || {};
69
- const from = {
70
- name: pkg.name,
71
- version: pkg.version,
72
- };
73
- Object.keys(hostDependencies).forEach(name => {
74
- const version = dependencies[name] || devDependencies[name];
75
- if (!version) {
76
- exit('cannot not found version');
77
- }
78
- const isDev = Boolean(devDependencies[name]);
79
- if (isDev) {
80
- dependencies[name] = version;
81
- updateRoot('devDependencies', name, version, from);
82
- } else {
83
- updateRoot('dependencies', name, version, from);
84
- }
85
- });
86
- return pkg;
87
- };
88
-
89
- const deps = ['devDependencies', 'dependencies'];
90
- const need: any[] = [];
91
-
92
- let aaaa = [];
93
-
94
- export const afterAllResolved = (lockfile, context) => {
95
- fs.writeFileSync('./temp/1.json', JSON.stringify(host, undefined, 4));
96
- debugger;
97
-
98
- deps.map(dep => {
99
- Object.entries(host[dep as any]).forEach(([name, data]: any) => {
100
- need.push({
101
- key: `${name}@${data.version}`,
102
- name,
103
- dep,
104
- version: data.version,
105
- from: data.from,
106
- source: `${data.from.name}@${data.from.version}`,
107
- });
108
- });
109
- });
110
-
111
- // debugger;
112
- const current = lockfile.importers['.'];
113
- const { packages } = lockfile;
114
-
115
- const list = Object.keys(packages).map(key => {
116
- const pack = {
117
- key,
118
- value: packages[key],
119
- };
120
- return pack;
121
- });
122
- const t = Object.keys(packages).filter(t => t.startsWith('@rife/cli'));
123
- aaaa = need.map(n => {
124
- const f = list.find(t => t.key.startsWith(n.key));
125
- if (f) {
126
- return f;
127
- }
128
- const s = list.find(t2 => t2.key.startsWith(n.source));
129
- const v = s?.value?.dependencies[n.name];
130
- if (v) {
131
- const newKey = `${n.name}@${v}`;
132
- const ff = list.find(t => t.key.startsWith(newKey));
133
- if (ff) {
134
- return ff;
135
- }
136
- }
137
- debugger;
138
- });
139
-
140
- debugger;
141
- return lockfile;
142
- };
143
-
144
- process.on('exit', () => {
145
- // const exits = aaaa.map(a => fs.exitsSync(`./node_modules/.pnpm/${a.replace('/', '_')}`));
146
- // debugger;
147
- });
@@ -1,223 +0,0 @@
1
- import { describe, expect, test } from 'vitest';
2
-
3
- import { compareObject, parseVersion, testCompareObject, testReadPackage } from '../pnpmfile';
4
-
5
- describe('解析版本号', () => {
6
- test('范围版本号', () => {
7
- expect(parseVersion('^1.0.0')).toBe('001.000.000.000');
8
- expect(parseVersion('1.10.0')).toBe('001.010.000.000');
9
- });
10
-
11
- test('beta 版本号', () => {
12
- expect(parseVersion('1.0.0-beta.1')).toBe('001.000.000.001');
13
- });
14
- });
15
-
16
- describe('直接依赖提升', () => {
17
- test('提升 dependencies', () => {
18
- const root = {
19
- name: '@rife/root',
20
- dependencies: {
21
- '@rife/a': 'workspace:*',
22
- root: '^1.0.0',
23
- },
24
- };
25
- const a = {
26
- name: '@rife/a',
27
- dependencies: {
28
- a1: '^1.0.0',
29
- },
30
- rife: {
31
- hostDependencies: {
32
- a1: true,
33
- },
34
- },
35
- };
36
- const z = {
37
- name: '@rife/root',
38
- dependencies: {
39
- '@rife/a': 'workspace:*',
40
- root: '^1.0.0',
41
- a1: '^1.0.0',
42
- },
43
- };
44
- expect(testReadPackage([root, a])).toStrictEqual(z);
45
- });
46
-
47
- test('提升 devDependencies', () => {
48
- const root = {
49
- name: '@rife/root',
50
- dependencies: {
51
- '@rife/a': 'workspace:*',
52
- root: '^1.0.0',
53
- },
54
- };
55
- const a = {
56
- name: '@rife/a',
57
- devDependencies: {
58
- a1: '^1.0.0',
59
- },
60
- rife: {
61
- hostDependencies: {
62
- a1: true,
63
- },
64
- },
65
- };
66
- const z = {
67
- name: '@rife/root',
68
- dependencies: {
69
- '@rife/a': 'workspace:*',
70
- root: '^1.0.0',
71
- },
72
- devDependencies: {
73
- a1: '^1.0.0',
74
- },
75
- };
76
- expect(testReadPackage([root, a])).toStrictEqual(z);
77
- });
78
-
79
- test('同时提升 dependencies 和 devDependencies', () => {
80
- const root = {
81
- name: '@rife/root',
82
- dependencies: {
83
- '@rife/a': 'workspace:*',
84
- root: '^1.0.0',
85
- },
86
- };
87
- const a = {
88
- name: '@rife/a',
89
- dependencies: {
90
- a1: '^1.0.0',
91
- },
92
- devDependencies: {
93
- a2: '^1.0.0',
94
- },
95
- rife: {
96
- hostDependencies: {
97
- a1: true,
98
- a2: true,
99
- },
100
- },
101
- };
102
- const z = {
103
- name: '@rife/root',
104
- dependencies: {
105
- '@rife/a': 'workspace:*',
106
- root: '^1.0.0',
107
- a1: '^1.0.0',
108
- },
109
- devDependencies: {
110
- a2: '^1.0.0',
111
- },
112
- };
113
- expect(testReadPackage([root, a])).toStrictEqual(z);
114
- });
115
-
116
- test('提升不能覆盖现有版本号', () => {
117
- const root = {
118
- name: '@rife/root',
119
- dependencies: {
120
- '@rife/a': 'workspace:*',
121
- root: '^1.0.0',
122
- a1: '^1.0.0',
123
- },
124
- devDependencies: {
125
- a2: '^1.0.0',
126
- },
127
- };
128
- const a = {
129
- name: '@rife/a',
130
- dependencies: {
131
- a1: '^1.0.1',
132
- },
133
- devDependencies: {
134
- a2: '^1.0.1',
135
- },
136
- rife: {
137
- hostDependencies: {
138
- a1: true,
139
- a2: true,
140
- },
141
- },
142
- };
143
- const z = {
144
- name: '@rife/root',
145
- dependencies: {
146
- '@rife/a': 'workspace:*',
147
- root: '^1.0.0',
148
- a1: '^1.0.0',
149
- },
150
- devDependencies: {
151
- a2: '^1.0.0',
152
- },
153
- };
154
- expect(testReadPackage([root, a])).toStrictEqual(z);
155
- });
156
- });
157
-
158
- describe('依赖同一个依赖的多个版本', () => {
159
- test('总是提升最新版本', () => {
160
- const root = {
161
- name: '@rife/root',
162
- dependencies: {
163
- '@rife/a': 'workspace:*',
164
- root: '^1.0.0',
165
- },
166
- };
167
- const a = {
168
- name: '@rife/a',
169
- dependencies: {
170
- a1: '^1.0.0',
171
- },
172
- rife: {
173
- hostDependencies: {
174
- a1: true,
175
- },
176
- },
177
- };
178
- const b = {
179
- name: '@rife/b',
180
- dependencies: {
181
- a1: '^1.0.1',
182
- b1: '^1.0.0',
183
- },
184
- rife: {
185
- hostDependencies: {
186
- a1: true,
187
- b1: true,
188
- },
189
- },
190
- };
191
- const z = {
192
- name: '@rife/root',
193
- dependencies: {
194
- '@rife/a': 'workspace:*',
195
- root: '^1.0.0',
196
- a1: '^1.0.1',
197
- b1: '^1.0.0',
198
- },
199
- };
200
- expect(testReadPackage([root, a, b])).toStrictEqual(z);
201
- });
202
- });
203
-
204
- describe('比较差异', () => {
205
- test('相同', () => {
206
- expect(testCompareObject({}, {})).toStrictEqual({ more: [], less: [] });
207
- });
208
-
209
- test('多了', () => {
210
- expect(testCompareObject({ a: 1 }, {})).toStrictEqual({ more: [{ name: 'a', version: 1 }], less: [] });
211
- });
212
-
213
- test('少了', () => {
214
- expect(testCompareObject({}, { a: 1 })).toStrictEqual({ more: [], less: [{ name: 'a', version: 1 }] });
215
- });
216
-
217
- test('差异', () => {
218
- expect(testCompareObject({ b: 2 }, { a: 1 })).toStrictEqual({
219
- more: [{ name: 'b', version: 2 }],
220
- less: [{ name: 'a', version: 1 }],
221
- });
222
- });
223
- });