@secretlint/config-loader
TypeScript icon, indicating that this package has built-in type declarations

8.2.3 • Public • Published

@secretlint/config-loader

Config loader for secretlint.

Install

Install with npm:

npm install @secretlint/config-loader

Usage

API Interface

import { SecretLintConfigDescriptor, SecretLintCoreDescriptor } from "@secretlint/types";
export declare type SecretLintConfigLoaderOptions = {
    cwd?: string;
};
export declare type SecretLintConfigLoaderResult = {
    ok: true;
    configFilePath: string;
    config: SecretLintCoreDescriptor;
} | {
    ok: false;
    configFilePath: null;
    config: null;
    errors: Error[];
};
export declare type SecretLintConfigLoaderRawResult = {
    ok: true;
    configFilePath: string;
    config: SecretLintConfigDescriptor;
} | {
    ok: false;
    errors: Error[];
};
/**
 * Load config file and return config object that is loaded rule instance. 
 * @param options
 */
export declare const loadConfig: (options: SecretLintConfigLoaderOptions) => SecretLintConfigLoaderResult;
export declare const loadConfigRaw: (options: SecretLintConfigLoaderOptions) => SecretLintConfigLoaderRawResult;

Example

impor { loadConfig } from "@secretlint/config-loader";
// Load <CurrentDir>/.secretlintrc.{json,yml,js}
const { ok, config, configFilePath, errors } = loadConfig({ cwd: process.cwd() });
if(ok) {
  console.log("load from configFile:" + configFilePath);
  console.log("config", config);
} else{
  console.error(errors);
}

Terminology

  • ConfigDescriptor: config file literal that is not loaded yet
  • Config: loaded object

Workflow

  • Validate ConfigDescriptor
  • Load ConfigDescriptor and create Config object - imports each rule modules
  • Validate Loaded Config with ConfigDescriptor
    • Invalid option, Invalid allowMessageIds, Invalid id specify for a preset
  • If all validation is passed, get a Config.

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

Package Sidebar

Install

npm i @secretlint/config-loader

Weekly Downloads

28,017

Version

8.2.3

License

MIT

Unpacked Size

99 kB

Total Files

38

Last publish

Collaborators

  • secretlint-bot
  • azu