ttsc 0.3.1 → 0.4.0-dev.20260425

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 (121) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +93 -362
  3. package/cmd/ttsc/build.go +128 -0
  4. package/cmd/ttsc/main.go +222 -0
  5. package/cmd/ttsc/main_test.go +288 -0
  6. package/cmd/ttsc/transform.go +166 -0
  7. package/driver/host.go +31 -0
  8. package/driver/program.go +298 -0
  9. package/driver/rewrite.go +315 -0
  10. package/go.mod +48 -0
  11. package/go.sum +22 -0
  12. package/lib/api.d.ts +91 -0
  13. package/lib/api.js +325 -0
  14. package/lib/api.js.map +1 -0
  15. package/lib/cli.d.ts +1 -0
  16. package/lib/cli.js +481 -0
  17. package/lib/cli.js.map +1 -0
  18. package/lib/index.d.ts +18 -0
  19. package/lib/index.js +35 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/native.d.ts +15 -0
  22. package/lib/native.js +34 -0
  23. package/lib/native.js.map +1 -0
  24. package/lib/platform.d.ts +66 -0
  25. package/lib/platform.js +170 -0
  26. package/lib/platform.js.map +1 -0
  27. package/lib/plugin.d.ts +47 -0
  28. package/lib/plugin.js +150 -0
  29. package/lib/plugin.js.map +1 -0
  30. package/lib/project.d.ts +32 -0
  31. package/lib/project.js +303 -0
  32. package/lib/project.js.map +1 -0
  33. package/lib/runner/cli.d.ts +1 -0
  34. package/lib/runner/cli.js +284 -0
  35. package/lib/runner/cli.js.map +1 -0
  36. package/lib/runner/register.d.ts +13 -0
  37. package/lib/runner/register.js +424 -0
  38. package/lib/runner/register.js.map +1 -0
  39. package/package.json +72 -63
  40. package/shim/ast/extra-shim.json +4 -0
  41. package/shim/ast/go.mod +5 -0
  42. package/shim/ast/shim.go +117 -0
  43. package/shim/bundled/extra-shim.json +1 -0
  44. package/shim/bundled/go.mod +5 -0
  45. package/shim/bundled/shim.go +19 -0
  46. package/shim/checker/extra-shim.json +31 -0
  47. package/shim/checker/go.mod +5 -0
  48. package/shim/checker/shim.go +146 -0
  49. package/shim/compiler/extra-shim.json +4 -0
  50. package/shim/compiler/go.mod +5 -0
  51. package/shim/compiler/shim.go +50 -0
  52. package/shim/core/extra-shim.json +4 -0
  53. package/shim/core/go.mod +5 -0
  54. package/shim/core/shim.go +11 -0
  55. package/shim/diagnosticwriter/go.mod +5 -0
  56. package/shim/diagnosticwriter/shim.go +29 -0
  57. package/shim/parser/extra-shim.json +4 -0
  58. package/shim/parser/go.mod +5 -0
  59. package/shim/parser/shim.go +55 -0
  60. package/shim/scanner/extra-shim.json +4 -0
  61. package/shim/scanner/go.mod +5 -0
  62. package/shim/scanner/shim.go +96 -0
  63. package/shim/tsoptions/extra-shim.json +4 -0
  64. package/shim/tsoptions/go.mod +5 -0
  65. package/shim/tsoptions/shim.go +123 -0
  66. package/shim/tspath/extra-shim.json +4 -0
  67. package/shim/tspath/go.mod +5 -0
  68. package/shim/tspath/shim.go +165 -0
  69. package/shim/vfs/cachedvfs/extra-shim.json +4 -0
  70. package/shim/vfs/cachedvfs/go.mod +5 -0
  71. package/shim/vfs/cachedvfs/shim.go +12 -0
  72. package/shim/vfs/extra-shim.json +4 -0
  73. package/shim/vfs/go.mod +5 -0
  74. package/shim/vfs/osvfs/extra-shim.json +4 -0
  75. package/shim/vfs/osvfs/go.mod +5 -0
  76. package/shim/vfs/osvfs/shim.go +13 -0
  77. package/shim/vfs/shim.go +19 -0
  78. package/src/api.ts +416 -0
  79. package/src/cli.ts +492 -0
  80. package/src/index.ts +19 -0
  81. package/src/launcher/ttsc-dev.js +42 -0
  82. package/src/launcher/ttsc.js +19 -0
  83. package/src/launcher/ttsx.js +19 -0
  84. package/src/native.ts +60 -0
  85. package/src/platform.ts +163 -0
  86. package/src/plugin.ts +241 -0
  87. package/src/project.ts +330 -0
  88. package/src/runner/cli.ts +286 -0
  89. package/src/runner/register.ts +487 -0
  90. package/test/native.test.ts +60 -0
  91. package/test/package.test.ts +131 -0
  92. package/test/platform.test.ts +58 -0
  93. package/test/project.test.ts +195 -0
  94. package/tools/gen_shims/go.mod +14 -0
  95. package/tools/gen_shims/go.sum +12 -0
  96. package/tools/gen_shims/main.go +446 -0
  97. package/CHANGELOG.md +0 -2
  98. package/bin/tsc +0 -2
  99. package/bin/tsserver +0 -2
  100. package/lib/PluginCreator.d.ts +0 -67
  101. package/lib/PluginCreator.js +0 -190
  102. package/lib/cancelationToken.d.ts +0 -0
  103. package/lib/cancelationToken.js +0 -2
  104. package/lib/loadTypescript.d.ts +0 -7
  105. package/lib/loadTypescript.js +0 -56
  106. package/lib/patchCreateProgram.d.ts +0 -21
  107. package/lib/patchCreateProgram.js +0 -190
  108. package/lib/tsc.d.ts +0 -1
  109. package/lib/tsc.js +0 -24
  110. package/lib/tsserver.d.ts +0 -0
  111. package/lib/tsserver.js +0 -2
  112. package/lib/tsserverlibrary.d.ts +0 -3
  113. package/lib/tsserverlibrary.js +0 -4
  114. package/lib/typescript.d.ts +0 -3
  115. package/lib/typescript.js +0 -4
  116. package/lib/typescriptServices.d.ts +0 -3
  117. package/lib/typescriptServices.js +0 -4
  118. package/lib/typingsInstaller.d.ts +0 -0
  119. package/lib/typingsInstaller.js +0 -2
  120. package/lib/watchGuard.d.ts +0 -0
  121. package/lib/watchGuard.js +0 -2
