Releases: bluwy/publint
v0.2.1
Bug fixes
- Fix
"types"
condition check with"exports"
array format - Disable packed files search when a
vfs
is passed - Fix
"browser"
field file existence extensions check - Fix file existence check with trailing slash
Site
- Site-wide design touch-up
- New "Popular packages" section
- New package version select switcher (#56)
- New navigation header design
- Update bottom documentation for clarity
- Improve repo URL parsing
New Contributors
- @lachlancollins made their first contribution in #53
Full Changelog: v0.2.0...v0.2.1
v0.2.0
Breaking changes
Note: If you're using publint
from the CLI, these breaking changes should not affect you.
-
publint()
now returns an object withmessages
instead of themessages
array directly. This makes way for future APIs wherepublint
will return more information than justmessages
.- const messages = await publint() + const { messages } = await publint()
-
Rename
printMessage
API toformatMessage
to better reflect it's intent. (#43)- import { printMessage } from "publint/utils" + import { formatMessage } from "publint/utils" const { messages } = await publint() for (const message of messages) { - console.log(printMessage(message)) + console.log(formatMessage(message)) }
-
Remove
filePath
arg
for theFILE_DOES_NOT_EXIST
message.import type { Message } from "publint" import { getPkgPathValue } from "publint/utils" function messageToString(message: Message, pkg: Record<string, any>) { switch (message.code) { case "FILE_DOES_NOT_EXIST": - return `The file "${message.args.filePath}" does not exist.` + return `The file "${getPkgPathValue(pkg, message.path)}" does not exist.` } }
-
Remove the
import
condition for thepublint
package. This provides a better error message if you callrequire("publint")
.
Features
-
Improve warnings when the exported
"types"
condition has an invalid format in ESM or CJS. This ensures your library's types will work in both environments when dual publishing. (#46)It affects packages commonly packaged like:
{ "exports": { ".": { "types": "./index.d.ts", <-- only works in CJS "import": "./index.mjs", "require": "./index.js", } } }
For more information, visit the rules documentation. This feature is inspired by https://arethetypeswrong.github.io.
Bug fixes
- Suppress warnings when exported JS files using the
"exports"
field have adjacent.d.ts
files and no"types"
condition. This follows TypeScript's resolution algorithm. For more information, visit the rules documentation. (#46)
Full Changelog: v0.1.16...v0.2.0
v0.1.16
v0.1.15
v0.1.14
Features
- Check that the
"module"
condition precedes the"import"
and"require"
in exports conditions (#49)
Bug fixes
- Skip linting flow files
- Improve exports array logging format
Site
- Fix
isPathDir
check
New Contributors
Full Changelog: v0.1.13...v0.1.14
v0.1.13
Bug fixes
- Fix
"types"
condition-is-first check when there's preceding conditions that has it's"types"
condition too. This is common for dual ESM-CJS packages where"types"
are located within"require"
and"import"
conditions. (#47) - Temporarily skip
"types"
condition check when"typesVersions"
key exist. The"typesVersions"
key requires a complex resolution algorithm that is harder to implement, so a quick patch is applied to remove the false errors for now. (#42)
Full Changelog: v0.1.12...v0.1.13
v0.1.12
v0.1.11
Features
- Lint types not exported in
exports
field for"moduleResolution": "bundler"
(#34)
Site
- Add link to Are the types wrong?
Full Changelog: v0.1.10...v0.1.11
v0.1.10
Features
- Relax file format checks by file path names. For example, a file path that contains
browser
,node
,bundler
, etc, likely means they are meant to work in that respective environment only.
Bug fixes
- Support multiple glob star in
exports
value. (#33) - Support
publishConfig
overrides when linting locally. (#28)
Site
- Improve rules documentation
- Improve code readability
New Contributors
Full Changelog: v0.1.9...v0.1.10
v0.1.9
Features
- Add new rule to check if a file is referenced in
package.json
but is not published. (#22) - Export
printMessage
frompublint/utils
to log the default message from thepublint()
results. Works in Node.js only (for now). Convenient when re-implementing the CLI but running it programmatically. (#23)
Bug fixes
- Fix ESM
main
suggestion check. Previously, ifmain
is ESM it will suggest to useexports
instead. While this is good, it's not necessary if the package already has anexports
, asmain
can still be kept for backwards compatibility. Now it will only suggest if there's noexports
since ESM packages should take advantage of the new field whenever possible. - Fix
types
export so autocompletion when importingpublint/utils
works.
Site
- Enable quick linking in rules page
- Refactor to write rules in markdown
Full Changelog: v0.1.8...v0.1.9