Summary: Implemented json schema for flipper plugin package.json and used it for validation in "flipper-pkg lint" command. Nice thing about json schema is that it not only allows to validate json, but also can be referenced using "$schema" property in json so IDEs like VSCode can find it and use for code completion, validation and to show properties documentation. I'm going to deploy the schema as a part of documentation website so it can be referenced as https://fbflipper.com/schemas/plugin-package/v2.json. Also the "$schema" field can be used instead of "specVersion" to determine the specification according to which the plugin is defined. E.g., if specification version 3 would be created, it will be described in schema https://fbflipper.com/schemas/plugin-package/v3.json, etc. Reviewed By: passy Differential Revision: D21228294 fbshipit-source-id: f21351e584ef936a7d6b314436448489691f83a6
flipper-pkg
flipper-pkg is a work-in-progress 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.39.0 darwin-x64 node-v12.15.0
$ flipper-pkg --help [COMMAND]
USAGE
$ flipper-pkg COMMAND
...
Commands
flipper-pkg bundle [DIRECTORY]flipper-pkg help [COMMAND]flipper-pkg lint [DIRECTORY]flipper-pkg pack [DIRECTORY]
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.
EXAMPLE
$ flipper-pkg bundle path/to/plugin
See code: src/commands/bundle.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 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 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.
EXAMPLE
$ flipper-pkg pack path/to/plugin
See code: src/commands/pack.ts