Skip to content

Commit 6ded534

Browse files
Fix publishing and testing scripts (#289)
* Fix publishing and testing scripts * Update license copying code
1 parent 5e7b8b5 commit 6ded534

File tree

4 files changed

+74
-34
lines changed

4 files changed

+74
-34
lines changed

scripts/copy-licenses.js

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,49 @@
1-
import * as fs from 'node:fs'
1+
import * as fs from 'node:fs/promises'
22
import * as path from 'node:path'
3+
import { fileURLToPath } from 'node:url'
34
import checker from 'license-checker'
4-
import * as pkg from '../package.json'
5+
6+
const __dirname = path.dirname(fileURLToPath(import.meta.url))
7+
8+
const pkg = JSON.parse(
9+
await fs.readFile(path.resolve(__dirname, '../package.json'), 'utf8'),
10+
)
511

612
let exclude = [
713
'cpy-cli',
814
'esbuild',
9-
'jest',
15+
'vitest',
1016
'license-checker',
1117
'prettier',
1218
'rimraf',
1319
'svelte',
20+
'tsup',
21+
'@microsoft/api-extractor',
1422
]
1523

16-
checker.init({ start: path.resolve(__dirname, '..') }, (_err, packages) => {
17-
for (let key in packages) {
18-
let name = key.split(/(?<=.)@/)[0]
19-
if (
20-
name in pkg.devDependencies &&
21-
!exclude.includes(name) &&
22-
packages[key].licenseFile
23-
) {
24-
let dir = path.resolve(__dirname, '../dist/licenses', name)
25-
fs.mkdirSync(dir, { recursive: true })
26-
fs.copyFileSync(
27-
packages[key].licenseFile,
28-
path.resolve(dir, path.basename(packages[key].licenseFile)),
29-
)
24+
/** @type {checker.ModuleInfo} */
25+
let packages = await new Promise((resolve, reject) => {
26+
checker.init({ start: path.resolve(__dirname, '..') }, (_err, packages) => {
27+
if (_err) {
28+
reject(_err)
29+
} else {
30+
resolve(packages)
3031
}
31-
}
32+
})
3233
})
34+
35+
for (let key in packages) {
36+
let dep = packages[key]
37+
let name = key.split(/(?<=.)@/)[0]
38+
39+
if (exclude.includes(name)) continue
40+
if (!dep.licenseFile) continue
41+
if (!(name in pkg.devDependencies)) continue
42+
43+
let dir = path.resolve(__dirname, '../dist/licenses', name)
44+
await fs.mkdir(dir, { recursive: true })
45+
await fs.copyFile(
46+
dep.licenseFile,
47+
path.resolve(dir, path.basename(dep.licenseFile)),
48+
)
49+
}

scripts/install-fixture-deps.js

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
1-
import { execSync } from 'node:child_process'
2-
import * as fs from 'node:fs'
1+
import { exec } from 'node:child_process'
2+
import * as fs from 'node:fs/promises'
33
import * as path from 'node:path'
44
import { fileURLToPath } from 'node:url'
5+
import { promisify } from 'node:util'
56

6-
const __filename = fileURLToPath(import.meta.url)
7-
const __dirname = path.dirname(__filename)
7+
const execAsync = promisify(exec)
8+
9+
const __dirname = path.dirname(fileURLToPath(import.meta.url))
810

911
let fixturesDir = path.resolve(__dirname, '../tests/fixtures')
10-
let fixtures = fs
11-
.readdirSync(fixturesDir)
12-
.map((name) => path.join(fixturesDir, name))
12+
let fixtureDirs = await fs.readdir(fixturesDir)
13+
let fixtures = fixtureDirs.map((name) => path.join(fixturesDir, name))
14+
15+
await Promise.all(
16+
fixtures.map(async (fixture) => {
17+
let exists = await fs.access(path.join(fixture, 'package.json')).then(
18+
() => true,
19+
() => false,
20+
)
21+
22+
if (!exists) return
23+
24+
console.log(`Installing dependencies for ${fixture}`)
1325

14-
for (let fixture of fixtures) {
15-
if (fs.existsSync(path.join(fixture, 'package.json'))) {
16-
execSync('npm install', { cwd: fixture })
17-
}
18-
}
26+
await execAsync('npm install', { cwd: fixture })
27+
}),
28+
)

scripts/release-channel.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,15 @@
66
// 1.2.3 -> latest (default)
77
// 0.0.0-insiders.ffaa88 -> insiders
88
// 4.1.0-alpha.4 -> alpha
9+
import * as fs from 'node:fs/promises'
10+
import * as path from 'node:path'
11+
import { fileURLToPath } from 'node:url'
912

10-
import * as pkg from '../package.json'
13+
const __dirname = path.dirname(fileURLToPath(import.meta.url))
14+
15+
const pkg = JSON.parse(
16+
await fs.readFile(path.resolve(__dirname, '../package.json'), 'utf8'),
17+
)
1118

1219
let version = process.argv[2] || process.env.npm_package_version || pkg.version
1320

scripts/release-notes.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
// Given a version, figure out what the release notes are so that we can use this to pre-fill the
22
// relase notes on a GitHub release for the current version.
33

4-
import * as fs from 'node:fs'
4+
import * as fs from 'node:fs/promises'
55
import * as path from 'node:path'
6-
import * as pkg from '../package.json'
6+
import { fileURLToPath } from 'node:url'
7+
8+
const __dirname = path.dirname(fileURLToPath(import.meta.url))
9+
10+
const pkg = JSON.parse(
11+
await fs.readFile(path.resolve(__dirname, '../package.json'), 'utf8'),
12+
)
713

814
let version = process.argv[2] || process.env.npm_package_version || pkg.version
915

10-
let changelog = fs.readFileSync(
16+
let changelog = await fs.readFile(
1117
path.resolve(__dirname, '..', 'CHANGELOG.md'),
1218
'utf8',
1319
)

0 commit comments

Comments
 (0)