Summary: Restyle of page, including changes to spelling, grammar, links, and structure (where relevant). Reviewed By: mweststrate Differential Revision: D36596005 fbshipit-source-id: 9ae71f426fad792af6e13f949581e26f8366baa4
18 lines
1.0 KiB
Plaintext
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.
|