Skip to content

Commit 6eb1997

Browse files
authored
chore: put together phases of ESM conversion as well as each package into the monorepo (#32531)
1 parent daca9a3 commit 6eb1997

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

guides/esm-migration.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# ESM Migration Guide: Monorepo Alignment
2+
3+
## Migration Checklist
4+
5+
### Phase 1: Convert Packages to TypeScript
6+
7+
#### Criteria
8+
9+
- No require statements are to be used in `.ts` files
10+
- Unit tests in package are written in TypeScript
11+
- Does not include scripts or system test migrations
12+
13+
#### Status
14+
15+
##### NPM Packages
16+
17+
- [x] cli ✅ **COMPLETED**
18+
- [x] npm/angular ✅ **COMPLETED**
19+
- [x] npm/cypress-schematic ✅ **COMPLETED**
20+
- [ ] npm/eslint-plugin-dev
21+
- [x] npm/grep ✅ **COMPLETED**
22+
- [x] npm/mount-utils ✅ **COMPLETED**
23+
- [ ] npm/puppeteer **PARTIAL**
24+
- [x] npm/react ✅ **COMPLETED**
25+
- [x] npm/svelte ✅ **COMPLETED**
26+
- [x] npm/vite-dev-server ✅ **COMPLETED**
27+
- [x] vite-plugin-cypress-esm ✅ **COMPLETED**
28+
- [x] npm/vue ✅ **COMPLETED**
29+
- [ ] npm/webpack-batteries-included-preprocessor
30+
- [x] npm/webpack-dev-server ✅ **COMPLETED**
31+
- [ ] npm/webpack-preprocessor **PARTIAL**
32+
33+
##### Binary Packages
34+
35+
- [ ] packages/app **PARTIAL** - low priority: frontend package
36+
- [ ] packages/config **PARTIAL** - entry point is JS
37+
- [ ] packages/data-context **PARTIAL** - entry point is JS
38+
- [x] packages/driver ✅ **COMPLETED** - source complete, cypress tests need migration
39+
- [x] packages/electron ✅ **COMPLETED**
40+
- [ ] packages/error **PARTIAL** - entry point is JS
41+
- [x] packages/eslint-config ✅ **COMPLETED**
42+
- [ ] packages/example
43+
- [ ] packages/extension
44+
- [ ] packages/frontend-shared **PARTIAL** - entry point is JS
45+
- [ ] packages/graphql **PARTIAL** - entry point is JS
46+
- [ ] packages/https-proxy - higher priority
47+
- [x] packages/electron ✅ **COMPLETED**
48+
- [ ] packages/https-proxy **PARTIAL** - entry point is JS
49+
- [x] packages/icons ✅ **COMPLETED**
50+
- [x] packages/launcher ✅ **COMPLETED**
51+
- [x] packages/launchpad ✅ **COMPLETED**
52+
- [x] packages/net-stubbing ✅ **COMPLETED**
53+
- [ ] packages/network **PARTIAL** - entry point is JS
54+
- [x] packages/packherd-require ✅ **COMPLETED**
55+
- [ ] packages/proxy **PARTIAL** - entry point is JS
56+
- [x] packages/reporter ✅ **COMPLETED**
57+
- [ ] packages/resolve-dist **PARTIAL** - entry point is JS
58+
- [ ] packages/rewriter **PARTIAL** - entry point is JS
59+
- [ ] packages/root
60+
- [x] packages/runner ✅ **COMPLETED**
61+
- [ ] packages/scaffold-config **PARTIAL** - entry point is JS
62+
- [ ] packages/server **PARTIAL** - many source/test files in JS. highest priority
63+
- [ ] packages/socket **PARTIAL** - entry point is JS. Tests are JS
64+
- [x] packages/stderr-filtering ✅ **COMPLETED**
65+
- [ ] packages/telemetry **PARTIAL** - entry point is JS
66+
- [ ] packages/ts **PARTIAL** - ultimate goal is removal and likely not worth the effort to convert
67+
- [ ] packages/types **PARTIAL** - entry point is JS
68+
- [x] packages/v8-snapshot-require
69+
- [x] packages/web-config
70+
71+
72+
### Phase 2: Convert Package tests from Mocha to Vitest
73+
74+
#### Status
75+
76+
##### NPM Packages
77+
78+
- [x] cli ✅ **COMPLETED**
79+
- [x] npm/cypress-schematic ✅ **COMPLETED**
80+
- [ ] npm/eslint-plugin-dev
81+
- [x] npm/grep ✅ **COMPLETED**
82+
- [ ] npm/puppeteer
83+
- [x] npm/vite-dev-server ✅ **COMPLETED**
84+
- [ ] npm/webpack-batteries-included-preprocessor
85+
- [ ] npm/webpack-dev-server
86+
- [ ] npm/webpack-preprocessor
87+
88+
##### Binary Packages
89+
90+
- [ ] packages/config
91+
- [ ] packages/data-context
92+
- [x] packages/driver ✅ **COMPLETED**
93+
- [x] packages/electron ✅ **COMPLETED**
94+
- [ ] packages/error
95+
- [ ] packages/extension
96+
- [ ] packages/graphql (configured but doesn't have tests)
97+
- [ ] packages/https-proxy
98+
- [x] packages/electron ✅ **COMPLETED**
99+
- [ ] packages/https-proxy
100+
- [ ] packages/icons
101+
- [ ] packages/launcher
102+
- [ ] packages/net-stubbing
103+
- [ ] packages/network
104+
- [ ] packages/packherd-require
105+
- [ ] packages/proxy
106+
- [ ] packages/rewriter
107+
- [ ] packages/scaffold-config
108+
- [ ] packages/server
109+
- [ ] packages/socket
110+
- [x] packages/stderr-filtering ✅ **COMPLETED**
111+
- [ ] packages/telemetry
112+
- [ ] packages/ts - ultimate goal is removal and likely not worth the effort to convert
113+
- [x] packages/types ✅ **COMPLETED**
114+
- [ ] packages/v8-snapshot-require
115+
116+
### Phase 3: Bundle ESM/CJS versions of NPM packages
117+
118+
TBD: details will be clearer at the end of Phase 2
119+
120+
### Phase 4: Run Cypress server as an ESM package
121+
122+
TBD: details will be clearer at the end of Phase 2

0 commit comments

Comments
 (0)