@@ -0,0 +1,446 @@
1
+ // Package main generates go:linkname-based shim.go files for every
2
+ // typescript-go internal package listed below.
3
+ //
4
+ // Adapted from tsgolint's tools/gen_shims/main.go
5
+ // (https://github.com/oxc-project/tsgolint, MIT License).
6
+ // Copyright (c) 2025 VoidZero Inc. & Contributors.
7
+ // Copyright (c) 2025 typescript-eslint and other contributors.
8
+ // Copyright (c) 2026 Jeongho Nam (ttsc adaptation — host-specific packages
9
+ // list and extra_shim lookup path; generator algorithm unchanged).
10
+ //
11
+ // Usage:
12
+ //
13
+ // cd packages/ttsc
14
+ // go run ./tools/gen_shims
15
+ //
16
+ // Each shim directory (`packages/ttsc/shim/<name>`) must contain an
17
+ // `extra-shim.json` file; the generator writes its output to
18
+ // `packages/ttsc/shim/<name>/shim.go`.
19
+ package main
20
+
21
+ import (
22
+ "bytes"
23
+ "fmt"
24
+ "go/types"
25
+ "log"
26
+ "maps"
27
+ "os"
28
+ "path"
29
+ "slices"
30
+ "strings"
31
+
32
+ "github.com/go-json-experiment/json"
33
+
34
+ "golang.org/x/text/cases"
35
+ "golang.org/x/text/language"
36
+ "golang.org/x/tools/go/packages"
37
+ )
38
+
39
+ const tsgoInternalPrefix = "github.com/microsoft/typescript-go/internal/"
40
+
41
+ // Packages for which we generate a shim. Mirrors tsgolint's list with
42
+ // project/lsp/lsproto removed for the current host boundary and the rest kept
43
+ // verbatim so gen_shims output stays comparable across projects.
44
+ var packagesToShim = []string{
45
+ "ast",
46
+ "bundled",
47
+ "checker",
48
+ "compiler",
49
+ "core",
50
+ "parser",
51
+ "scanner",
52
+ "tsoptions",
53
+ "tspath",
54
+ "vfs",
55
+ "vfs/cachedvfs",
56
+ "vfs/osvfs",
57
+ }
58
+
59
+ type ExtraShim struct {
60
+ ExtraFunctions []string
61
+ ExtraMethods map[string][]string
62
+ ExtraFields map[string][]string
63
+ IgnoreFunctions []string
64
+ }
65
+
66
+ func signatureHasUnexportedType(t types.Signature) bool {
67
+ if params := t.Params(); params != nil {
68
+ for v := range params.Variables() {
69
+ ty := v.Type()
70
+ if ptrType, ok := ty.(*types.Pointer); ok {
71
+ ty = ptrType.Elem()
72
+ }
73
+ if named, ok := ty.(*types.Named); ok {
74
+ if !named.Obj().Exported() {
75
+ return true
76
+ }
77
+ }
78
+ }
79
+ }
80
+ return false
81
+ }
82
+
83
+ func main() {
84
+ fullNames := make([]string, len(packagesToShim))
85
+ for i, pkg := range packagesToShim {
86
+ fullNames[i] = tsgoInternalPrefix + pkg
87
+ }
88
+
89
+ loaded, err := packages.Load(&packages.Config{
90
+ Dir: "./shim/ast", // any shim module works as anchor; they all require typescript-go
91
+ Mode: packages.LoadSyntax,
92
+ }, fullNames...)
93
+ if err != nil {
94
+ log.Fatalf("gen_shims: packages.Load: %v", err)
95
+ }
96
+
97
+ var shimHeaderBuilder strings.Builder
98
+ var shimBuilder strings.Builder
99
+ var tempBuffer bytes.Buffer
100
+
101
+ for _, pkg := range loaded {
102
+ if len(pkg.Errors) != 0 {
103
+ for _, e := range pkg.Errors {
104
+ fmt.Fprintln(os.Stderr, "gen_shims:", e)
105
+ }
106
+ log.Fatalf("gen_shims: package %s failed to load (see errors above)", pkg.PkgPath)
107
+ }
108
+ shimDirPath := path.Join("./shim/", strings.TrimPrefix(pkg.PkgPath, tsgoInternalPrefix))
109
+
110
+ var extraShim ExtraShim
111
+ extraShimFilePath := path.Join(shimDirPath, "extra-shim.json")
112
+ if data, err := os.ReadFile(extraShimFilePath); err == nil {
113
+ if err := json.Unmarshal(data, &extraShim); err != nil {
114
+ fmt.Fprintf(os.Stderr, "gen_shims: error parsing %v: %v\n", extraShimFilePath, err)
115
+ os.Exit(1)
116
+ }
117
+ }
118
+ if extraShim.ExtraMethods == nil {
119
+ extraShim.ExtraMethods = map[string][]string{}
120
+ }
121
+ if extraShim.ExtraFunctions == nil {
122
+ extraShim.ExtraFunctions = []string{}
123
+ }
124
+ if extraShim.ExtraFields == nil {
125
+ extraShim.ExtraFields = map[string][]string{}
126
+ }
127
+ if extraShim.IgnoreFunctions == nil {
128
+ extraShim.IgnoreFunctions = []string{}
129
+ }
130
+
131
+ importedPackages := map[string]bool{}
132
+ importPackage := func(path string, directly bool) {
133
+ if directly {
134
+ importedPackages[path] = true
135
+ } else if _, ok := importedPackages[path]; !ok {
136
+ importedPackages[path] = false
137
+ }
138
+ }
139
+
140
+ var qualifierOnlyPackageName types.Qualifier = func(p *types.Package) string {
141
+ importPackage(p.Path(), true)
142
+ return p.Name()
143
+ }
144
+ var qualifierEmptyPackageName types.Qualifier = func(p *types.Package) string { return "" }
145
+
146
+ emitGoLinknameDirective := func(localName string, fn *types.Func) {
147
+ importPackage("unsafe", false)
148
+ importPackage(pkg.Types.Path(), false)
149
+ shimBuilder.WriteString("//go:linkname ")
150
+ shimBuilder.WriteString(localName)
151
+ shimBuilder.WriteByte(' ')
152
+ shimBuilder.WriteString(fn.Pkg().Path())
153
+ shimBuilder.WriteByte('.')
154
+ if recv := fn.Signature().Recv(); recv != nil {
155
+ shimBuilder.WriteByte('(')
156
+ shimBuilder.WriteString(types.TypeString(recv.Type(), qualifierEmptyPackageName))
157
+ shimBuilder.WriteByte(')')
158
+ shimBuilder.WriteByte('.')
159
+ }
160
+ shimBuilder.WriteString(fn.Name())
161
+ shimBuilder.WriteByte('\n')
162
+ }
163
+
164
+ emitLinkedFunction := func(fn *types.Func) bool {
165
+ if fn.Signature().TypeParams() != nil {
166
+ return false
167
+ }
168
+ if signatureHasUnexportedType(*fn.Signature()) {
169
+ fmt.Fprintf(os.Stderr, "gen_shims: skipping %s.%s (unexported types)\n", fn.Pkg().Name(), fn.Name())
170
+ return false
171
+ }
172
+ name := cases.Title(language.English, cases.NoLower).String(fn.Name())
173
+ emitGoLinknameDirective(name, fn)
174
+ shimBuilder.WriteString("func ")
175
+ shimBuilder.WriteString(name)
176
+ types.WriteSignature(&tempBuffer, fn.Signature(), qualifierOnlyPackageName)
177
+ shimBuilder.Write(tempBuffer.Bytes())
178
+ tempBuffer.Reset()
179
+ shimBuilder.WriteString("\n")
180
+ return true
181
+ }
182
+
183
+ matchedExtraFunctions := make(map[string]bool, len(extraShim.ExtraFunctions))
184
+ for _, name := range extraShim.ExtraFunctions {
185
+ matchedExtraFunctions[name] = false
186
+ }
187
+ matchedExtraMethods := make(map[string]map[string]bool, len(extraShim.ExtraMethods))
188
+ for name, methods := range extraShim.ExtraMethods {
189
+ matchedExtraMethods[name] = make(map[string]bool, len(methods))
190
+ for _, method := range methods {
191
+ matchedExtraMethods[name][method] = false
192
+ }
193
+ }
194
+ matchedExtraFields := make(map[string]bool, len(extraShim.ExtraFields))
195
+ for name := range extraShim.ExtraFields {
196
+ matchedExtraFields[name] = false
197
+ }
198
+
199
+ scope := pkg.Types.Scope()
200
+ for _, name := range scope.Names() {
201
+ object := scope.Lookup(name)
202
+ if !object.Exported() {
203
+ fn, isFunc := object.(*types.Func)
204
+ if _, exists := matchedExtraFunctions[name]; isFunc && exists {
205
+ if emitLinkedFunction(fn) {
206
+ matchedExtraFunctions[name] = true
207
+ }
208
+ }
209
+ continue
210
+ }
211
+
212
+ printReexport := func(kind string) {
213
+ importPackage(pkg.Types.Path(), true)
214
+ shimBuilder.WriteString(kind)
215
+ shimBuilder.WriteString(" ")
216
+ shimBuilder.WriteString(name)
217
+ shimBuilder.WriteString(" = ")
218
+ shimBuilder.WriteString(pkg.Name)
219
+ shimBuilder.WriteString(".")
220
+ shimBuilder.WriteString(name)
221
+ shimBuilder.WriteString("\n")
222
+ }
223
+
224
+ switch object.(type) {
225
+ case *types.TypeName:
226
+ typeName := object.(*types.TypeName)
227
+ t := typeName.Type()
228
+ named, isNamed := t.(*types.Named)
229
+ if isNamed {
230
+ _, nameWithTypeParams, _ := strings.Cut(types.TypeString(named, qualifierOnlyPackageName), ".")
231
+ importPackage(pkg.Types.Path(), true)
232
+ shimBuilder.WriteString("type ")
233
+ shimBuilder.WriteString(nameWithTypeParams)
234
+ shimBuilder.WriteString(" = ")
235
+ shimBuilder.WriteString(pkg.Name)
236
+ shimBuilder.WriteString(".")
237
+ shimBuilder.WriteString(name)
238
+
239
+ typeParams := slices.Collect(named.TypeParams().TypeParams())
240
+ if len(typeParams) > 0 {
241
+ shimBuilder.WriteByte('[')
242
+ for i, ty := range typeParams {
243
+ if i > 0 {
244
+ shimBuilder.WriteByte(',')
245
+ }
246
+ shimBuilder.WriteString(ty.String())
247
+ }
248
+ shimBuilder.WriteByte(']')
249
+ }
250
+ shimBuilder.WriteString("\n")
251
+ } else {
252
+ printReexport("type")
253
+ }
254
+
255
+ if extraMethods, ok := matchedExtraMethods[name]; isNamed && ok {
256
+ for method := range named.Methods() {
257
+ methodName := method.Name()
258
+ if _, exists := extraMethods[methodName]; !exists {
259
+ continue
260
+ }
261
+ extraMethods[methodName] = true
262
+ prefix := name + "_"
263
+ emitGoLinknameDirective(prefix+methodName, method)
264
+ funcDeclStr := types.ObjectString(method, qualifierOnlyPackageName)
265
+ recvStart := 0
266
+ recvEnd := 0
267
+ paramsStart := 0
268
+ for i, s := range funcDeclStr {
269
+ if s == '(' {
270
+ if recvStart == 0 {
271
+ recvStart = i + 1
272
+ }
273
+ if recvEnd != 0 {
274
+ paramsStart = i + 1
275
+ break
276
+ }
277
+ }
278
+ if s == ')' && recvEnd == 0 {
279
+ recvEnd = i
280
+ }
281
+ }
282
+ shimBuilder.WriteString("func ")
283
+ shimBuilder.WriteString(prefix)
284
+ shimBuilder.WriteString(funcDeclStr[recvEnd+2 : paramsStart])
285
+ shimBuilder.WriteString("recv ")
286
+ shimBuilder.WriteString(funcDeclStr[recvStart:recvEnd])
287
+ if method.Signature().Params() != nil {
288
+ shimBuilder.WriteString(", ")
289
+ }
290
+ shimBuilder.WriteString(funcDeclStr[paramsStart:])
291
+ shimBuilder.WriteString("\n")
292
+ }
293
+ }
294
+
295
+ if _, ok := matchedExtraFields[name]; isNamed && ok {
296
+ importPackage("unsafe", true)
297
+ matchedExtraFields[name] = true
298
+ mirrorStructName := "extra_" + name
299
+
300
+ var emitExtraStruct func(name string, s *types.Struct)
301
+ emitExtraStruct = func(name string, s *types.Struct) {
302
+ shimBuilder.WriteString("type extra_")
303
+ shimBuilder.WriteString(name)
304
+ shimBuilder.WriteString(" struct {")
305
+
306
+ dependencies := []struct {
307
+ string
308
+ *types.Struct
309
+ }{}
310
+ for field := range s.Fields() {
311
+ shimBuilder.WriteString("\n ")
312
+ if !field.Embedded() {
313
+ shimBuilder.WriteString(field.Name())
314
+ shimBuilder.WriteByte(' ')
315
+ }
316
+
317
+ ptrType, ok := field.Type().(*types.Pointer)
318
+ if ok {
319
+ named, ok := ptrType.Elem().(*types.Named)
320
+ if ok && !named.Obj().Exported() {
321
+ strct, ok := named.Underlying().(*types.Struct)
322
+ if ok {
323
+ n := named.Obj().Name()
324
+ dependencies = append(dependencies, struct {
325
+ string
326
+ *types.Struct
327
+ }{n, strct})
328
+ shimBuilder.WriteString("extra_")
329
+ shimBuilder.WriteString(n)
330
+ continue
331
+ }
332
+ }
333
+ }
334
+
335
+ shimBuilder.WriteString(
336
+ strings.ReplaceAll(types.TypeString(field.Type(), qualifierOnlyPackageName), "checker.thisAssignmentDeclarationKind", "int32"),
337
+ )
338
+ }
339
+ shimBuilder.WriteString("\n}\n")
340
+ for _, dep := range dependencies {
341
+ emitExtraStruct(dep.string, dep.Struct)
342
+ }
343
+ }
344
+
345
+ strct, ok := named.Underlying().(*types.Struct)
346
+ if !ok {
347
+ log.Fatalf("gen_shims: expected %v to be struct", name)
348
+ }
349
+ emitExtraStruct(name, strct)
350
+
351
+ mappedFieldTypes := make(map[string]*types.Var, strct.NumFields())
352
+ for field := range strct.Fields() {
353
+ mappedFieldTypes[field.Name()] = field
354
+ }
355
+
356
+ for _, field := range extraShim.ExtraFields[name] {
357
+ shimBuilder.WriteString("func ")
358
+ shimBuilder.WriteString(name)
359
+ shimBuilder.WriteByte('_')
360
+ shimBuilder.WriteString(field)
361
+ shimBuilder.WriteString("(v *")
362
+ shimBuilder.WriteString(pkg.Name)
363
+ shimBuilder.WriteByte('.')
364
+ shimBuilder.WriteString(name)
365
+ shimBuilder.WriteString(") ")
366
+
367
+ fieldVar, ok := mappedFieldTypes[field]
368
+ if !ok {
369
+ log.Fatalf("gen_shims: expected struct %q to contain field %q", name, field)
370
+ }
371
+ shimBuilder.WriteString(types.TypeString(fieldVar.Type(), qualifierOnlyPackageName))
372
+ shimBuilder.WriteString(" {\n")
373
+ shimBuilder.WriteString(" return ((*")
374
+ shimBuilder.WriteString(mirrorStructName)
375
+ shimBuilder.WriteString(")(unsafe.Pointer(v))).")
376
+ shimBuilder.WriteString(field)
377
+ shimBuilder.WriteString("\n")
378
+ shimBuilder.WriteString("}\n")
379
+ }
380
+ }
381
+ case *types.Const:
382
+ printReexport("const")
383
+ case *types.Var:
384
+ printReexport("var")
385
+ case *types.Func:
386
+ if !slices.Contains(extraShim.IgnoreFunctions, name) {
387
+ funcType := object.(*types.Func)
388
+ emitLinkedFunction(funcType)
389
+ }
390
+ }
391
+ }
392
+
393
+ exit := false
394
+ for fnName, found := range matchedExtraFunctions {
395
+ if found {
396
+ continue
397
+ }
398
+ fmt.Fprintf(os.Stderr, "gen_shims: ERROR couldn't find %v function\n", fnName)
399
+ exit = true
400
+ }
401
+ for name, methods := range matchedExtraMethods {
402
+ for methodName, found := range methods {
403
+ if found {
404
+ continue
405
+ }
406
+ fmt.Fprintf(os.Stderr, "gen_shims: ERROR couldn't find %v.%v method\n", name, methodName)
407
+ exit = true
408
+ }
409
+ }
410
+ if exit {
411
+ os.Exit(1)
412
+ }
413
+
414
+ shimHeaderBuilder.WriteString("\n// Code generated by packages/ttsc/tools/gen_shims. DO NOT EDIT.\n\n")
415
+ shimHeaderBuilder.WriteString("package ")
416
+ shimHeaderBuilder.WriteString(pkg.Name)
417
+ shimHeaderBuilder.WriteString("\n\n")
418
+ importsList := slices.Collect(maps.Keys(importedPackages))
419
+ slices.Sort(importsList)
420
+ for _, imported := range importsList {
421
+ shimHeaderBuilder.WriteString("import ")
422
+ if !importedPackages[imported] {
423
+ shimHeaderBuilder.WriteString("_ ")
424
+ }
425
+ shimHeaderBuilder.WriteString("\"")
426
+ shimHeaderBuilder.WriteString(imported)
427
+ shimHeaderBuilder.WriteString("\"\n")
428
+ }
429
+ shimHeaderBuilder.WriteString("\n")
430
+
431
+ shimGoPath := path.Join(shimDirPath, "shim.go")
432
+ file, err := os.Create(shimGoPath)
433
+ if err != nil {
434
+ log.Fatalf("gen_shims: opening %v for write: %v", shimGoPath, err)
435
+ }
436
+ file.WriteString(shimHeaderBuilder.String())
437
+ file.WriteString(shimBuilder.String())
438
+ if err := file.Close(); err != nil {
439
+ log.Fatalf("gen_shims: closing %v: %v", shimGoPath, err)
440
+ }
441
+ fmt.Fprintf(os.Stdout, "gen_shims: wrote %s (%d bytes)\n", shimGoPath, len(shimBuilder.String()))
442
+
443
+ shimHeaderBuilder.Reset()
444
+ shimBuilder.Reset()
445
+ }
446
+ }
package/CHANGELOG.md DELETED
@@ -1,2 +0,0 @@
1
- # Change Log
2
-
package/bin/tsc DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- require('../lib/tsc.js')
package/bin/tsserver DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- require('../lib/tsserver.js')
@@ -1,67 +0,0 @@
1
- import * as ts from 'typescript';
2
- export interface PluginConfig {
3
- /**
4
- * Language Server TypeScript Plugin name
5
- */
6
- name?: string;
7
- /**
8
- * Path to transformer or transformer module name
9
- */
10
- transform?: string;
11
- /**
12
- * The optional name of the exported transform plugin in the transform module.
13
- */
14
- import?: string;
15
- /**
16
- * Plugin entry point format type, default is program
17
- */
18
- type?: 'ls' | 'program' | 'config' | 'checker' | 'raw' | 'compilerOptions';
19
- /**
20
- * Should transformer applied after all ones
21
- */
22
- after?: boolean;
23
- /**
24
- * Should transformer applied for d.ts files, supports from TS2.9
25
- */
26
- afterDeclarations?: boolean;
27
- }
28
- export interface TransformerBasePlugin {
29
- before?: ts.TransformerFactory<ts.SourceFile>;
30
- after?: ts.TransformerFactory<ts.SourceFile>;
31
- afterDeclarations?: ts.TransformerFactory<ts.SourceFile | ts.Bundle>;
32
- }
33
- export type TransformerList = Required<ts.CustomTransformers>;
34
- export type TransformerPlugin = TransformerBasePlugin | ts.TransformerFactory<ts.SourceFile>;
35
- export type LSPattern = (ls: ts.LanguageService, config: {}) => TransformerPlugin;
36
- export type ProgramPattern = (program: ts.Program, config: {}, helpers?: {
37
- ts: typeof ts;
38
- addDiagnostic: (diag: ts.Diagnostic) => void;
39
- }) => TransformerPlugin;
40
- export type CompilerOptionsPattern = (compilerOpts: ts.CompilerOptions, config: {}) => TransformerPlugin;
41
- export type ConfigPattern = (config: {}) => TransformerPlugin;
42
- export type TypeCheckerPattern = (checker: ts.TypeChecker, config: {}) => TransformerPlugin;
43
- export type RawPattern = (context: ts.TransformationContext, program: ts.Program, config: {}) => ts.Transformer<ts.SourceFile>;
44
- export type PluginFactory = LSPattern | ProgramPattern | ConfigPattern | CompilerOptionsPattern | TypeCheckerPattern | RawPattern;
45
- /**
46
- * @example
47
- *
48
- * new PluginCreator([
49
- * {transform: '@zerollup/ts-transform-paths', someOption: '123'},
50
- * {transform: '@zerollup/ts-transform-paths', type: 'ls', someOption: '123'},
51
- * {transform: '@zerollup/ts-transform-paths', type: 'ls', after: true, someOption: '123'}
52
- * ]).createTransformers({ program })
53
- */
54
- export declare class PluginCreator {
55
- private typescript;
56
- private configs;
57
- private resolveBaseDir;
58
- constructor(typescript: typeof ts, configs: PluginConfig[], resolveBaseDir?: string);
59
- mergeTransformers(into: TransformerList, source: ts.CustomTransformers | TransformerBasePlugin): this;
60
- createTransformers(params: {
61
- program: ts.Program;
62
- } | {
63
- ls: ts.LanguageService;
64
- }, customTransformers?: ts.CustomTransformers): Required<ts.CustomTransformers>;
65
- private resolveFactory;
66
- private validateConfigs;
67
- }