Comments (6)
I imagine this as a separate project. I think it makes sense to keep cosmiconfig strictly focused on loading and parsing. What you do with the parsed config is not cosmiconfig's concern.
It would definitely be cool to have another library shared by open source projects that validates the parsed config, so each project doesn't have to implement that on its own! It might be pretty hard, though, to make something generic that will meet the different validation needs of different projects. Fun problem.
from cosmiconfig.
Hey @aladdin-add, could you elaborate your use-case? What would be the advantage of adding this functionality to cosmiconfig
instead of letting the client implement it themselves? If the client were to implement it, they would have the freedom to choose the validation library of their choice. Another option would be to implement a external wrapper module which would use the transform
hook to perform the validation.
from cosmiconfig.
thanks for the quick response!
I'm considering using cosmiconfig
in eslint (eslint/eslint#9637). config validation is so common, so I think providing an optional implement but can be customized can be handy for users, and no harm to flexibility. you recon?
from cosmiconfig.
@davidtheclark, @azz, @okonet Do you mind sharing your opinion on this?
from cosmiconfig.
There's already at least two really good libs for this that I'm aware of:
from cosmiconfig.
Based on feedback, we won't be developing this feature in cosmiconfig
. Closing the issue for now.
from cosmiconfig.
Related Issues (20)
- metaConfig.config ?? {}; HOT 4
- `explorer.search(...)` crashes with `{stopDir: undefined}` option HOT 2
- Node.js version breaking change HOT 2
- Why does cosmiconfig require Node version greater than 18.0.0? HOT 2
- Could not resolve module "node:os" from
- Regression in v8.3.x - missing json config file doesn't always return null HOT 9
- SyntaxError: Unexpected token '.' HOT 2
- Lerna-Lite project having an empty `.config.json` file gets picked up by cosmiconfig and is unexpected - behavior changed after 8.0 HOT 8
- Add link to Python port of Cosmiconfig HOT 2
- README doesn't mention .mjs files inside of a config directory HOT 2
- Error: EACCES: permission denied, open '/.config/puppeteerrc’ HOT 9
- Offer a "minimal" version with less dependencies
- Also find [`pnpm`] package.yaml/json5 properties HOT 1
- Module "typescript" possibly misplaced as a dev dependency HOT 1
- cosmiconfig requires at least version 4 of Node, please upgrade HOT 1
- Please release source code to npm if you release source map files HOT 1
- Question: latest v9 not mentioned in changelog and no github release exists HOT 2
- Meta config files are not looked in cwd anymore? (in v9 changelog but not in README HOT 6
- It says `.ts` configs are supported automatically, and also `.cjs` and `.mjs`, but why `.cts` and `.mts` are not supported?
- CJS configuration files in ESM projects do not freshly import
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cosmiconfig.