coc-vscode-loader 1.2.9 → 1.4.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.
- package/converter/README.md +66 -11
- package/converter/package-lock.json +1363 -146
- package/converter/package.json +9 -4
- package/converter/scripts/check-tests.ts +58 -0
- package/converter/scripts/smoke-test.ts +234 -0
- package/converter/src/cli.ts +4 -1
- package/converter/src/convert.test.ts +292 -0
- package/converter/src/convert.ts +5 -3
- package/converter/src/presets.test.ts +37 -0
- package/converter/src/registry-validation.test.ts +127 -0
- package/converter/src/scanner.test.ts +67 -0
- package/converter/src/scanner.ts +1 -1
- package/converter/src/steps/bridge.test.ts +72 -0
- package/converter/src/steps/language-client.test.ts +131 -0
- package/converter/src/steps/language-client.ts +1 -1
- package/converter/src/steps/mark-unsupported.test.ts +109 -0
- package/converter/src/steps/snippets.test.ts +114 -0
- package/converter/src/steps/snippets.ts +12 -3
- package/converter/src/steps/source.test.ts +117 -0
- package/converter/src/steps/source.ts +2 -4
- package/converter/src/transforms/class-to-factory.test.ts +60 -0
- package/converter/src/transforms/enum-offset.test.ts +27 -0
- package/converter/src/transforms/import-mapping.test.ts +227 -0
- package/converter/src/transforms/import-mapping.ts +32 -11
- package/converter/src/transforms/language-client.test.ts +48 -0
- package/converter/src/transforms/provider-register.test.ts +65 -0
- package/converter/src/transforms/provider-register.ts +1 -1
- package/converter/src/transforms/strip-volar.test.ts +35 -0
- package/converter/src/types.ts +2 -0
- package/converter/vitest.config.ts +8 -0
- package/lib/index.js +99 -50
- package/package.json +1 -1
package/converter/README.md
CHANGED
|
@@ -93,19 +93,74 @@ Adding a new bridge type = add a new preset in `presets.ts`, no changes to main
|
|
|
93
93
|
|
|
94
94
|
See [../docs/converter-design-v2.md](../docs/converter-design-v2.md).
|
|
95
95
|
|
|
96
|
+
## Testing
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm test # Unit tests (115 tests, 15 files) + coverage check
|
|
100
|
+
npm run test:smoke # Registry smoke test — converts all 112 entries
|
|
101
|
+
npm run test:watch # Watch mode for development
|
|
102
|
+
npm run check:tests # Verify every source file has a matching test
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Unit tests** cover all transforms, steps, scanner, and the main convert flow:
|
|
106
|
+
|
|
107
|
+
| Test file | Tests | What it covers |
|
|
108
|
+
|-----------|-------|----------------|
|
|
109
|
+
| `transforms/import-mapping.test.ts` | 21 | All text-level replacements |
|
|
110
|
+
| `transforms/class-to-factory.test.ts` | 7 | `new Xxx()` → `Xxx.create()` |
|
|
111
|
+
| `transforms/provider-register.test.ts` | 7 | Provider signature adaptation |
|
|
112
|
+
| `transforms/enum-offset.test.ts` | 3 | Enum value offset annotations |
|
|
113
|
+
| `transforms/strip-volar.test.ts` | 4 | Volar framework import stripping |
|
|
114
|
+
| `steps/source.test.ts` | 8 | File copy, transforms pipeline, keepDeps |
|
|
115
|
+
| `steps/snippets.test.ts` | 4 | Snippet file copy and error handling |
|
|
116
|
+
| `steps/language-client.test.ts` | 5 | LanguageClient code generation |
|
|
117
|
+
| `steps/bridge.test.ts` | 4 | Bridge preset resolution and code injection |
|
|
118
|
+
| `steps/mark-unsupported.test.ts` | 7 | Unsupported API marking |
|
|
119
|
+
| `convert.test.ts` | 15 | Full conversion pipeline (text replacements, output generation, step orchestration) |
|
|
120
|
+
| `registry-validation.test.ts` | 12 | Registry.json schema (112 entries) |
|
|
121
|
+
| `scanner.test.ts` | 6 | API scanner detection |
|
|
122
|
+
| `presets.test.ts` | 5 | Bridge preset definitions |
|
|
123
|
+
| `transforms/language-client.test.ts` | 5 | LanguageClient AST adaptation |
|
|
124
|
+
|
|
125
|
+
**Smoke test** — `npm run test:smoke` clones all 112 registry entries and runs the full converter on each, validating output structure. Repos are cached and updated incrementally via `git fetch`.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Force re-clone all repos
|
|
129
|
+
NO_CACHE=1 npm run test:smoke
|
|
130
|
+
|
|
131
|
+
# Run with more concurrent downloads
|
|
132
|
+
CONCURRENCY=12 npm run test:smoke
|
|
133
|
+
```
|
|
134
|
+
|
|
96
135
|
## File structure
|
|
97
136
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
137
|
+
```
|
|
138
|
+
src/
|
|
139
|
+
├── cli.ts CLI entry
|
|
140
|
+
├── convert.ts Main flow + template generation + API replacement
|
|
141
|
+
├── scanner.ts API scanner
|
|
142
|
+
├── presets.ts Bridge preset definitions
|
|
143
|
+
├── types.ts Type definitions
|
|
144
|
+
├── steps/
|
|
145
|
+
│ ├── index.ts Step registry
|
|
146
|
+
│ ├── source.ts Source file copy + transforms
|
|
147
|
+
│ ├── snippets.ts Snippet conversion
|
|
148
|
+
│ ├── language-client.ts LanguageClient code generation
|
|
149
|
+
│ ├── bridge.ts Bridge preset code generation
|
|
150
|
+
│ └── mark-unsupported.ts Unsupported API marking
|
|
151
|
+
└── transforms/
|
|
152
|
+
├── import-mapping.ts Import replacement
|
|
153
|
+
├── class-to-factory.ts new Xxx() → Xxx.create()
|
|
154
|
+
├── provider-register.ts Provider signature fixes
|
|
155
|
+
├── language-client.ts LanguageClient AST adaptation
|
|
156
|
+
├── strip-volar.ts Volar framework stripping
|
|
157
|
+
└── enum-offset.ts Enum value offset annotations
|
|
158
|
+
scripts/
|
|
159
|
+
├── smoke-test.ts Registry smoke test (112 entries)
|
|
160
|
+
└── check-tests.ts Test coverage enforcement
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Each source file has a corresponding `.test.ts` with unit tests — see [Testing](#testing) above.
|
|
109
164
|
|
|
110
165
|
## Handled API differences
|
|
111
166
|
|