supermemory/packages/memory-graph/scripts/swap-exports.ts
vorflux[bot] 851b8cfe86
Rewrite @supermemory/memory-graph with perf optimizations + consolidate consumers (#809)
Co-authored-by: Vorflux AI <noreply@vorflux.com>
2026-03-28 19:06:27 -07:00

50 lines
1.5 KiB
TypeScript

/**
* Swaps package.json exports between source (for workspace/monorepo use)
* and dist (for npm publishing).
*
* Usage:
* bun run scripts/swap-exports.ts pack # switch to dist exports
* bun run scripts/swap-exports.ts unpack # switch back to source exports
*/
import { readFileSync, writeFileSync } from "node:fs"
import { join } from "node:path"
const pkgPath = join(import.meta.dirname, "..", "package.json")
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"))
const mode = process.argv[2]
if (mode === "pack") {
// Switch to dist exports for npm publishing
pkg.main = "./dist/memory-graph.cjs"
pkg.module = "./dist/memory-graph.js"
pkg.types = "./dist/index.d.ts"
pkg.exports = {
".": {
types: "./dist/index.d.ts",
import: "./dist/memory-graph.js",
require: "./dist/memory-graph.cjs",
},
"./mock-data": {
types: "./dist/mock-data.d.ts",
import: "./dist/mock-data.js",
},
"./package.json": "./package.json",
}
} else if (mode === "unpack") {
// Switch back to source exports for workspace use
pkg.main = "./src/index.tsx"
pkg.module = "./src/index.tsx"
pkg.types = "./src/index.tsx"
pkg.exports = {
".": "./src/index.tsx",
"./mock-data": "./src/mock-data.ts",
"./package.json": "./package.json",
}
} else {
console.error("Usage: bun run scripts/swap-exports.ts [pack|unpack]")
process.exit(1)
}
writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`)
console.log(`Exports swapped to ${mode === "pack" ? "dist" : "source"} mode`)