Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the TypeScript types #86

Closed
6 tasks
sindresorhus opened this issue Sep 9, 2019 · 7 comments · Fixed by #104
Closed
6 tasks

Improve the TypeScript types #86

sindresorhus opened this issue Sep 9, 2019 · 7 comments · Fixed by #104
Labels
enhancement 🎁 Rewarded on Issuehunt This issue has been rewarded on Issuehunt help wanted

Comments

@sindresorhus
Copy link
Owner

sindresorhus commented Sep 9, 2019

Issuehunt badges

I think the types could still be improved.

  • Would be good to use unknown instead of any here:

    conf/index.d.ts

    Line 210 in bb24cfe

    declare class Conf<T = any> implements Iterable<[keyof T, T[keyof T]]> {
    But it causes error on a valid usage:
     index.test-d.ts:123:13
       ✖  123:13  Argument of type "debug phase" is not assignable to parameter of type never.
    
  • You cannot use dot-paths with a typed store: config.set('foo.bar', true);. We need to find a way to support that. Could possibly add support for config.set(['foo', 'bar'], true).
  • Reduce duplication if you use both a typed store and the defaults option. Maybe using the const keyword.
  • Could we make the types even stricter?
  • Expose the type of the schema option, so it's easier to define it as a variable before passing it. Currently, you would have to do const schema = {[Key in keyof TypedStore]: Conf.Schema} = {…};.
    readonly schema?: {[P in keyof T]: Schema};
  • Maybe rename the current Schema type to something clearer like SchemaValue, SchemaOptionValue? Need some naming suggestions.

I'm open to other ideas on how to improve the types.


IssueHunt Summary

superjo149 superjo149 has been rewarded.

Backers (Total: $80.00)

Submitted pull Requests


Tips

@issuehunt-oss
Copy link

issuehunt-oss bot commented Sep 9, 2019

@issuehunt has funded $80.00 to this issue.


@issuehunt-oss issuehunt-oss bot added the 💵 Funded on Issuehunt This issue has been funded on Issuehunt label Sep 9, 2019
@brunolemos
Copy link

I highly recommend moving from index.js to index.ts for automatic type generation.

@sindresorhus
Copy link
Owner Author

@satyarohith
Copy link

I would like to work on this.

@sindresorhus
Copy link
Owner Author

For anyone that wants to work on this, see the initial attempt and feedback in #96. You can start from there.

@sneljo1
Copy link
Contributor

sneljo1 commented Feb 22, 2020

Accidentally ran into this issue yesterday. Might take a crack at it. :)

@issuehunt-oss issuehunt-oss bot removed the 💵 Funded on Issuehunt This issue has been funded on Issuehunt label Jul 3, 2020
@issuehunt-oss
Copy link

issuehunt-oss bot commented Jul 3, 2020

@sindresorhus has rewarded $72.00 to @superjo149. See it on IssueHunt

  • 💰 Total deposit: $80.00
  • 🎉 Repository reward(0%): $0.00
  • 🔧 Service fee(10%): $8.00

