https://github.com/continuous-foundation/fair-principles
A small utility to show FAIR Principles in your node or javascript application.
https://github.com/continuous-foundation/fair-principles
Last synced: 5 months ago
JSON representation
A small utility to show FAIR Principles in your node or javascript application.
- Host: GitHub
- URL: https://github.com/continuous-foundation/fair-principles
- Owner: continuous-foundation
- License: mit
- Created: 2022-11-28T22:39:17.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-29T22:39:35.000Z (over 1 year ago)
- Last Synced: 2025-09-30T00:13:26.283Z (9 months ago)
- Language: TypeScript
- Size: 748 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fair-principles
[](https://www.npmjs.com/package/fair-principles)
[](https://github.com/continuous-foundation/fair-principles/blob/main/LICENSE)

A tiny utility to show [FAIR Principles](https://www.go-fair.org/fair-principles/) in your application. Used under the CC-BY License from [GO FAIR](https://www.go-fair.org/fair-principles/).
```shell
npm install fair-principles
```
The library has **no dependencies**, however it works well with `chalk`!
```typescript
import chalk from 'chalk';
import { formatPrinciples } from 'fair-principles';
console.log(formatPrinciples('*', { chalk }));
```

## formatPrinciples
Formats the list of FAIR principles with a title.
- `formatPrinciples()` - format all principles
- `formatPrinciples('*', { chalk, showTitle: false })` - format all principles with a chalk logger and without the title
- `formatPrinciples('A*')` - format all "Accessible" principles
- `formatPrinciples(['A*', 'F'])` - formats the "Findable" principle (no children) and then all "Accessible" principles
```typescript
import chalk from 'chalk';
import { formatPrinciples } from 'fair-principles';
console.log(formatPrinciples('A*', { chalk }));
```
## formatPrinciple
Formats a single FAIR principle, possibly with a header.
- `formatPrinciple('R')` - format the "Reusable" principle, including the header
- `formatPrinciple('R', { showHeader: false })` - format the "Reusable" principle, without the header
- `formatPrinciple('R1_1')` - Show the the "Reusable" sub-principle.
```typescript
import chalk from 'chalk';
import { formatPrinciples } from 'fair-principles';
console.log(formatPrinciples('A*', { chalk }));
```
## highlightFAIR
Highlights the word FAIR with a specific color, for example, with an underline or in red (the default).
```typescript
import chalk from 'chalk';
import { highlightFAIR } from 'fair-principles';
highlightFAIR('A', { color: chalk.underline });
```
## Format Options
All format calls can take `chalk` as an argument, this will apply defaults. You can also specify:
- `indent`: (`boolean`): Indent sub-principles (for example `A1_1`), default is `true`
- `showTitle`: (`boolean`): Shows the title "FAIR Principles"
- `showHeader`: (`boolean`): Show a header like "Accessible" before the "A" principle
- `title`: (`Formatter`): A color formatter for the title
- `header`: (`Formatter`): A color formatter for the header
- `enumerator`: (`Formatter`): A color formatter for the enumerator (e.g. `A1`)
---
As of v2.0.0 this package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
---
Made with love by
Continuous Science Foundation