Skip to content

Commit b0baa5a

Browse files
committed
♻️ Redo the TypeScript things
1 parent 4a90878 commit b0baa5a

File tree

8 files changed

+77
-35
lines changed

8 files changed

+77
-35
lines changed

packages/all/index.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
export { DynamicLangRegistrations } from '@ast-grep/napi'
22
export * from './langs.js'
33
export * from './register.js'
4-
export * from './types.d.ts'

packages/all/jsconfig.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"declaration": true,
2828
"declarationMap": true,
2929
"sourceMap": true,
30-
"outDir": "./dist",
3130

3231
/* Interop Constraints */
3332
"isolatedModules": true,
@@ -59,5 +58,8 @@
5958
/* Completeness */
6059
"skipDefaultLibCheck": true,
6160
"skipLibCheck": true
62-
}
61+
},
62+
63+
"include": ["./**/*.js", "./**/*.d.ts"],
64+
"exclude": ["node_modules"]
6365
}

packages/all/langs.d.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* An enum of all languages supported by `@ast-grep/langs`.
3+
*/
4+
export declare const Lang: Readonly<{
5+
Angular: 'Angular'
6+
Bash: 'Bash'
7+
C: 'C'
8+
Cpp: 'Cpp'
9+
CSharp: 'CSharp'
10+
Css: 'Css'
11+
Dart: 'Dart'
12+
Elixir: 'Elixir'
13+
Go: 'Go'
14+
Haskell: 'Haskell'
15+
Html: 'Html'
16+
Java: 'Java'
17+
JavaScript: 'JavaScript'
18+
Json: 'Json'
19+
Kotlin: 'Kotlin'
20+
Lua: 'Lua'
21+
Php: 'Php'
22+
Python: 'Python'
23+
Ruby: 'Ruby'
24+
Rust: 'Rust'
25+
Scala: 'Scala'
26+
Sql: 'Sql'
27+
Swift: 'Swift'
28+
Toml: 'Toml'
29+
Tsx: 'Tsx'
30+
TypeScript: 'TypeScript'
31+
}>
32+
33+
export type Lang = (typeof Lang)[keyof typeof Lang]

packages/all/langs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* An enum of all languages supported by `@ast-grep/langs`.
33
*/
4-
export const langs = Object.freeze({
4+
export const Lang = Object.freeze({
55
Angular: 'Angular',
66
Bash: 'Bash',
77
C: 'C',

packages/all/langs.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import test from 'node:test'
2-
import { langs } from './langs.js'
2+
import { Lang } from './langs.js'
33

44
/** Languages supported in `@ast-grep/napi@~0.33.1`. */
55
const previous = Object.freeze({
@@ -29,5 +29,5 @@ const previous = Object.freeze({
2929
})
3030

3131
test('The new language enum is compatible with the old one', ({ assert }) => {
32-
for (const lang of Object.values(previous)) assert.equal(langs[lang], lang)
32+
for (const lang of Object.values(previous)) assert.equal(Lang[lang], lang)
3333
})

packages/all/register.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { DynamicLangRegistrations } from '@ast-grep/napi'
2+
3+
/**
4+
* Register all dynamic languages from `@ast-grep/langs`. This function should
5+
* be called exactly once in the program.
6+
*
7+
* @param {DynamicLangRegistrations} custom - Extra languages to register that
8+
* are not already defined in `@ast-grep/langs`.
9+
*/
10+
export function registerDynamicLanguage(custom?: DynamicLangRegistrations): void

packages/all/register.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import toml from '@ast-grep/lang-toml'
2626
import tsx from '@ast-grep/lang-tsx'
2727
import typescript from '@ast-grep/lang-typescript'
2828
import { registerDynamicLanguage as rdl } from '@ast-grep/napi'
29-
import { langs } from './langs.js'
29+
import { Lang } from './langs.js'
3030

3131
/**
3232
* Built-in dynamic languages supported by `@ast-grep/langs`.
@@ -35,32 +35,32 @@ import { langs } from './langs.js'
3535
*/
3636
// @ts-expect-error
3737
const register = Object.freeze({
38-
[langs.Angular]: angular,
39-
[langs.Bash]: bash,
40-
[langs.C]: c,
41-
[langs.Cpp]: cpp,
42-
[langs.CSharp]: csharp,
43-
[langs.Css]: css,
44-
[langs.Dart]: dart,
45-
[langs.Elixir]: elixir,
46-
[langs.Go]: go,
47-
[langs.Haskell]: haskell,
48-
[langs.Html]: html,
49-
[langs.Java]: java,
50-
[langs.JavaScript]: javascript,
51-
[langs.Json]: json,
52-
[langs.Kotlin]: kotlin,
53-
[langs.Lua]: lua,
54-
[langs.Php]: php,
55-
[langs.Python]: python,
56-
[langs.Ruby]: ruby,
57-
[langs.Rust]: rust,
58-
[langs.Scala]: scala,
59-
[langs.Sql]: sql,
60-
[langs.Swift]: swift,
61-
[langs.Toml]: toml,
62-
[langs.Tsx]: tsx,
63-
[langs.TypeScript]: typescript,
38+
[Lang.Angular]: angular,
39+
[Lang.Bash]: bash,
40+
[Lang.C]: c,
41+
[Lang.Cpp]: cpp,
42+
[Lang.CSharp]: csharp,
43+
[Lang.Css]: css,
44+
[Lang.Dart]: dart,
45+
[Lang.Elixir]: elixir,
46+
[Lang.Go]: go,
47+
[Lang.Haskell]: haskell,
48+
[Lang.Html]: html,
49+
[Lang.Java]: java,
50+
[Lang.JavaScript]: javascript,
51+
[Lang.Json]: json,
52+
[Lang.Kotlin]: kotlin,
53+
[Lang.Lua]: lua,
54+
[Lang.Php]: php,
55+
[Lang.Python]: python,
56+
[Lang.Ruby]: ruby,
57+
[Lang.Rust]: rust,
58+
[Lang.Scala]: scala,
59+
[Lang.Sql]: sql,
60+
[Lang.Swift]: swift,
61+
[Lang.Toml]: toml,
62+
[Lang.Tsx]: tsx,
63+
[Lang.TypeScript]: typescript,
6464
})
6565

6666
/**

packages/all/types.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)