Skip to content

⬅️ Back to Table of Contents

📄 schema

📊 Analysis Summary

Metric Count
🔧 Functions 2
📦 Imports 10
📊 Variables & Constants 6
📑 Type Aliases 1

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/naming-convention-utils/schema.ts

📦 Imports

Name Source
JSONSchema @typescript-eslint/utils
IndividualAndMetaSelectorsString ./enums
ModifiersString ./enums
getEnumNames ../../util
MetaSelectors ./enums
Modifiers ./enums
PredefinedFormats ./enums
Selectors ./enums
TypeModifiers ./enums
UnderscoreOptions ./enums

Variables & Constants

Name Type Kind Value Exported
$DEFS Record<string, JSONSchema.JSONSchema4> const { // enums predefinedFormats: { enum: getEnumNames(PredefinedFormats), type: ...
UNDERSCORE_SCHEMA JSONSchema.JSONSchema4 const { $ref: '#/$defs/underscoreOptions', }
PREFIX_SUFFIX_SCHEMA JSONSchema.JSONSchema4 const { $ref: '#/$defs/prefixSuffixConfig', }
MATCH_REGEX_SCHEMA JSONSchema.JSONSchema4 const { $ref: '#/$defs/matchRegexConfig', }
FORMAT_OPTIONS_PROPERTIES JSONSchemaProperties const { custom: MATCH_REGEX_SCHEMA, failureMessage: { type: 'string', }, format: { ...
SCHEMA JSONSchema.JSONSchema4 const { $defs: $DEFS, additionalItems: false, items: { oneOf: [ selectorsSchema(), ...

Functions

selectorSchema(selectorString: IndividualAndMetaSelectorsString, allowType: boolean, modifiers: ModifiersString[]): JSONSchema.JSONSchema4[]

Parameters:

  • selectorString IndividualAndMetaSelectorsString
  • allowType boolean
  • modifiers ModifiersString[]

Returns: JSONSchema.JSONSchema4[]

Code
function selectorSchema(
  selectorString: IndividualAndMetaSelectorsString,
  allowType: boolean,
  modifiers?: ModifiersString[],
): JSONSchema.JSONSchema4[] {
  const selector: JSONSchemaProperties = {
    filter: {
      oneOf: [
        {
          minLength: 1,
          type: 'string',
        },
        MATCH_REGEX_SCHEMA,
      ],
    },
    selector: {
      enum: [selectorString],
      type: 'string',
    },
  };
  if (modifiers && modifiers.length > 0) {
    selector.modifiers = {
      additionalItems: false,
      items: {
        enum: modifiers,
        type: 'string',
      },
      type: 'array',
    };
  }
  if (allowType) {
    selector.types = {
      additionalItems: false,
      items: {
        $ref: '#/$defs/typeModifiers',
      },
      type: 'array',
    };
  }

  return [
    {
      additionalProperties: false,
      description: `Selector '${selectorString}'`,
      properties: {
        ...FORMAT_OPTIONS_PROPERTIES,
        ...selector,
      },
      required: ['selector', 'format'],
      type: 'object',
    },
  ];
}

selectorsSchema(): JSONSchema.JSONSchema4

Returns: JSONSchema.JSONSchema4

Calls:

  • getEnumNames (from ../../util)
Code
function selectorsSchema(): JSONSchema.JSONSchema4 {
  return {
    additionalProperties: false,
    description: 'Multiple selectors in one config',
    properties: {
      ...FORMAT_OPTIONS_PROPERTIES,
      filter: {
        oneOf: [
          {
            minLength: 1,
            type: 'string',
          },
          MATCH_REGEX_SCHEMA,
        ],
      },
      modifiers: {
        additionalItems: false,
        items: {
          enum: getEnumNames(Modifiers),
          type: 'string',
        },
        type: 'array',
      },
      selector: {
        additionalItems: false,
        items: {
          enum: [...getEnumNames(MetaSelectors), ...getEnumNames(Selectors)],
          type: 'string',
        },
        type: 'array',
      },
      types: {
        additionalItems: false,
        items: {
          $ref: '#/$defs/typeModifiers',
        },
        type: 'array',
      },
    },
    required: ['selector', 'format'],
    type: 'object',
  };
}

Type Aliases

JSONSchemaProperties

type JSONSchemaProperties = Record<string, JSONSchema.JSONSchema4>;

Generated by Syntax Scribe