Skip to content

Evaluate popular packages that have exports fields set but may not be Node ESM-ready for TypeScript #47792

Open
@DanielRosenwasser

Description

@DanielRosenwasser

The exports field in package.json - nobody knows how to configure it, which probably means that a negative number of people know how to configure it for TypeScript.

Anyway, a very good way to ensure that 99% of users have no issues with consuming a Node ESM package is to do a sweep of the npm registry to find the most popular packages that have an exports field and a types field set and validate that they have correctly configured their types.

The steps include

  • Generating the list of 150 of the top-depended-on packages that have an rts field and have either a types field set or have a corresponding @types package.
  • Distributing out the list to the team.
  • Having the team manually validate that the packages (or their @types package) are configured correctly.

Last time I tried to do this with all-the-package-names, people told me the list might be too outdated, but the list might serve as a decent guide anyway:

Click here to see the list.

Self-Typed: 18

Package Name Exports Value Assesment
postcss Object ?
babel-jest Object ?
rxjs Object ?
typedoc String ?
ts-node Object ?
projectz Object ?
postcss-custom-properties Object ?
postcss-scss Object ?
uid Object ?
emailjs Object ?
ngrok Object ?
pob-babel Object ?
preact Object ?
assert-helpers Object ?
getmac Object ?
simple-statistics Object ?
discord.js Object ?
editions Object ?

Packages with @types

At-Typed: 121

Package Name Exports Value Assesment
chai Object ?
eslint Object ?
tape Object ?
underscore Object ?
yargs Object ?
socket.io Object ?
js-yaml Object ?
expect Object ?
uuid Object ?
ws Object ?
rollup Object ?
koa Object ?
socket.io-client Object ?
meow String ?
npm Object ?
jest-cli Object ?
highlight.js Object ?
mustache Object ?
dotenv Object ?
d3 Object ?
deep-equal Object ?
jest Object ?
gulp-imagemin String ?
diff Object ?
unique-random-array String ?
globby String ?
ora String ?
acorn Object ?
path-exists String ?
firebase Object ?
vinyl-paths String ?
strip-ansi String ?
strip-json-comments String ?
systemjs Object ?
log-symbols Object ?
escape-string-regexp String ?
get-stdin String ?
stack-trace Object ?
is-promise Object ?
slash String ?
es6-promisify Object ?
imagemin String ?
configstore String ?
figures String ?
strip-bom String ?
mathjs Object ?
baconjs Object ?
engine.io Object ?
is-plain-object Object ?
tempfile String ?
arrify String ?
supports-color Object ?
tildify String ?
is-stream String ?
normalize-url String ?
d3-scale Object ?
temp-write String ?
indent-string String ?
d3-selection Object ?
d3-array Object ?
read-chunk String ?
is-plain-obj String ?
yaml Object ?
engine.io-client Object ?
js-cookie Object ?
ansi-styles String ?
npm-name String ?
pako Object ?
detect-indent String ?
decamelize String ?
stringify-object String ?
ansi-regex String ?
sass Object ?
string-length String ?
get-port String ?
lowdb String ?
js-base64 Object ?
find-up String ?
dargs String ?
array-uniq String ?
humanize-url String ?
repeating String ?
d3-shape Object ?
read-pkg-up String ?
strip-indent String ?
hashids Object ?
junk String ?
istextorbinary Object ?
ansi-escapes String ?
geolib Object ?
yargs-parser Object ?
commonmark Object ?
username String ?
jssha Object ?
latest-version String ?
github-username String ?
string-width String ?
is-root String ?
d3-transition Object ?
trash String ?
js-combinatorics Object ?
socket.io-parser Object ?
d3-dsv Object ?
form-urlencoded Object ?
semver-regex String ?
cli-cursor String ?
internal-ip Object ?
linq String ?
d3-color Object ?
node-hue-api Object ?
d3-interpolate Object ?
elegant-spinner String ?
read-pkg String ?
has-ansi String ?
node-ipc Object ?
leven String ?
d3-axis Object ?
d3-format Object ?
is-obj String ?
boxen String ?
d3-dispatch Object ?

Metadata

Metadata

Assignees

Labels

Community ToolingThis might be better handled by tooling from the community instead of built into TypeScriptDomain: ES ModulesThe issue relates to import/export style module behaviorRescheduledThis issue was previously scheduled to an earlier milestone

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions