electron-apis 
A JSON object describing Electron's APIs.
See apis.json or explore the object in the node repl:
npm i -g trymodule && trymodule electron-apis
Installation
The module exports a function that parses markdown docs in a given directory,
then returns a JSON representation of the docs.
npm install electron-apis --save
Usage
const lint = require('electron-apis')
const docPath = './vendor/electron/docs/api'
lint(docPath).then(function (apis) {
const win = apis.find(api => api.name === 'BrowserWindow')
win.events.length
win.events[0]
win.instanceMethods[20]
})
How It Works
The linter starts with a list of all the API names
as well as booleans indicating if they're available on the
Main Process
or the
Renderer Process
(or both).
Each API's structure is inferred by parsing its raw markdown documentation from
the electron repo.
The electron-docs module abstracts away
the challenges of fetching file contents in bulk.
Electron's API documentation adheres to
Electron Coding Style
and the
Electron Styleguide,
so its content can be programmatically parsed. To make the content easy to parse,
the raw markdown is converted to HTML using
marky-markdown-lite,
which returns a cheerio DOM object that can be queried
and traversed using familiar CSS selectors.
The result is an array of APIs. The following
metadata is included for each API, where appropriate:
- name
- description
- type (Class or Object)
- process (main, renderer, or both)
- methods
- instance methods
- events
- website URL
- GitHub repository URL
Dependencies
None
Dev Dependencies
- chai: BDD/TDD assertion library for node.js and the browser. Test framework agnostic.
- decamelize: Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow
- electron-docs: Fetch Electron documentation as raw markdown strings
- heads: Make parallel HEAD requests for an array of URLs and get back their HTTP status codes.
- lodash.find: The lodash method
_.find exported as a module.
- marky-markdown-lite: A version of marky-markdown that does less
- mocha: simple, flexible, fun test framework
- omit-empty: Recursively omit empty properties from an object. Omits empty objects, arrays, strings or zero.
- standard: JavaScript Standard Style
Related
License
MIT