Releases: bluwy/publint
v0.2.2
Features
- Lint
"typings"
field file existence (#60) - Check packed files when globbing exports locally (#61)
- Improve
"browser"
field suggestion for using"imports"
and"exports"
fields instead (#59)
Bug fixes
- Lower deprecated trailing slash glob syntax as
suggestion
instead of awarning
when it's used for backwards compatibility only (#62) - Suppress invalid globbed file format if has correct adjacent file
- Fix extension replacement in messages
- Improve invalid types format message and docs
Site
- Fix invalid package name not found message
- Highlight code blocks in rules page
New Contributors
Full Changelog: v0.2.1...v0.2.2
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