ast-metadata-inferer

A collection of metadata about browser API's. This collection is intended for tools that analyze JS. It currently supports 3993 compatibility records.

Usage no npm install needed!

<script type="module">
  import astMetadataInferer from 'https://cdn.skypack.dev/ast-metadata-inferer';
</script>

README

ast-metadata-inferer

Test

A collection of metadata about browser API's. This collection is intended for tools that analyze JS. It currently supports 3993 compatibility records.

For all the API's it supports, it gives the

  • AST node type of the API (MemberExpression, NewExpression, or CallExpression)
  • Determines if an API is statically invoked (ex. document.querySelector())
  • Determines if an API is a CSS or JS API
  • Provides compatibility information from @mdn/browser-compat-data

Usage

import AstMetadata from "ast-metadata-inferer";

const [firstRecord] = AstMetadata;
console.log(firstRecord);
// {
//   "language":"js-api",
//   "protoChain":["document","querySelector"],
//   "protoChainId":"document.querySelector",
//   "astNodeTypes":["MemberExpression"],
//   "isStatic":true,
//   "compat": {
//     support: {
//       chrome: {
//         version_added: "14"
//       },
//       chrome_android: { version_added: "18" },
//       ...
//     }
//   }
// }

Support

If this project is saving you (or your team) time, please consider supporting it on Patreon 👍 thank you!

Related