Files
flipper/desktop/pkg
Anton Nikolaev 5383017299 Separate interfaces for installed, bundled and downloadable plugins
Summary:
I've re-designed interfaces describing plugins as I found that mental overhead working with them became too expensive because of slightly flawed design. However this cascaded changes in many files so you can see how extensively these interfaces used in our codebase.

Before this change we had one interface PluginDetails which described three different entities: 1) plugins installed on the disk 2) plugins bundled into Flipper 3) plugins available on Marketplace. It's hard to use this "general" PluginDetails interface because of this as you always need to think about all three use cases everywhere.

After this change we have 3 separate interfaces: InstalledPluginDetails, BundledPluginDetails and DownloadablePluginDetails and things became much type-safer now.

Reviewed By: mweststrate

Differential Revision: D25530383

fbshipit-source-id: b93593916a980c04e36dc6ffa168797645a0ff9c
2020-12-15 09:31:57 -08:00
..
2020-06-26 03:25:27 -07:00
2020-06-10 06:40:39 -07:00

flipper-pkg

flipper-pkg is a tool for bundling and publishing Flipper plugins.

Usage

$ npm install -g flipper-pkg
$ flipper-pkg COMMAND
running command...
$ flipper-pkg (-v|--version|version)
flipper-pkg/0.48.0 darwin-x64 node-v12.15.0
$ flipper-pkg --help [COMMAND]
USAGE
  $ flipper-pkg COMMAND
...

Commands

flipper-pkg bundle [DIRECTORY]

transpiles and bundles plugin

USAGE
  $ flipper-pkg bundle [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to plugin package directory for bundling. Defaults to the current working directory.

OPTIONS
  --production  Force env.NODE_ENV=production, enable minification and disable producing source maps.
  --watch       Watch for plugin source code and bundle it after every change.

EXAMPLE
  $ flipper-pkg bundle path/to/plugin

See code: src/commands/bundle.ts

flipper-pkg checksum [DIRECTORY]

computes the total checksum of all the package files

USAGE
  $ flipper-pkg checksum [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to plugin package directory. Defaults to the current working directory.

EXAMPLE
  $ flipper-pkg checksum path/to/plugin

See code: src/commands/checksum.ts

flipper-pkg help [COMMAND]

display help for flipper-pkg

USAGE
  $ flipper-pkg help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

flipper-pkg init [DIRECTORY]

initializes a Flipper desktop plugin template in the provided directory

USAGE
  $ flipper-pkg init [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to the directory where the plugin package template should be initialized. Defaults to the
             current working directory.

EXAMPLE
  $ flipper-pkg init path/to/plugin

See code: src/commands/init.ts

flipper-pkg lint [DIRECTORY]

validates a plugin package directory

USAGE
  $ flipper-pkg lint [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to plugin package directory for linting. Defaults to the current working directory.

EXAMPLE
  $ flipper-pkg lint path/to/plugin

See code: src/commands/lint.ts

flipper-pkg migrate [DIRECTORY]

migrates a Flipper desktop plugin to the latest version of specification

USAGE
  $ flipper-pkg migrate [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to the plugin directory. Defaults to the current working directory.

OPTIONS
  --no-dependencies  Do not add or change package dependencies during migration.
  --no-scripts       Do not add or change package scripts during migration.

EXAMPLE
  $ flipper-pkg migrate path/to/plugin

See code: src/commands/migrate.ts

flipper-pkg pack [DIRECTORY]

packs a plugin folder into a distributable archive

USAGE
  $ flipper-pkg pack [DIRECTORY]

ARGUMENTS
  DIRECTORY  [default: .] Path to plugin package directory to pack. Defaults to the current working directory.

OPTIONS
  -o, --output=output  [default: .] Where to output the package, file or directory. Defaults to the current working
                       directory.

  --production         Force env.NODE_ENV=production, enable minification and disable producing source maps.

EXAMPLE
  $ flipper-pkg pack path/to/plugin

See code: src/commands/pack.ts

License

MIT