Files
flipper/docs/extending/node-apis.mdx
Kevin Strider d9524e893c node-apis.mdx (Creating Plugins - Using Node.js APIs)
Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant).

Reviewed By: mweststrate

Differential Revision: D36596005

fbshipit-source-id: 9ae71f426fad792af6e13f949581e26f8366baa4
2022-05-23 09:43:57 -07:00

18 lines
1.0 KiB
Plaintext

---
id: node-apis
title: Using Node.js APIs
---
Flipper plugins should be designed to work inside browsers as Flipper isn't guaranteed to always run on top of Electron.
For that reason, you should avoid using Node.js APIs directly (with, for example, modules like `fs`, `child_process`, `path`), or packages that depend on the plugins.
The most important Node APIs can be found by using `getFlipperLib()` (exposed by the `flipper-plugin` package). Please note that these APIs are all promisified:
* `fs` - use `getFlipperLib().remoteServerContext.fs` instead.
* `child_process` - use `getFlipperLib().remoteServerContext.childProcess.exec`. Note that this API is intended for short lived processes only.
* `path` - use `import {path} from 'flipper-plugin'` instead.
* `os` - use `getFlipperLib().environmentInfo.os` instead.
* For system-specific directories such as 'home' and 'desktop', use `getFlipperLib().paths.homePath` and similar.
In the future, these APIs may be subject to further security / permission restrictions to better sandbox plugins.