Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nodecg/json-schema-defaults

A library and CLI tool for generating a default value from a JSON schema
https://github.com/nodecg/json-schema-defaults

Last synced: about 14 hours ago
JSON representation

A library and CLI tool for generating a default value from a JSON schema

Awesome Lists containing this project

README

        

# JSON Schema Defaults

> A library and CLI tool for generating a default value from a JSON schema

## Installation

```sh
npm install @nodecg/json-schema-defaults
```

## Usage

- Node (TypeScript/ESM)

```js
import defaults from 'json-schema-defaults';
defaults({ ... });
```

- CLI

If installed globally:

```sh
json-schema-defaults schema.json
```

If locally:

```sh
./node_modules/.bin/json-schema-defaults schema.json
```

Custom indentation (defaults to 2):

```sh
json-schema-defaults --indent 4 schema.json
```

Write into a file:

```sh
json-schema-defaults schema.json > defaults.json
```

## Documentation

Call `defaults` with JSON Schema. The default values will be extracted as a JSON.

```ts
const json = defaults({
"title": "Album Options",
"type": "object",
"properties": {
"sort": {
"type": "string",
"default": "id"
},
"per_page": {
"default": 30,
"type": "integer"
}
}
});

// would return
{
sort: 'id',
per_page: 30
}
```

For more examples, see the tests.

## Development

Run tests

```sh
npm test
```

## Contributors

- Eugene Tsypkin @jhony-chikens (original author of [`json-schema-defaults`](https://www.npmjs.com/package/json-schema-defaults) on npm)
- Alex Van Camp @alvancamp

## License

(c) 2023 The NodeCG Project. Released under the terms of the MIT License.