Skip to content

Commit

Permalink
Use package.json#exports (#1185)
Browse files Browse the repository at this point in the history
* Use `package.json#exports`

* actually add exports, lol

* update Preconstruct again
  • Loading branch information
Andarist committed Jul 5, 2023
1 parent 90a870a commit a971652
Show file tree
Hide file tree
Showing 29 changed files with 467 additions and 209 deletions.
24 changes: 24 additions & 0 deletions .changeset/healthy-cobras-worry.md
@@ -0,0 +1,24 @@
---
"@changesets/get-version-range-type": minor
"@changesets/assemble-release-plan": minor
"@changesets/get-dependents-graph": minor
"@changesets/apply-release-plan": minor
"@changesets/changelog-github": minor
"@changesets/get-release-plan": minor
"@changesets/get-github-info": minor
"@changesets/changelog-git": minor
"@changesets/release-utils": minor
"@changesets/test-utils": minor
"@changesets/config": minor
"@changesets/errors": minor
"@changesets/logger": minor
"@changesets/parse": minor
"@changesets/types": minor
"@changesets/write": minor
"@changesets/read": minor
"@changesets/cli": minor
"@changesets/git": minor
"@changesets/pre": minor
---

`package.json#exports` have been added to limit what (and how) code might be imported from the package.
12 changes: 9 additions & 3 deletions package.json
Expand Up @@ -40,7 +40,7 @@
"@babel/preset-typescript": "^7.18.6",
"@babel/runtime": "^7.20.1",
"@manypkg/cli": "^0.19.1",
"@preconstruct/cli": "^1.1.26",
"@preconstruct/cli": "^2.8.1",
"@types/fs-extra": "^5.1.0",
"@types/jest": "^24.0.12",
"@types/jest-in-case": "^1.0.6",
Expand All @@ -65,13 +65,19 @@
"jest-junit": "^15.0.0",
"jest-watch-typeahead": "^2.2.1",
"prettier": "^2.7.1",
"typescript": "^4.8.4"
"typescript": "^5.1.6"
},
"preconstruct": {
"packages": [
"packages/*",
"scripts/*"
]
],
"exports": {
"importConditionDefaultExport": "default"
},
"___experimentalFlags_WILL_CHANGE_IN_PATCH": {
"importsConditions": true
}
},
"prettier": {}
}
16 changes: 14 additions & 2 deletions packages/apply-release-plan/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/apply-release-plan",
"version": "6.1.4",
"description": "Takes a release plan and applies it to packages",
"main": "dist/apply-release-plan.cjs.js",
"module": "dist/apply-release-plan.esm.js",
"main": "dist/changesets-apply-release-plan.cjs.js",
"module": "dist/changesets-apply-release-plan.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-apply-release-plan.cjs.mjs",
"default": "./dist/changesets-apply-release-plan.cjs.js"
},
"module": "./dist/changesets-apply-release-plan.esm.js",
"import": "./dist/changesets-apply-release-plan.cjs.mjs",
"default": "./dist/changesets-apply-release-plan.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/apply-release-plan",
"dependencies": {
Expand Down
@@ -1,12 +1,4 @@
/*
BAD CODE ALERT!
You should never reach out of one package and into another in a multi-package repository.
(doing so is a leading cause of 'works on my machine' but then failure when the packages are published)
We are doing it here to avoide adding a circular dependency and as this is only used in testing.
This is wicked, and please don't copy us.
*/

export { default } from "../../../cli/changelog";
// We are doing it here to avoide adding a circular dependency and as this is only used in testing.
// This is wicked, and please don't copy us.
// eslint-disable-next-line import/no-extraneous-dependencies
export { default } from "@changesets/cli/changelog";
@@ -1,12 +1,4 @@
/*
BAD CODE ALERT!
You should never reach out of one package and into another in a multi-package repository.
(doing so is a leading cause of 'works on my machine' but then failure when the packages are published)
We are doing it here to avoide adding a circular dependency and as this is only used in testing.
This is wicked, and please don't copy us.
*/

export { default } from "../../../cli/commit";
// We are doing it here to avoide adding a circular dependency and as this is only used in testing.
// This is wicked, and please don't copy us.
// eslint-disable-next-line import/no-extraneous-dependencies
export { default } from "@changesets/cli/commit";
16 changes: 14 additions & 2 deletions packages/assemble-release-plan/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/assemble-release-plan",
"version": "5.2.4",
"description": "Reads changesets and adds information on dependents that need bumping",
"main": "dist/assemble-release-plan.cjs.js",
"module": "dist/assemble-release-plan.esm.js",
"main": "dist/changesets-assemble-release-plan.cjs.js",
"module": "dist/changesets-assemble-release-plan.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-assemble-release-plan.cjs.mjs",
"default": "./dist/changesets-assemble-release-plan.cjs.js"
},
"module": "./dist/changesets-assemble-release-plan.esm.js",
"import": "./dist/changesets-assemble-release-plan.cjs.mjs",
"default": "./dist/changesets-assemble-release-plan.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/assemble-release-plan",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/changelog-git/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/changelog-git",
"version": "0.1.14",
"description": "A changelog entry generator for git that writes hashes",
"main": "dist/changelog-git.cjs.js",
"module": "dist/changelog-git.esm.js",
"main": "dist/changesets-changelog-git.cjs.js",
"module": "dist/changesets-changelog-git.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-changelog-git.cjs.mjs",
"default": "./dist/changesets-changelog-git.cjs.js"
},
"module": "./dist/changesets-changelog-git.esm.js",
"import": "./dist/changesets-changelog-git.cjs.mjs",
"default": "./dist/changesets-changelog-git.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/changelog-git",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/changelog-github/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/changelog-github",
"version": "0.4.8",
"description": "A changelog entry generator for GitHub that links to commits, PRs and users",
"main": "dist/changelog-github.cjs.js",
"module": "dist/changelog-github.esm.js",
"main": "dist/changesets-changelog-github.cjs.js",
"module": "dist/changesets-changelog-github.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-changelog-github.cjs.mjs",
"default": "./dist/changesets-changelog-github.cjs.js"
},
"module": "./dist/changesets-changelog-github.esm.js",
"import": "./dist/changesets-changelog-github.cjs.mjs",
"default": "./dist/changesets-changelog-github.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/changelog-github",
"dependencies": {
Expand Down
7 changes: 2 additions & 5 deletions packages/cli/changelog/package.json
@@ -1,7 +1,4 @@
{
"main": "dist/cli.cjs.js",
"module": "dist/cli.esm.js",
"preconstruct": {
"source": "../src/changelog"
}
"main": "dist/changesets-cli-changelog.cjs.js",
"module": "dist/changesets-cli-changelog.esm.js"
}
7 changes: 2 additions & 5 deletions packages/cli/commit/package.json
@@ -1,7 +1,4 @@
{
"main": "dist/cli.cjs.js",
"module": "dist/cli.esm.js",
"preconstruct": {
"source": "../src/commit"
}
"main": "dist/changesets-cli-commit.cjs.js",
"module": "dist/changesets-cli-commit.esm.js"
}
40 changes: 35 additions & 5 deletions packages/cli/package.json
Expand Up @@ -13,8 +13,38 @@
"changelog",
"commit"
],
"main": "dist/cli.cjs.js",
"module": "dist/cli.esm.js",
"main": "dist/changesets-cli.cjs.js",
"module": "dist/changesets-cli.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-cli.cjs.mjs",
"default": "./dist/changesets-cli.cjs.js"
},
"module": "./dist/changesets-cli.esm.js",
"import": "./dist/changesets-cli.cjs.mjs",
"default": "./dist/changesets-cli.cjs.js"
},
"./changelog": {
"types": {
"import": "./changelog/dist/changesets-cli-changelog.cjs.mjs",
"default": "./changelog/dist/changesets-cli-changelog.cjs.js"
},
"module": "./changelog/dist/changesets-cli-changelog.esm.js",
"import": "./changelog/dist/changesets-cli-changelog.cjs.mjs",
"default": "./changelog/dist/changesets-cli-changelog.cjs.js"
},
"./commit": {
"types": {
"import": "./commit/dist/changesets-cli-commit.cjs.mjs",
"default": "./commit/dist/changesets-cli-commit.cjs.js"
},
"module": "./commit/dist/changesets-cli-commit.esm.js",
"import": "./commit/dist/changesets-cli-commit.cjs.mjs",
"default": "./commit/dist/changesets-cli-commit.cjs.js"
},
"./package.json": "./package.json"
},
"author": "Changesets Contributors",
"contributors": [
"Ben Conolly",
Expand All @@ -23,9 +53,9 @@
],
"preconstruct": {
"entrypoints": [
".",
"changelog",
"commit"
"./index.ts",
"./changelog.ts",
"./commit/index.ts"
]
},
"license": "MIT",
Expand Down
16 changes: 14 additions & 2 deletions packages/config/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/config",
"version": "2.3.1",
"description": "Utilities for reading and parsing Changeset's config",
"main": "dist/config.cjs.js",
"module": "dist/config.esm.js",
"main": "dist/changesets-config.cjs.js",
"module": "dist/changesets-config.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-config.cjs.mjs",
"default": "./dist/changesets-config.cjs.js"
},
"module": "./dist/changesets-config.esm.js",
"import": "./dist/changesets-config.cjs.mjs",
"default": "./dist/changesets-config.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/config",
"files": [
Expand Down
16 changes: 14 additions & 2 deletions packages/errors/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/errors",
"version": "0.1.4",
"description": "Error classes for @changesets",
"main": "dist/errors.cjs.js",
"module": "dist/errors.esm.js",
"main": "dist/changesets-errors.cjs.js",
"module": "dist/changesets-errors.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-errors.cjs.mjs",
"default": "./dist/changesets-errors.cjs.js"
},
"module": "./dist/changesets-errors.esm.js",
"import": "./dist/changesets-errors.cjs.mjs",
"default": "./dist/changesets-errors.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/errors",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/get-dependents-graph/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/get-dependents-graph",
"version": "1.3.6",
"description": "Get the graph of dependents in a monorepo",
"main": "dist/get-dependents-graph.cjs.js",
"module": "dist/get-dependents-graph.esm.js",
"main": "dist/changesets-get-dependents-graph.cjs.js",
"module": "dist/changesets-get-dependents-graph.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-get-dependents-graph.cjs.mjs",
"default": "./dist/changesets-get-dependents-graph.cjs.js"
},
"module": "./dist/changesets-get-dependents-graph.esm.js",
"import": "./dist/changesets-get-dependents-graph.cjs.mjs",
"default": "./dist/changesets-get-dependents-graph.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/get-dependents-graph",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/get-github-info/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/get-github-info",
"version": "0.5.2",
"description": "Get the GitHub username and PR number from a commit. Intended for use with changesets.",
"main": "dist/get-github-info.cjs.js",
"module": "dist/get-github-info.esm.js",
"main": "dist/changesets-get-github-info.cjs.js",
"module": "dist/changesets-get-github-info.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-get-github-info.cjs.mjs",
"default": "./dist/changesets-get-github-info.cjs.js"
},
"module": "./dist/changesets-get-github-info.esm.js",
"import": "./dist/changesets-get-github-info.cjs.mjs",
"default": "./dist/changesets-get-github-info.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/get-github-info",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/get-release-plan/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/get-release-plan",
"version": "3.0.17",
"description": "Reads changesets and adds information on dependents that need bumping",
"main": "dist/get-release-plan.cjs.js",
"module": "dist/get-release-plan.esm.js",
"main": "dist/changesets-get-release-plan.cjs.js",
"module": "dist/changesets-get-release-plan.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-get-release-plan.cjs.mjs",
"default": "./dist/changesets-get-release-plan.cjs.js"
},
"module": "./dist/changesets-get-release-plan.esm.js",
"import": "./dist/changesets-get-release-plan.cjs.mjs",
"default": "./dist/changesets-get-release-plan.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/get-release-plan",
"dependencies": {
Expand Down
16 changes: 14 additions & 2 deletions packages/get-version-range-type/package.json
Expand Up @@ -2,8 +2,20 @@
"name": "@changesets/get-version-range-type",
"version": "0.3.2",
"description": "Common get-version-range-type shared between changeset packages",
"main": "dist/get-version-range-type.cjs.js",
"module": "dist/get-version-range-type.esm.js",
"main": "dist/changesets-get-version-range-type.cjs.js",
"module": "dist/changesets-get-version-range-type.esm.js",
"exports": {
".": {
"types": {
"import": "./dist/changesets-get-version-range-type.cjs.mjs",
"default": "./dist/changesets-get-version-range-type.cjs.js"
},
"module": "./dist/changesets-get-version-range-type.esm.js",
"import": "./dist/changesets-get-version-range-type.cjs.mjs",
"default": "./dist/changesets-get-version-range-type.cjs.js"
},
"./package.json": "./package.json"
},
"license": "MIT",
"repository": "https://github.com/changesets/changesets/tree/main/packages/get-version-range-type"
}

0 comments on commit a971652

Please sign in to comment.