privatenumber / pkgroll

📦 Zero-config package bundler for Node.js + TypeScript
MIT License
1.01k stars 23 forks source link

Inaccurate type externalization recommendations #49

Open privatenumber opened 6 months ago

privatenumber commented 6 months ago

Problem


Recommendation: "@types/eslint" is externalized because "eslint" is in "peerDependencies". Place "@types/eslint" in "peerDependencies" as well so users don't have missing types.
Recommendation: "@types/eslint__eslintrc" is externalized because "@eslint/eslintrc" is in "dependencies". Place "@types/eslint__eslintrc" in "dependencies" as well so users don't have missing types.
Recommendation: "@types/eslint__js" is externalized because "@eslint/js" is in "dependencies". Place "@types/eslint__js" in "dependencies" as well so users don't have missing types.
Recommendation: "@types/confusing-browser-globals" is externalized because "confusing-browser-globals" is in "dependencies". Place "@types/confusing-browser-globals" in "dependencies" as well so users don't have missing types.

However, my type file only imports from eslint:

import { Linter } from 'eslint';

/**
 * These specific signatures are needed to make sure that the return type is
 * narrowed to the input type.
 */
declare function defineConfig<T extends Linter.FlatConfig>(config: T): T;
declare function defineConfig<T extends Linter.FlatConfig[]>(config: T): T;

type Options = {
    node?: boolean;
};
declare const pvtnbr: (options?: Options) => Linter.FlatConfig[];

export { type Options, defineConfig, pvtnbr };

Expected behavior

To only recommend externalizing types that are imported/bundled

Minimal reproduction URL

N/A

Version

N/A

Node.js version

N/A

Package manager

npm

Operating system

macOS

Contributions