Skip to content

Commit 5685214

Browse files
committed
build: add optional external aliases config for TypeScript
Create separate tsconfig for external Socket package aliases that is only used when external packages are detected at build time. Detection logic: - scripts/test.mjs checks for external packages using getLocalPackageAliases() - Uses .config/tsconfig.external-aliases.json if found - Falls back to .config/tsconfig.check.json (default) if not found External aliases (when available): - @socketsecurity/lib → ../../socket-lib/dist - @socketsecurity/registry → ../../socket-registry/registry/dist - @socketregistry/packageurl-js → ../../socket-packageurl-js/dist - @socketsecurity/sdk → ../../socket-sdk-js/dist This keeps the repo self-contained by default while supporting local development workflows with sibling Socket repositories.
1 parent 8a2be92 commit 5685214

2 files changed

Lines changed: 37 additions & 8 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"extends": "./tsconfig.check.json",
3+
"compilerOptions": {
4+
"paths": {
5+
"#constants/*": ["../src/constants/*"],
6+
"#env/*": ["../src/env/*"],
7+
"#lib/*": ["../src/*"],
8+
"#packages/*": ["../src/packages/*"],
9+
"#types": ["../src/types"],
10+
"#utils/*": ["../src/utils/*"],
11+
"cacache": ["../src/external/cacache"],
12+
"make-fetch-happen": ["../src/external/make-fetch-happen"],
13+
"fast-sort": ["../src/external/fast-sort"],
14+
"pacote": ["../src/external/pacote"],
15+
"@socketsecurity/lib": ["../../socket-lib/dist/index.d.ts"],
16+
"@socketsecurity/lib/*": ["../../socket-lib/dist/*"],
17+
"@socketsecurity/registry": ["../../socket-registry/registry/dist/index.d.ts"],
18+
"@socketsecurity/registry/*": ["../../socket-registry/registry/dist/*"],
19+
"@socketregistry/packageurl-js": ["../../socket-packageurl-js/dist/index.d.ts"],
20+
"@socketregistry/packageurl-js/*": ["../../socket-packageurl-js/dist/*"],
21+
"@socketsecurity/sdk": ["../../socket-sdk-js/dist/index.d.ts"],
22+
"@socketsecurity/sdk/*": ["../../socket-sdk-js/dist/*"]
23+
}
24+
}
25+
}

scripts/test.mjs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { spawn } from 'node:child_process'
77
import { existsSync } from 'node:fs'
88
import path from 'node:path'
99
import { fileURLToPath } from 'node:url'
10+
import { getLocalPackageAliases } from './utils/get-local-package-aliases.mjs'
1011
import { getTestsToRun } from './utils/changed-test-mapper.mjs'
1112
import { printHeader } from './utils/helpers.mjs'
1213
import { logger } from './utils/logger.mjs'
@@ -35,6 +36,13 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url))
3536
const rootPath = path.resolve(__dirname, '..')
3637
const nodeModulesBinPath = path.join(rootPath, 'node_modules', '.bin')
3738

39+
// Detect if external Socket packages are available for type checking
40+
const localAliases = getLocalPackageAliases(rootPath)
41+
const hasExternalPackages = Object.keys(localAliases).length > 0
42+
const tsconfigPath = hasExternalPackages
43+
? '.config/tsconfig.external-aliases.json'
44+
: '.config/tsconfig.check.json'
45+
3846
// Track running processes for cleanup
3947
const runningProcesses = new Set()
4048

@@ -166,18 +174,14 @@ async function runCheck() {
166174

167175
// Run TypeScript check
168176
spinner.start('Checking TypeScript...')
169-
exitCode = await runCommand(
170-
'tsgo',
171-
['--noEmit', '-p', '.config/tsconfig.check.json'],
172-
{
173-
stdio: 'pipe',
174-
},
175-
)
177+
exitCode = await runCommand('tsgo', ['--noEmit', '-p', tsconfigPath], {
178+
stdio: 'pipe',
179+
})
176180
if (exitCode !== 0) {
177181
spinner.stop()
178182
logger.error('TypeScript check failed')
179183
// Re-run with output to show errors
180-
await runCommand('tsgo', ['--noEmit', '-p', '.config/tsconfig.check.json'])
184+
await runCommand('tsgo', ['--noEmit', '-p', tsconfigPath])
181185
return exitCode
182186
}
183187
spinner.stop()

0 commit comments

Comments
 (0)