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