@issuehunt-oss issuehunt-oss bot added the 🎁 Rewarded on Issuehunt This issue has been rewarded on Issuehunt label Jul 3, 2020
kodiakhq bot referenced this issue in X-oss-byte/Canary-nextjs Oct 5, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [conf](https://togithub.com/sindresorhus/conf) | [`5.0.0` -> `11.0.2`](https://renovatebot.com/diffs/npm/conf/5.0.0/11.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/conf/5.0.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/conf/5.0.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [conf](https://togithub.com/sindresorhus/conf) | [`10.2.0` -> `11.0.2`](https://renovatebot.com/diffs/npm/conf/10.2.0/11.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/conf/10.2.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/conf/10.2.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>sindresorhus/conf (conf)</summary>

### [`v11.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v11.0.1...v11.0.2)

-   Fix types for `.delete()` to allow access by dot notation ([#&#8203;182](https://togithub.com/sindresorhus/conf/issues/182))  [`5b9a6e3`](https://togithub.com/sindresorhus/conf/commit/5b9a6e3)

### [`v11.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v11.0.0...v11.0.1)

-   Fix paths in `package.json`'s exports ([#&#8203;172](https://togithub.com/sindresorhus/conf/issues/172))  [`99732a0`](https://togithub.com/sindresorhus/conf/commit/99732a0)

### [`v11.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.2.0...v11.0.0)

##### Breaking

-   Require Node.js 14  [`cea3d68`](https://togithub.com/sindresorhus/conf/commit/cea3d68)
-   This package is now pure ESM. **Please [read this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).**
-   The `projectName` option is now required unless you use the `cwd` option.
    -   Previously, the package fetched the package name from the closest package.json, but this is no longer possible with ESM.
    -   If you target Node.js 18 or later, it's quite easy to [read package.json](https://togithub.com/sindresorhus/conf/issues/171).
-   The `projectVersion` option is now required if you use the `migration` option.
-   Remove [encryption migration](https://togithub.com/sindresorhus/conf/releases/tag/v5.0.0)  [`80e1ff0`](https://togithub.com/sindresorhus/conf/commit/80e1ff0)
    -   Make sure to upgrade to v10 first if you upgrade from a version earlier than [v5](https://togithub.com/sindresorhus/conf/releases/tag/v5.0.0).

### [`v10.2.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.2.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.2...v10.2.0)

-   Add [`beforeEachMigration`](https://togithub.com/sindresorhus/conf#beforeeachmigration) option ([#&#8203;167](https://togithub.com/sindresorhus/conf/issues/167))  [`06262ab`](https://togithub.com/sindresorhus/conf/commit/06262ab)

### [`v10.1.2`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.1...v10.1.2)

-   Fix types for the upcoming TS 4.7 ([#&#8203;163](https://togithub.com/sindresorhus/conf/issues/163))  [`eb1da20`](https://togithub.com/sindresorhus/conf/commit/eb1da20)

### [`v10.1.1`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.0...v10.1.1)

-   Fix the `configFileMode` option for TypeScript ([#&#8203;159](https://togithub.com/sindresorhus/conf/issues/159))  [`07d275b`](https://togithub.com/sindresorhus/conf/commit/07d275b)

### [`v10.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.3...v10.1.0)

-   Add [`configFileMode`](https://togithub.com/sindresorhus/conf#configfilemode) option ([#&#8203;158](https://togithub.com/sindresorhus/conf/issues/158))  [`8345d71`](https://togithub.com/sindresorhus/conf/commit/8345d71)

### [`v10.0.3`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.3)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.2...v10.0.3)

-   Upgrade some dependencies  [`f19ee6b`](https://togithub.com/sindresorhus/conf/commit/f19ee6b)

### [`v10.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.1...v10.0.2)

-   Minor performance improvement ([#&#8203;153](https://togithub.com/sindresorhus/conf/issues/153))  [`1ea9b28`](https://togithub.com/sindresorhus/conf/commit/1ea9b28)

### [`v10.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.0...v10.0.1)

-   Fix issue with `onDidChange` not always being called ([#&#8203;143](https://togithub.com/sindresorhus/conf/issues/143))  [`3a53356`](https://togithub.com/sindresorhus/conf/commit/3a53356)

### [`v10.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.2...v10.0.0)

##### Breaking

-   Require Node.js 12  [`4fa57ef`](https://togithub.com/sindresorhus/conf/commit/4fa57ef)
-   Upgrade from Ajv 7 to [Ajv 8](https://togithub.com/ajv-validator/ajv/releases/tag/v8.0.0)

### [`v9.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.1...v9.0.2)

-   Add `ajv-formats` when a schema is used ([#&#8203;144](https://togithub.com/sindresorhus/conf/issues/144))  [`094ac38`](https://togithub.com/sindresorhus/conf/commit/094ac38)

### [`v9.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.0...v9.0.1)

-   Fix `.reset()` to correctly handle falsy default values ([#&#8203;141](https://togithub.com/sindresorhus/conf/issues/141))  [`735225e`](https://togithub.com/sindresorhus/conf/commit/735225e)

### [`v9.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v8.0.0...v9.0.0)

-   Make the `clearInvalidConfig` option `false` by default  [`b291021`](https://togithub.com/sindresorhus/conf/commit/b291021)
    A lot of people found the previous default surprising.

### [`v8.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v8.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.2...v8.0.0)

##### Breaking

-   Fix `.clear()` behavior ([#&#8203;136](https://togithub.com/sindresorhus/conf/issues/136))  [`259ba9b`](https://togithub.com/sindresorhus/conf/commit/259ba9b)
    Previously, it would not reset the values back to the default ones specified in the `defaults` or `schema` option. It correctly does this now.
-   Update `ajv` to [version 7](https://togithub.com/ajv-validator/ajv/releases/tag/v7.0.0). This might affect user using the `schema` option.

### [`v7.1.2`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.1...v7.1.2)

-   Fix the `.get()` TypeScript return type ([#&#8203;117](https://togithub.com/sindresorhus/conf/issues/117))  [`526002e`](https://togithub.com/sindresorhus/conf/commit/526002e)

### [`v7.1.1`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.0...v7.1.1)

-   Export `Options` TypeScript type  [`71477a7`](https://togithub.com/sindresorhus/conf/commit/71477a7)

### [`v7.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.0.1...v7.1.0)

-   Use `atomically` package instead of `write-file-atomic` ([#&#8203;115](https://togithub.com/sindresorhus/conf/issues/115))  [`6c624a0`](https://togithub.com/sindresorhus/conf/commit/6c624a0)

### [`v7.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v7.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.0.0...v7.0.1)

-   Fix the package  [`daa002c`](https://togithub.com/sindresorhus/conf/commit/daa002c)

### [`v7.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v7.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.4...v7.0.0)

##### Breaking

-   Require Node.js 10  [`e28b8d9`](https://togithub.com/sindresorhus/conf/commit/e28b8d9)

##### Improvements

-   Move to TypeScript ([#&#8203;104](https://togithub.com/sindresorhus/conf/issues/104))  [`41b0c10`](https://togithub.com/sindresorhus/conf/commit/41b0c10)
    This hopefully should result in better types.

### [`v6.2.4`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.4)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.3...v6.2.4)

-   Fix issue with package.json inference when using the `cwd` option ([#&#8203;107](https://togithub.com/sindresorhus/conf/issues/107))  [`3ef2da0`](https://togithub.com/sindresorhus/conf/commit/3ef2da0)

### [`v6.2.3`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.3)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/06cf8c827b66ed90b5883b8e7b75eb52ec6814e0...v6.2.3)

-   Work around EXDEV error ([#&#8203;106](https://togithub.com/sindresorhus/conf/issues/106))  [`64b386a`](https://togithub.com/sindresorhus/conf/commit/64b386a)

### [`v6.2.2`](https://togithub.com/sindresorhus/conf/compare/v6.2.1...06cf8c827b66ed90b5883b8e7b75eb52ec6814e0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.1...06cf8c827b66ed90b5883b8e7b75eb52ec6814e0)

### [`v6.2.1`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.0...v6.2.1)

-   Improve docs  [`3ec30d2`](https://togithub.com/sindresorhus/conf/commit/3ec30d2) [`66b1058`](https://togithub.com/sindresorhus/conf/commit/66b1058) [`7e6fcbe`](https://togithub.com/sindresorhus/conf/commit/7e6fcbe)

### [`v6.2.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.1.0...v6.2.0)

-   **Warning:** The `migrations` option is buggy. Don't use it at this time.
-   Add semver range capabilities into migrations ([#&#8203;88](https://togithub.com/sindresorhus/conf/issues/88))  [`df3a256`](https://togithub.com/sindresorhus/conf/commit/df3a256)

### [`v6.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.0.1...v6.1.0)

-   Add [`.reset()`](https://togithub.com/sindresorhus/conf#resetkeys) method ([#&#8203;87](https://togithub.com/sindresorhus/conf/issues/87))  [`52ca0dd`](https://togithub.com/sindresorhus/conf/commit/52ca0dd)
-   Add [`watch`](https://togithub.com/sindresorhus/conf#watch) option ([#&#8203;77](https://togithub.com/sindresorhus/conf/issues/77))  [`8bd3352`](https://togithub.com/sindresorhus/conf/commit/8bd3352)

### [`v6.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v6.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.0.0...v6.0.1)

-   Fix the TypeScript types ([#&#8203;90](https://togithub.com/sindresorhus/conf/issues/90))  [`b5a4676`](https://togithub.com/sindresorhus/conf/commit/b5a4676)
    The types were accidentally looser than intended.

### [`v6.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v5.0.0...v6.0.0)

##### Breaking for TypeScript users

-   Improve TypeScript typings ([#&#8203;73](https://togithub.com/sindresorhus/conf/issues/73))  [`ef63b11`](https://togithub.com/sindresorhus/conf/commit/ef63b11) [`ff54952`](https://togithub.com/sindresorhus/conf/commit/ff54952) [`93ace80`](https://togithub.com/sindresorhus/conf/commit/93ace80)
    The types were made much better, but it will probably break for some users. You can now properly define a strongly-typed store. [Example](https://togithub.com/sindresorhus/conf/blob/bb24cfe32d39617a4b3983a92bd81596bd87c312/index.test-d.ts#L94-L114).
    Note: There's no way to use a dot-path like `config.get('foo.bar')` with a typed store. We're looking into how to support that: [https://github.com/sindresorhus/conf/issues/86](https://togithub.com/sindresorhus/conf/issues/86)

##### Enhancements

-   Add support for migrations ([#&#8203;83](https://togithub.com/sindresorhus/conf/issues/83))  [`931ffce`](https://togithub.com/sindresorhus/conf/commit/931ffce)

##### Fixes

-   Add temporary workaround for Conf being packaged in a Snap app  [`68bbb46`](https://togithub.com/sindresorhus/conf/commit/68bbb46)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Canary-nextjs).
kodiakhq bot referenced this issue in X-oss-byte/Nextjs Oct 9, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [conf](https://togithub.com/sindresorhus/conf) | [`5.0.0` -> `11.0.2`](https://renovatebot.com/diffs/npm/conf/5.0.0/11.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/conf/5.0.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/conf/5.0.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [conf](https://togithub.com/sindresorhus/conf) | [`10.2.0` -> `11.0.2`](https://renovatebot.com/diffs/npm/conf/10.2.0/11.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/conf/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/conf/10.2.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/conf/10.2.0/11.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sindresorhus/conf (conf)</summary>

### [`v11.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v11.0.1...v11.0.2)

-   Fix types for `.delete()` to allow access by dot notation ([#&#8203;182](https://togithub.com/sindresorhus/conf/issues/182))  [`5b9a6e3`](https://togithub.com/sindresorhus/conf/commit/5b9a6e3)

### [`v11.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v11.0.0...v11.0.1)

-   Fix paths in `package.json`'s exports ([#&#8203;172](https://togithub.com/sindresorhus/conf/issues/172))  [`99732a0`](https://togithub.com/sindresorhus/conf/commit/99732a0)

### [`v11.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v11.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.2.0...v11.0.0)

##### Breaking

-   Require Node.js 14  [`cea3d68`](https://togithub.com/sindresorhus/conf/commit/cea3d68)
-   This package is now pure ESM. **Please [read this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).**
-   The `projectName` option is now required unless you use the `cwd` option.
    -   Previously, the package fetched the package name from the closest package.json, but this is no longer possible with ESM.
    -   If you target Node.js 18 or later, it's quite easy to [read package.json](https://togithub.com/sindresorhus/conf/issues/171).
-   The `projectVersion` option is now required if you use the `migration` option.
-   Remove [encryption migration](https://togithub.com/sindresorhus/conf/releases/tag/v5.0.0)  [`80e1ff0`](https://togithub.com/sindresorhus/conf/commit/80e1ff0)
    -   Make sure to upgrade to v10 first if you upgrade from a version earlier than [v5](https://togithub.com/sindresorhus/conf/releases/tag/v5.0.0).

### [`v10.2.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.2.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.2...v10.2.0)

-   Add [`beforeEachMigration`](https://togithub.com/sindresorhus/conf#beforeeachmigration) option ([#&#8203;167](https://togithub.com/sindresorhus/conf/issues/167))  [`06262ab`](https://togithub.com/sindresorhus/conf/commit/06262ab)

### [`v10.1.2`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.1...v10.1.2)

-   Fix types for the upcoming TS 4.7 ([#&#8203;163](https://togithub.com/sindresorhus/conf/issues/163))  [`eb1da20`](https://togithub.com/sindresorhus/conf/commit/eb1da20)

### [`v10.1.1`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.1.0...v10.1.1)

-   Fix the `configFileMode` option for TypeScript ([#&#8203;159](https://togithub.com/sindresorhus/conf/issues/159))  [`07d275b`](https://togithub.com/sindresorhus/conf/commit/07d275b)

### [`v10.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.3...v10.1.0)

-   Add [`configFileMode`](https://togithub.com/sindresorhus/conf#configfilemode) option ([#&#8203;158](https://togithub.com/sindresorhus/conf/issues/158))  [`8345d71`](https://togithub.com/sindresorhus/conf/commit/8345d71)

### [`v10.0.3`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.3)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.2...v10.0.3)

-   Upgrade some dependencies  [`f19ee6b`](https://togithub.com/sindresorhus/conf/commit/f19ee6b)

### [`v10.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.1...v10.0.2)

-   Minor performance improvement ([#&#8203;153](https://togithub.com/sindresorhus/conf/issues/153))  [`1ea9b28`](https://togithub.com/sindresorhus/conf/commit/1ea9b28)

### [`v10.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v10.0.0...v10.0.1)

-   Fix issue with `onDidChange` not always being called ([#&#8203;143](https://togithub.com/sindresorhus/conf/issues/143))  [`3a53356`](https://togithub.com/sindresorhus/conf/commit/3a53356)

### [`v10.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v10.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.2...v10.0.0)

##### Breaking

-   Require Node.js 12  [`4fa57ef`](https://togithub.com/sindresorhus/conf/commit/4fa57ef)
-   Upgrade from Ajv 7 to [Ajv 8](https://togithub.com/ajv-validator/ajv/releases/tag/v8.0.0)

### [`v9.0.2`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.1...v9.0.2)

-   Add `ajv-formats` when a schema is used ([#&#8203;144](https://togithub.com/sindresorhus/conf/issues/144))  [`094ac38`](https://togithub.com/sindresorhus/conf/commit/094ac38)

### [`v9.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v9.0.0...v9.0.1)

-   Fix `.reset()` to correctly handle falsy default values ([#&#8203;141](https://togithub.com/sindresorhus/conf/issues/141))  [`735225e`](https://togithub.com/sindresorhus/conf/commit/735225e)

### [`v9.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v9.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v8.0.0...v9.0.0)

-   Make the `clearInvalidConfig` option `false` by default  [`b291021`](https://togithub.com/sindresorhus/conf/commit/b291021)
    A lot of people found the previous default surprising.

### [`v8.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v8.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.2...v8.0.0)

##### Breaking

-   Fix `.clear()` behavior ([#&#8203;136](https://togithub.com/sindresorhus/conf/issues/136))  [`259ba9b`](https://togithub.com/sindresorhus/conf/commit/259ba9b)
    Previously, it would not reset the values back to the default ones specified in the `defaults` or `schema` option. It correctly does this now.
-   Update `ajv` to [version 7](https://togithub.com/ajv-validator/ajv/releases/tag/v7.0.0). This might affect user using the `schema` option.

### [`v7.1.2`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.2)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.1...v7.1.2)

-   Fix the `.get()` TypeScript return type ([#&#8203;117](https://togithub.com/sindresorhus/conf/issues/117))  [`526002e`](https://togithub.com/sindresorhus/conf/commit/526002e)

### [`v7.1.1`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.1.0...v7.1.1)

-   Export `Options` TypeScript type  [`71477a7`](https://togithub.com/sindresorhus/conf/commit/71477a7)

### [`v7.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v7.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.0.1...v7.1.0)

-   Use `atomically` package instead of `write-file-atomic` ([#&#8203;115](https://togithub.com/sindresorhus/conf/issues/115))  [`6c624a0`](https://togithub.com/sindresorhus/conf/commit/6c624a0)

### [`v7.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v7.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v7.0.0...v7.0.1)

-   Fix the package  [`daa002c`](https://togithub.com/sindresorhus/conf/commit/daa002c)

### [`v7.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v7.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.4...v7.0.0)

##### Breaking

-   Require Node.js 10  [`e28b8d9`](https://togithub.com/sindresorhus/conf/commit/e28b8d9)

##### Improvements

-   Move to TypeScript ([#&#8203;104](https://togithub.com/sindresorhus/conf/issues/104))  [`41b0c10`](https://togithub.com/sindresorhus/conf/commit/41b0c10)
    This hopefully should result in better types.

### [`v6.2.4`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.4)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.3...v6.2.4)

-   Fix issue with package.json inference when using the `cwd` option ([#&#8203;107](https://togithub.com/sindresorhus/conf/issues/107))  [`3ef2da0`](https://togithub.com/sindresorhus/conf/commit/3ef2da0)

### [`v6.2.3`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.3)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/06cf8c827b66ed90b5883b8e7b75eb52ec6814e0...v6.2.3)

-   Work around EXDEV error ([#&#8203;106](https://togithub.com/sindresorhus/conf/issues/106))  [`64b386a`](https://togithub.com/sindresorhus/conf/commit/64b386a)

### [`v6.2.2`](https://togithub.com/sindresorhus/conf/compare/v6.2.1...06cf8c827b66ed90b5883b8e7b75eb52ec6814e0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.1...06cf8c827b66ed90b5883b8e7b75eb52ec6814e0)

### [`v6.2.1`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.2.0...v6.2.1)

-   Improve docs  [`3ec30d2`](https://togithub.com/sindresorhus/conf/commit/3ec30d2) [`66b1058`](https://togithub.com/sindresorhus/conf/commit/66b1058) [`7e6fcbe`](https://togithub.com/sindresorhus/conf/commit/7e6fcbe)

### [`v6.2.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.2.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.1.0...v6.2.0)

-   **Warning:** The `migrations` option is buggy. Don't use it at this time.
-   Add semver range capabilities into migrations ([#&#8203;88](https://togithub.com/sindresorhus/conf/issues/88))  [`df3a256`](https://togithub.com/sindresorhus/conf/commit/df3a256)

### [`v6.1.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.1.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.0.1...v6.1.0)

-   Add [`.reset()`](https://togithub.com/sindresorhus/conf#resetkeys) method ([#&#8203;87](https://togithub.com/sindresorhus/conf/issues/87))  [`52ca0dd`](https://togithub.com/sindresorhus/conf/commit/52ca0dd)
-   Add [`watch`](https://togithub.com/sindresorhus/conf#watch) option ([#&#8203;77](https://togithub.com/sindresorhus/conf/issues/77))  [`8bd3352`](https://togithub.com/sindresorhus/conf/commit/8bd3352)

### [`v6.0.1`](https://togithub.com/sindresorhus/conf/releases/tag/v6.0.1)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v6.0.0...v6.0.1)

-   Fix the TypeScript types ([#&#8203;90](https://togithub.com/sindresorhus/conf/issues/90))  [`b5a4676`](https://togithub.com/sindresorhus/conf/commit/b5a4676)
    The types were accidentally looser than intended.

### [`v6.0.0`](https://togithub.com/sindresorhus/conf/releases/tag/v6.0.0)

[Compare Source](https://togithub.com/sindresorhus/conf/compare/v5.0.0...v6.0.0)

##### Breaking for TypeScript users

-   Improve TypeScript typings ([#&#8203;73](https://togithub.com/sindresorhus/conf/issues/73))  [`ef63b11`](https://togithub.com/sindresorhus/conf/commit/ef63b11) [`ff54952`](https://togithub.com/sindresorhus/conf/commit/ff54952) [`93ace80`](https://togithub.com/sindresorhus/conf/commit/93ace80)
    The types were made much better, but it will probably break for some users. You can now properly define a strongly-typed store. [Example](https://togithub.com/sindresorhus/conf/blob/bb24cfe32d39617a4b3983a92bd81596bd87c312/index.test-d.ts#L94-L114).
    Note: There's no way to use a dot-path like `config.get('foo.bar')` with a typed store. We're looking into how to support that: [https://github.com/sindresorhus/conf/issues/86](https://togithub.com/sindresorhus/conf/issues/86)

##### Enhancements

-   Add support for migrations ([#&#8203;83](https://togithub.com/sindresorhus/conf/issues/83))  [`931ffce`](https://togithub.com/sindresorhus/conf/commit/931ffce)

##### Fixes

-   Add temporary workaround for Conf being packaged in a Snap app  [`68bbb46`](https://togithub.com/sindresorhus/conf/commit/68bbb46)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Nextjs).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 🎁 Rewarded on Issuehunt This issue has been rewarded on Issuehunt help wanted
Projects
None yet
4 participants