1 line
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1 line
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {"version":3,"file":"noMissingSyntax.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","e","__esModule","default","setDefaults","state","selectorMap","incrementSelector","selector","comment","_default","exports","iterateJsdoc","context","info","utils","options","contexts","contextStr","findContext","String","contextSelected","exit","settings","length","report","loc","end","column","line","start","message","some","cntxt","contextKey","minimum","Object","values","every","cmmnt","data","matchContext","meta","docs","description","url","fixable","schema","additionalProperties","properties","items","anyOf","type","module"],"sources":["../../src/rules/noMissingSyntax.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\n/**\n * @typedef {{\n *   comment: string,\n *   context: string,\n *   message: string,\n *   minimum: import('../iterateJsdoc.js').Integer\n * }} ContextObject\n */\n\n/**\n * @typedef {string|ContextObject} Context\n */\n\n/**\n * @param {import('../iterateJsdoc.js').StateObject} state\n * @returns {void}\n */\nconst setDefaults = (state) => {\n  if (!state.selectorMap) {\n    state.selectorMap = {};\n  }\n};\n\n/**\n * @param {import('../iterateJsdoc.js').StateObject} state\n * @param {string} selector\n * @param {string} comment\n * @returns {void}\n */\nconst incrementSelector = (state, selector, comment) => {\n  if (!state.selectorMap[selector]) {\n    state.selectorMap[selector] = {};\n  }\n\n  if (!state.selectorMap[selector][comment]) {\n    state.selectorMap[selector][comment] = 0;\n  }\n\n  state.selectorMap[selector][comment]++;\n};\n\nexport default iterateJsdoc(({\n  context,\n  info: {\n    comment,\n  },\n  state,\n  utils,\n}) => {\n  if (!context.options[0]) {\n    // Handle error later\n    return;\n  }\n\n  /**\n   * @type {Context[]}\n   */\n  const contexts = context.options[0].contexts;\n\n  const {\n    contextStr,\n  } = utils.findContext(contexts, comment);\n\n  setDefaults(state);\n\n  incrementSelector(state, contextStr, String(comment));\n}, {\n  contextSelected: true,\n  exit ({\n    context,\n    settings,\n    state,\n  }) {\n    if (!context.options.length && !settings.contexts) {\n      context.report({\n        loc: {\n          end: {\n            column: 1,\n            line: 1,\n          },\n          start: {\n            column: 1,\n            line: 1,\n          },\n        },\n        message: 'Rule `no-missing-syntax` is missing a `contexts` option.',\n      });\n\n      return;\n    }\n\n    setDefaults(state);\n\n    /**\n     * @type {Context[]}\n     */\n    const contexts = (context.options[0] ?? {}).contexts ?? settings?.contexts;\n\n    // Report when MISSING\n    contexts.some((cntxt) => {\n      const contextStr = typeof cntxt === 'object' ? cntxt.context ?? 'any' : cntxt;\n      const comment = typeof cntxt === 'string' ? '' : cntxt?.comment;\n\n      const contextKey = contextStr === 'any' ? 'undefined' : contextStr;\n\n      if (\n        (!state.selectorMap[contextKey] ||\n        !state.selectorMap[contextKey][comment] ||\n        state.selectorMap[contextKey][comment] < (\n          // @ts-expect-error comment would need an object, not string\n          cntxt?.minimum ?? 1\n        )) &&\n        (contextStr !== 'any' || Object.values(state.selectorMap).every((cmmnt) => {\n          return !cmmnt[comment] || cmmnt[comment] < (\n            // @ts-expect-error comment would need an object, not string\n            cntxt?.minimum ?? 1\n          );\n        }))\n      ) {\n        const message = typeof cntxt === 'string' ?\n          'Syntax is required: {{context}}' :\n          cntxt?.message ?? ('Syntax is required: {{context}}' +\n            (comment ? ' with {{comment}}' : ''));\n        context.report({\n          data: {\n            comment,\n            context: contextStr,\n          },\n          loc: {\n            end: {\n              column: 1,\n              line: 1,\n            },\n            start: {\n              column: 1,\n              line: 1,\n            },\n          },\n          message,\n        });\n\n        return true;\n      }\n\n      return false;\n    });\n  },\n  matchContext: true,\n  meta: {\n    docs: {\n      description: 'Reports when certain comment structures are always expected.',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header',\n    },\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              anyOf: [\n                {\n                  type: 'string',\n                },\n                {\n                  additionalProperties: false,\n                  properties: {\n                    comment: {\n                      type: 'string',\n                    },\n                    context: {\n                      type: 'string',\n                    },\n                    message: {\n                      type: 'string',\n                    },\n                    minimum: {\n                      type: 'integer',\n                    },\n                  },\n                  type: 'object',\n                },\n              ],\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"mappings":"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","ignoreList":[]} |