Socket
Book a DemoInstallSign in
Socket

electron-apis

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

electron-apis

A JSON object describing Electron's APIs

latest
Source
npmnpm
Version
2.0.2
Version published
Maintainers
1
Created
Source

electron-apis Build Status

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) {
  // `apis` is an array of API objects. To find one:
  const win = apis.find(api => api.name === 'BrowserWindow')

  win.events.length
  // => 25

  win.events[0]
  // {
  //   "name": "page-title-updated",
  //   "description": "Emitted when the document...",
  //   "returns": [
  //     {
  //       "name": "event",
  //       "type": "Event"
  //     }
  //   ]
  // }

  win.instanceMethods[20]
  // {
  //   name: 'setSize',
  //   signature: '(width, height[, animate])'
  // }
})

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

License

MIT

Keywords

api

FAQs

Package last updated on 30 Jun 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts