-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathcspell.config.mts
More file actions
84 lines (79 loc) · 1.92 KB
/
cspell.config.mts
File metadata and controls
84 lines (79 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import { readdirSync, readFileSync } from 'node:fs'
import { join } from 'node:path'
import type { CSpellSettings } from 'cspell'
function findPackageJsonFiles(directory: string): string[] {
return readdirSync(directory, { withFileTypes: true }).flatMap((e) => {
if (e.name === 'node_modules') return []
const full = join(directory, e.name)
return e.isDirectory() ? findPackageJsonFiles(full) : e.name === 'package.json' ? [full] : []
})
}
function getAllDependencies(pkgPath: string): string[] {
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'))
return [pkg.dependencies, pkg.devDependencies, pkg.peerDependencies, pkg.optionalDependencies, pkg.catalog]
.flatMap((deps) => Object.keys(deps || {}))
.flatMap((dep) => dep.replace('@', '').split(/[/-]/))
}
export function getPackageNames(): string[] {
const allDeps = new Set<string>(findPackageJsonFiles('.').flatMap(getAllDependencies))
return [...allDeps].sort()
}
const config: CSpellSettings = {
dictionaries: ['fullstack', 'html', 'css'],
ignorePaths: ['drizzle'],
import: ['@cspell/dict-es-es/cspell-ext.json'],
overrides: [
{
filename: '**/es/*.json',
language: 'en, es',
},
],
useGitignore: true,
words: [
...getPackageNames(),
// English
'arweave',
'beeman',
'blockhash',
'bootsplash',
'bunx',
'cooldown',
'cypherpunk',
'datetimepicker',
'devnet',
'ellipsify',
'hackathon',
'hdkey',
'helius',
'lamport',
'lamports',
'lironer',
'localnet',
'mainnet',
'metaplex',
'netinfo',
'nvmrc',
'nums',
'rtishchev',
'samui',
'seti',
'sidepanel',
'skia',
'solscan',
'surfpool',
'sysvar',
'testnet',
'tobeycodes',
'unimodules',
'unruggable',
'viewpager',
'vitaly',
'wordlist',
'wordlists',
'worklets',
// Spanish
'mnemónica',
'redirecciona',
],
}
export default config