https://github.com/flippercloud/expressions
A schema for Flipper Expressions
https://github.com/flippercloud/expressions
Last synced: about 2 months ago
JSON representation
A schema for Flipper Expressions
- Host: GitHub
- URL: https://github.com/flippercloud/expressions
- Owner: flippercloud
- Created: 2023-03-28T17:30:06.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-03T18:30:52.000Z (about 1 year ago)
- Last Synced: 2025-01-14T20:59:39.278Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 254 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flipper Expressions
> A schema for Flipper Expressions
The structure for flipper Expressions is defined in [`schemas/schema.json`](./schemas/schema.json) using [JSON Schema](https://json-schema.org) ([draft-07](https://json-schema.org/specification-links.html#draft-7)).
To learn more about JSON Schema, read [Understanding JSON Schema](https://json-schema.org/understanding-json-schema/) or the [Ajv JSON schema validator docs](https://ajv.js.org/json-schema.html).
## Adding a new expression
1. Describe arguments by creating a new file in [`schemas/`](schemas/) named `NewName.schema.json`. You can copy an existing function that has similar semantics to get started.
2. Add the new function in [`schemas/schema.json`](schemas/schema.json) to `definitions/function`.
3. Create a new file in [`examples/`](./examples) named `NewName.json` with valid and invalid examples for the new function. See other examples for inspiration.
4. Run `yarn test` and ensure tests pass.Implement the expression in [@flippercloud/flipper](https://github.com/flippercloud/flipper):
1. Add `lib/flipper/expressions/new_name.rb` to [@flippercloud/flipper](https://github.com/flippercloud/flipper/tree/main/lib/flipper/expressions).
2. Run `rspec` to ensure tests pass.See [this commit that adds Min/Max functions](https://github.com/jnunemaker/flipper/commit/ee46fab0cda21a32c3a921a8ed1fb94b0842b6b4) for a concrete example.