Skip to content

Commit ca9a38e

Browse files
chore: publish package.json imports.
1 parent 9c1cb85 commit ca9a38e

4 files changed

Lines changed: 81 additions & 4 deletions

File tree

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@knighted/module",
3-
"version": "1.0.0-rc.1",
3+
"version": "1.0.0-rc.2",
44
"description": "Transforms differences between ES modules and CommonJS.",
55
"type": "module",
66
"main": "dist/module.js",
@@ -40,7 +40,8 @@
4040
"build:types": "tsc --emitDeclarationOnly",
4141
"build:dual": "babel-dual-package src --extensions .ts",
4242
"build": "npm run build:types && npm run build:dual",
43-
"prepack": "npm run build"
43+
"prepack": "npm run build && node scripts/setImportsToDist.js",
44+
"postpack": "node scripts/restoreImportsToSrc.js"
4445
},
4546
"keywords": [
4647
"transform",

scripts/restoreImportsToSrc.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { readFile, writeFile } from 'node:fs/promises'
2+
import { resolve } from 'node:path'
3+
4+
const pkgPath = resolve('package.json')
5+
const srcImports = {
6+
'#parse': './src/parse.js',
7+
'#format': './src/format.js',
8+
'#utils/*.js': './src/utils/*.js',
9+
'#walk': './src/walk.js',
10+
'#helpers/*.js': './src/helpers/*.js',
11+
'#formatters/*.js': './src/formatters/*.js',
12+
}
13+
14+
const main = async () => {
15+
try {
16+
const raw = await readFile(pkgPath, 'utf8')
17+
const pkg = JSON.parse(raw)
18+
pkg.imports ||= {}
19+
20+
let changed = false
21+
for (const [key, value] of Object.entries(srcImports)) {
22+
if (pkg.imports[key] !== value) {
23+
pkg.imports[key] = value
24+
changed = true
25+
}
26+
}
27+
28+
if (changed) {
29+
await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`)
30+
process.stdout.write('Restored package.json imports to src after pack.\n')
31+
}
32+
} catch (error) {
33+
process.stderr.write(`Failed to restore imports to src: ${error}\n`)
34+
process.exitCode = 1
35+
}
36+
}
37+
38+
main()

scripts/setImportsToDist.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { readFile, writeFile } from 'node:fs/promises'
2+
import { resolve } from 'node:path'
3+
4+
const pkgPath = resolve('package.json')
5+
const distImports = {
6+
'#parse': './dist/parse.js',
7+
'#format': './dist/format.js',
8+
'#utils/*.js': './dist/utils/*.js',
9+
'#walk': './dist/walk.js',
10+
'#helpers/*.js': './dist/helpers/*.js',
11+
'#formatters/*.js': './dist/formatters/*.js',
12+
}
13+
14+
const main = async () => {
15+
try {
16+
const raw = await readFile(pkgPath, 'utf8')
17+
const pkg = JSON.parse(raw)
18+
pkg.imports ||= {}
19+
20+
let changed = false
21+
for (const [key, value] of Object.entries(distImports)) {
22+
if (pkg.imports[key] !== value) {
23+
pkg.imports[key] = value
24+
changed = true
25+
}
26+
}
27+
28+
if (changed) {
29+
await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`)
30+
process.stdout.write('Updated package.json imports to dist for publish.\n')
31+
}
32+
} catch (error) {
33+
process.stderr.write(`Failed to set imports to dist: ${error}\n`)
34+
process.exitCode = 1
35+
}
36+
}
37+
38+
main()

0 commit comments

Comments
 (0)