bowser-js / bowser

a browser detector
Other
5.52k stars 487 forks source link

Typescript file should have union of string literal types, not just generic `string` types #551

Open neaumusic opened 5 months ago

neaumusic commented 5 months ago

The types via node_modules/bowser/index.d.ts aren't extremely useful

Most variables are just string rather than explaining what the actual values could be (eg 'MacOS' | 'Windows' or 'macos' | 'windows')

I believe the source code probably has explicit values for these, and that the types could be defined better:

  const BROWSER_MAP: Record<string, string>;
  const ENGINE_MAP: Record<string, string>;
  const OS_MAP: Record<string, string>;
  const PLATFORMS_MAP: Record<string, string>;
lancedikson commented 4 months ago

Hi @neaumusic! Thanks for the feedback! I have an idea to refactor it on Typescript to provide a better and native way to support types.