code-languages 1.1.0 → 1.3.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/README.md +136 -8
- package/dist/detect.cjs +745 -0
- package/dist/detect.cjs.map +1 -0
- package/dist/detect.d.cts +25 -0
- package/dist/detect.d.ts +25 -0
- package/dist/detect.js +742 -0
- package/dist/detect.js.map +1 -0
- package/dist/i18n.cjs +31 -0
- package/dist/i18n.cjs.map +1 -0
- package/dist/i18n.d.cts +5 -0
- package/dist/i18n.d.ts +5 -0
- package/dist/i18n.js +29 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.cjs +650 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +625 -17
- package/dist/index.d.ts +625 -17
- package/dist/index.js +634 -49
- package/dist/index.js.map +1 -1
- package/dist/languages/astro.cjs +34 -0
- package/dist/languages/astro.cjs.map +1 -0
- package/dist/languages/astro.d.cts +29 -0
- package/dist/languages/astro.d.ts +29 -0
- package/dist/languages/astro.js +32 -0
- package/dist/languages/astro.js.map +1 -0
- package/dist/languages/bash.cjs +34 -0
- package/dist/languages/bash.cjs.map +1 -0
- package/dist/languages/bash.d.cts +29 -0
- package/dist/languages/bash.d.ts +29 -0
- package/dist/languages/bash.js +32 -0
- package/dist/languages/bash.js.map +1 -0
- package/dist/languages/c.cjs +18 -4
- package/dist/languages/c.cjs.map +1 -1
- package/dist/languages/c.d.cts +17 -3
- package/dist/languages/c.d.ts +17 -3
- package/dist/languages/c.js +18 -4
- package/dist/languages/c.js.map +1 -1
- package/dist/languages/cpp.cjs +34 -0
- package/dist/languages/cpp.cjs.map +1 -0
- package/dist/languages/cpp.d.cts +29 -0
- package/dist/languages/cpp.d.ts +29 -0
- package/dist/languages/cpp.js +32 -0
- package/dist/languages/cpp.js.map +1 -0
- package/dist/languages/css.cjs +13 -4
- package/dist/languages/css.cjs.map +1 -1
- package/dist/languages/css.d.cts +12 -3
- package/dist/languages/css.d.ts +12 -3
- package/dist/languages/css.js +13 -4
- package/dist/languages/css.js.map +1 -1
- package/dist/languages/dockerfile.cjs +33 -0
- package/dist/languages/dockerfile.cjs.map +1 -0
- package/dist/languages/dockerfile.d.cts +28 -0
- package/dist/languages/dockerfile.d.ts +28 -0
- package/dist/languages/dockerfile.js +31 -0
- package/dist/languages/dockerfile.js.map +1 -0
- package/dist/languages/go.cjs +18 -4
- package/dist/languages/go.cjs.map +1 -1
- package/dist/languages/go.d.cts +17 -3
- package/dist/languages/go.d.ts +17 -3
- package/dist/languages/go.js +18 -4
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/groovy.cjs +34 -0
- package/dist/languages/groovy.cjs.map +1 -0
- package/dist/languages/groovy.d.cts +29 -0
- package/dist/languages/groovy.d.ts +29 -0
- package/dist/languages/groovy.js +32 -0
- package/dist/languages/groovy.js.map +1 -0
- package/dist/languages/html.cjs +13 -4
- package/dist/languages/html.cjs.map +1 -1
- package/dist/languages/html.d.cts +12 -3
- package/dist/languages/html.d.ts +12 -3
- package/dist/languages/html.js +13 -4
- package/dist/languages/html.js.map +1 -1
- package/dist/languages/java.cjs +18 -4
- package/dist/languages/java.cjs.map +1 -1
- package/dist/languages/java.d.cts +17 -3
- package/dist/languages/java.d.ts +17 -3
- package/dist/languages/java.js +18 -4
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/javascript.cjs +18 -4
- package/dist/languages/javascript.cjs.map +1 -1
- package/dist/languages/javascript.d.cts +17 -3
- package/dist/languages/javascript.d.ts +17 -3
- package/dist/languages/javascript.js +18 -4
- package/dist/languages/javascript.js.map +1 -1
- package/dist/languages/json.cjs +13 -4
- package/dist/languages/json.cjs.map +1 -1
- package/dist/languages/json.d.cts +12 -3
- package/dist/languages/json.d.ts +12 -3
- package/dist/languages/json.js +13 -4
- package/dist/languages/json.js.map +1 -1
- package/dist/languages/kotlin.cjs +34 -0
- package/dist/languages/kotlin.cjs.map +1 -0
- package/dist/languages/kotlin.d.cts +29 -0
- package/dist/languages/kotlin.d.ts +29 -0
- package/dist/languages/kotlin.js +32 -0
- package/dist/languages/kotlin.js.map +1 -0
- package/dist/languages/markdown.cjs +13 -4
- package/dist/languages/markdown.cjs.map +1 -1
- package/dist/languages/markdown.d.cts +12 -3
- package/dist/languages/markdown.d.ts +12 -3
- package/dist/languages/markdown.js +13 -4
- package/dist/languages/markdown.js.map +1 -1
- package/dist/languages/php.cjs +34 -0
- package/dist/languages/php.cjs.map +1 -0
- package/dist/languages/php.d.cts +29 -0
- package/dist/languages/php.d.ts +29 -0
- package/dist/languages/php.js +32 -0
- package/dist/languages/php.js.map +1 -0
- package/dist/languages/python.cjs +18 -4
- package/dist/languages/python.cjs.map +1 -1
- package/dist/languages/python.d.cts +17 -3
- package/dist/languages/python.d.ts +17 -3
- package/dist/languages/python.js +18 -4
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/rust.cjs +18 -4
- package/dist/languages/rust.cjs.map +1 -1
- package/dist/languages/rust.d.cts +17 -3
- package/dist/languages/rust.d.ts +17 -3
- package/dist/languages/rust.js +18 -4
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/scss.cjs +34 -0
- package/dist/languages/scss.cjs.map +1 -0
- package/dist/languages/scss.d.cts +29 -0
- package/dist/languages/scss.d.ts +29 -0
- package/dist/languages/scss.js +32 -0
- package/dist/languages/scss.js.map +1 -0
- package/dist/languages/sql.cjs +29 -0
- package/dist/languages/sql.cjs.map +1 -0
- package/dist/languages/sql.d.cts +24 -0
- package/dist/languages/sql.d.ts +24 -0
- package/dist/languages/sql.js +27 -0
- package/dist/languages/sql.js.map +1 -0
- package/dist/languages/swift.cjs +34 -0
- package/dist/languages/swift.cjs.map +1 -0
- package/dist/languages/swift.d.cts +29 -0
- package/dist/languages/swift.d.ts +29 -0
- package/dist/languages/swift.js +32 -0
- package/dist/languages/swift.js.map +1 -0
- package/dist/languages/typescript.cjs +18 -4
- package/dist/languages/typescript.cjs.map +1 -1
- package/dist/languages/typescript.d.cts +17 -3
- package/dist/languages/typescript.d.ts +17 -3
- package/dist/languages/typescript.js +18 -4
- package/dist/languages/typescript.js.map +1 -1
- package/dist/languages/vue.cjs +34 -0
- package/dist/languages/vue.cjs.map +1 -0
- package/dist/languages/vue.d.cts +29 -0
- package/dist/languages/vue.d.ts +29 -0
- package/dist/languages/vue.js +32 -0
- package/dist/languages/vue.js.map +1 -0
- package/dist/languages/webassembly.cjs +34 -0
- package/dist/languages/webassembly.cjs.map +1 -0
- package/dist/languages/webassembly.d.cts +29 -0
- package/dist/languages/webassembly.d.ts +29 -0
- package/dist/languages/webassembly.js +32 -0
- package/dist/languages/webassembly.js.map +1 -0
- package/dist/languages/xml.cjs +29 -0
- package/dist/languages/xml.cjs.map +1 -0
- package/dist/languages/xml.d.cts +24 -0
- package/dist/languages/xml.d.ts +24 -0
- package/dist/languages/xml.js +27 -0
- package/dist/languages/xml.js.map +1 -0
- package/dist/languages/yaml.cjs +13 -4
- package/dist/languages/yaml.cjs.map +1 -1
- package/dist/languages/yaml.d.cts +12 -3
- package/dist/languages/yaml.d.ts +12 -3
- package/dist/languages/yaml.js +13 -4
- package/dist/languages/yaml.js.map +1 -1
- package/dist/types-CZDaRR4t.d.cts +53 -0
- package/dist/types-CZDaRR4t.d.ts +53 -0
- package/package.json +87 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
Structured metadata for programming languages, packaged as a typed, tree-shakeable TypeScript library.
|
|
10
10
|
|
|
11
|
-
`code-languages` is useful when you need a small source of truth for language names, slugs, file extensions, release metadata, websites, paradigms, and logos in developer tools, docs sites, learning platforms, or editor-like interfaces. It currently includes metadata for
|
|
11
|
+
`code-languages` is useful when you need a small source of truth for language names, slugs, file extensions, release metadata, websites, paradigms, and logos in developer tools, docs sites, learning platforms, or editor-like interfaces. It currently includes metadata for 25 languages.
|
|
12
12
|
|
|
13
13
|
## Features
|
|
14
14
|
|
|
@@ -31,8 +31,12 @@ Import only the language metadata you need:
|
|
|
31
31
|
|
|
32
32
|
```ts
|
|
33
33
|
import { typescript } from "code-languages/typescript";
|
|
34
|
+
import { localizeLanguage } from "code-languages/i18n";
|
|
34
35
|
|
|
35
|
-
|
|
36
|
+
const localized = localizeLanguage(typescript, "en");
|
|
37
|
+
|
|
38
|
+
console.log(localized.name);
|
|
39
|
+
console.log(localized.description);
|
|
36
40
|
console.log(typescript.extensions);
|
|
37
41
|
console.log(typescript.paradigms);
|
|
38
42
|
```
|
|
@@ -40,39 +44,107 @@ console.log(typescript.paradigms);
|
|
|
40
44
|
Import multiple languages:
|
|
41
45
|
|
|
42
46
|
```ts
|
|
47
|
+
import { astro } from "code-languages/astro";
|
|
48
|
+
import { bash } from "code-languages/bash";
|
|
43
49
|
import { c } from "code-languages/c";
|
|
50
|
+
import { cpp } from "code-languages/cpp";
|
|
44
51
|
import { css } from "code-languages/css";
|
|
52
|
+
import { dockerfile } from "code-languages/dockerfile";
|
|
53
|
+
import { groovy } from "code-languages/groovy";
|
|
45
54
|
import { javascript } from "code-languages/javascript";
|
|
46
55
|
import { java } from "code-languages/java";
|
|
47
56
|
import { html } from "code-languages/html";
|
|
57
|
+
import { kotlin } from "code-languages/kotlin";
|
|
48
58
|
import { markdown } from "code-languages/markdown";
|
|
59
|
+
import { php } from "code-languages/php";
|
|
49
60
|
import { python } from "code-languages/python";
|
|
61
|
+
import { scss } from "code-languages/scss";
|
|
50
62
|
import { json } from "code-languages/json";
|
|
63
|
+
import { sql } from "code-languages/sql";
|
|
64
|
+
import { swift } from "code-languages/swift";
|
|
65
|
+
import { vue } from "code-languages/vue";
|
|
66
|
+
import { webassembly } from "code-languages/webassembly";
|
|
67
|
+
import { xml } from "code-languages/xml";
|
|
51
68
|
import { yaml } from "code-languages/yaml";
|
|
52
69
|
|
|
70
|
+
console.log(astro.version);
|
|
71
|
+
console.log(bash.version);
|
|
53
72
|
console.log(c.extensions);
|
|
73
|
+
console.log(cpp.i18n.en.name);
|
|
54
74
|
console.log(css.paradigms);
|
|
75
|
+
console.log(dockerfile.i18n.en.name);
|
|
76
|
+
console.log(groovy.version);
|
|
55
77
|
console.log(javascript.website);
|
|
56
78
|
console.log(java.version);
|
|
57
79
|
console.log(html.extensions);
|
|
80
|
+
console.log(kotlin.version);
|
|
58
81
|
console.log(markdown.website);
|
|
82
|
+
console.log(php.version);
|
|
59
83
|
console.log(python.publishedDate);
|
|
60
|
-
console.log(
|
|
84
|
+
console.log(scss.extensions);
|
|
85
|
+
console.log(json.i18n.en.description);
|
|
86
|
+
console.log(sql.i18n.en.name);
|
|
87
|
+
console.log(swift.version);
|
|
88
|
+
console.log(vue.website);
|
|
89
|
+
console.log(webassembly.extensions);
|
|
90
|
+
console.log(xml.extensions);
|
|
61
91
|
console.log(yaml.version);
|
|
62
92
|
```
|
|
63
93
|
|
|
64
94
|
Import from the package root when bundle size is not a concern:
|
|
65
95
|
|
|
66
96
|
```ts
|
|
67
|
-
import {
|
|
97
|
+
import {
|
|
98
|
+
astro,
|
|
99
|
+
bash,
|
|
100
|
+
c,
|
|
101
|
+
cpp,
|
|
102
|
+
css,
|
|
103
|
+
detectLanguage,
|
|
104
|
+
detectLanguages,
|
|
105
|
+
dockerfile,
|
|
106
|
+
go,
|
|
107
|
+
groovy,
|
|
108
|
+
html,
|
|
109
|
+
java,
|
|
110
|
+
json,
|
|
111
|
+
kotlin,
|
|
112
|
+
localizeLanguage,
|
|
113
|
+
markdown,
|
|
114
|
+
php,
|
|
115
|
+
rust,
|
|
116
|
+
scss,
|
|
117
|
+
sql,
|
|
118
|
+
swift,
|
|
119
|
+
typescript,
|
|
120
|
+
vue,
|
|
121
|
+
webassembly,
|
|
122
|
+
xml,
|
|
123
|
+
yaml,
|
|
124
|
+
} from "code-languages";
|
|
68
125
|
|
|
126
|
+
console.log(localizeLanguage(astro, "es").description);
|
|
127
|
+
console.log(detectLanguage("src/index.ts")?.slug);
|
|
128
|
+
console.log(detectLanguages("include/config.h").map((language) => language.slug));
|
|
129
|
+
console.log(localizeLanguage(bash, "es").description);
|
|
69
130
|
console.log(c.version);
|
|
70
|
-
console.log(
|
|
71
|
-
console.log(
|
|
131
|
+
console.log(cpp.website);
|
|
132
|
+
console.log(localizeLanguage(css).name);
|
|
133
|
+
console.log(dockerfile.website);
|
|
134
|
+
console.log(localizeLanguage(groovy).description);
|
|
135
|
+
console.log(localizeLanguage(java).name);
|
|
72
136
|
console.log(html.website);
|
|
137
|
+
console.log(localizeLanguage(kotlin, "es-PE").description);
|
|
73
138
|
console.log(markdown.extensions);
|
|
139
|
+
console.log(localizeLanguage(php, "es").description);
|
|
74
140
|
console.log(go.logo);
|
|
141
|
+
console.log(localizeLanguage(scss).name);
|
|
75
142
|
console.log(json.website);
|
|
143
|
+
console.log(sql.extensions);
|
|
144
|
+
console.log(swift.i18n.en.description);
|
|
145
|
+
console.log(localizeLanguage(vue, "es").description);
|
|
146
|
+
console.log(localizeLanguage(webassembly).name);
|
|
147
|
+
console.log(localizeLanguage(xml, "es").name);
|
|
76
148
|
console.log(yaml.paradigms);
|
|
77
149
|
```
|
|
78
150
|
|
|
@@ -81,36 +153,92 @@ console.log(yaml.paradigms);
|
|
|
81
153
|
Every language object satisfies the `Language` interface:
|
|
82
154
|
|
|
83
155
|
```ts
|
|
84
|
-
export
|
|
156
|
+
export type Locale = "en" | "es";
|
|
157
|
+
|
|
158
|
+
export interface LanguageContent {
|
|
85
159
|
name: string;
|
|
86
|
-
slug: string;
|
|
87
160
|
description: string;
|
|
88
161
|
longDescription: string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export interface Language {
|
|
165
|
+
slug: string;
|
|
89
166
|
publishedDate: string;
|
|
90
167
|
extensions: string[];
|
|
91
168
|
author: string;
|
|
92
169
|
website: string;
|
|
93
170
|
paradigms: string[];
|
|
171
|
+
tooling?: {
|
|
172
|
+
runtimes?: string[];
|
|
173
|
+
packageManagers?: string[];
|
|
174
|
+
ecosystems?: string[];
|
|
175
|
+
};
|
|
94
176
|
version: string;
|
|
95
177
|
logo: string;
|
|
178
|
+
i18n: {
|
|
179
|
+
en: LanguageContent;
|
|
180
|
+
es?: LanguageContent;
|
|
181
|
+
};
|
|
96
182
|
}
|
|
97
183
|
```
|
|
98
184
|
|
|
185
|
+
Use `localizeLanguage` to read localized display content with English fallback:
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import { json } from "code-languages/json";
|
|
189
|
+
import { localizeLanguage } from "code-languages/i18n";
|
|
190
|
+
|
|
191
|
+
const language = localizeLanguage(json, "es-PE");
|
|
192
|
+
|
|
193
|
+
console.log(language.name);
|
|
194
|
+
console.log(language.longDescription);
|
|
195
|
+
console.log(language.resolvedLocale); // "es"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
`localizeLanguage` resolves locales in this order:
|
|
199
|
+
|
|
200
|
+
1. Exact locale, for example `es`.
|
|
201
|
+
2. Base language from a regional locale, for example `es-PE` -> `es`.
|
|
202
|
+
3. English fallback, for example `fr-FR` -> `en`.
|
|
203
|
+
|
|
204
|
+
Use `detectLanguage` or `detectLanguages` to infer languages from filenames:
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
import { detectLanguage, detectLanguages } from "code-languages/detect";
|
|
208
|
+
|
|
209
|
+
console.log(detectLanguage("src/index.ts")?.slug); // "typescript"
|
|
210
|
+
console.log(detectLanguage("Dockerfile")?.slug); // "dockerfile"
|
|
211
|
+
console.log(detectLanguages("include/config.h").map((language) => language.slug)); // ["c", "cpp"]
|
|
212
|
+
```
|
|
213
|
+
|
|
99
214
|
## Supported Languages
|
|
100
215
|
|
|
101
216
|
| Language | Slug | Extensions | Version | Import |
|
|
102
217
|
|---|---|---|---|---|
|
|
218
|
+
| Astro | `astro` | `.astro` | `6.3.1` | `code-languages/astro` |
|
|
219
|
+
| Bash | `bash` | `.sh`, `.bash`, `.bashrc`, `.bash_profile`, `.bash_login`, `.profile` | `5.3` | `code-languages/bash` |
|
|
103
220
|
| C | `c` | `.c`, `.h` | `C23` | `code-languages/c` |
|
|
221
|
+
| C++ | `cpp` | `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp`, `.hh`, `.hxx` | `C++23` | `code-languages/cpp` |
|
|
222
|
+
| Dockerfile | `dockerfile` | `Dockerfile`, `.dockerfile` | `1.10` | `code-languages/dockerfile` |
|
|
223
|
+
| Groovy | `groovy` | `.groovy`, `.gvy`, `.gy`, `.gsh` | `5.0.5` | `code-languages/groovy` |
|
|
104
224
|
| TypeScript | `typescript` | `.ts`, `.tsx`, `.mts`, `.cts` | `6.0` | `code-languages/typescript` |
|
|
105
225
|
| JavaScript | `javascript` | `.js`, `.mjs`, `.cjs`, `.jsx` | `ECMAScript 2025` | `code-languages/javascript` |
|
|
106
226
|
| JSON | `json` | `.json` | `RFC 8259` | `code-languages/json` |
|
|
227
|
+
| SQL | `sql` | `.sql` | `SQL:2023` | `code-languages/sql` |
|
|
107
228
|
| Java | `java` | `.java` | `26` | `code-languages/java` |
|
|
229
|
+
| Swift | `swift` | `.swift` | `6.2.2` | `code-languages/swift` |
|
|
230
|
+
| Kotlin | `kotlin` | `.kt`, `.kts` | `2.3.20` | `code-languages/kotlin` |
|
|
231
|
+
| PHP | `php` | `.php`, `.phtml`, `.php3`, `.php4`, `.php5`, `.phps` | `8.5.6` | `code-languages/php` |
|
|
108
232
|
| HTML | `html` | `.html`, `.htm` | `Living Standard` | `code-languages/html` |
|
|
109
233
|
| CSS | `css` | `.css` | `Living Standard` | `code-languages/css` |
|
|
110
234
|
| Markdown | `markdown` | `.md`, `.markdown`, `.mdown`, `.mkd` | `CommonMark 0.31.2` | `code-languages/markdown` |
|
|
235
|
+
| XML | `xml` | `.xml`, `.xsd`, `.xsl`, `.xslt` | `XML 1.0 Fifth Edition` | `code-languages/xml` |
|
|
111
236
|
| YAML | `yaml` | `.yaml`, `.yml` | `1.2.2` | `code-languages/yaml` |
|
|
112
237
|
| Python | `python` | `.py`, `.pyw` | `3.14.4` | `code-languages/python` |
|
|
113
238
|
| Rust | `rust` | `.rs` | `1.95.0` | `code-languages/rust` |
|
|
239
|
+
| Sass | `scss` | `.scss`, `.sass` | `1.99.0` | `code-languages/scss` |
|
|
240
|
+
| Vue | `vue` | `.vue` | `3.5.34` | `code-languages/vue` |
|
|
241
|
+
| WebAssembly | `webassembly` | `.wasm`, `.wat` | `3.0` | `code-languages/webassembly` |
|
|
114
242
|
| Go | `go` | `.go` | `1.26.3` | `code-languages/go` |
|
|
115
243
|
|
|
116
244
|
## Development
|