63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
# deprecated-obj
|
|
|
|
Simple utility to help making the transition from deprecated configuration objects to compliant ones.
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const Deprecation = require('deprecation');
|
|
|
|
const myConfig = {
|
|
fine: true,
|
|
old: {
|
|
deprecated: true
|
|
},
|
|
'remove.me': 1
|
|
};
|
|
|
|
const deprecations = {
|
|
old: {
|
|
deprecated: 'new.shiny'
|
|
},
|
|
'remove.me': null
|
|
};
|
|
|
|
// Or flat:
|
|
const deprecations = { 'old.deprecated': 'new.shiny', 'remove.me': null };
|
|
|
|
const deprecation = new Deprecation(deprecations, myConfig);
|
|
```
|
|
|
|
## API
|
|
|
|
### `Deprecation::getCompliant()`
|
|
|
|
```js
|
|
const myCompliant = deprecation.getCompliant();
|
|
→ { fine: true, new: { shiny: true } }
|
|
```
|
|
|
|
Returns a new, compliant object. The `null` values in `deprecations` are excluded.
|
|
|
|
### `Deprecation::getViolations()`
|
|
|
|
```js
|
|
const violations = deprecation.getViolations();
|
|
→ { 'old.deprecated': 'new.shiny', 'remove.me': null }
|
|
```
|
|
|
|
The violations can be used to inform the user about the deprecations, for example:
|
|
|
|
```js
|
|
if (Object.keys(violations).length > 0) {
|
|
console.warn(`Deprecated configuration options found. Please migrate before the next major release.`);
|
|
}
|
|
for (let deprecated in violations) {
|
|
console.warn(`The "${deprecated}" option is deprecated. Please use "${violations[deprecated]}" instead.`);
|
|
}
|
|
```
|
|
|
|
## Example
|
|
|
|
See [github.com/release-it/.../deprecated.js](https://github.com/webpro/release-it/blob/master/lib/deprecated.js) for a real-world example.
|