forked from public/fvtt-cthulhu-eternal
		
	
		
			
				
	
	
		
			1 line
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1 line
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {"version":3,"file":"requireJsdoc.cjs","names":["_exportParser","_interopRequireDefault","require","_iterateJsdoc","_jsdocUtils","_jsdoccomment","e","__esModule","default","OPTIONS_SCHEMA","additionalProperties","properties","checkConstructors","type","checkGetters","anyOf","enum","checkSetters","contexts","items","context","inlineCommentBlock","minLineCount","enableFixer","exemptEmptyConstructors","exemptEmptyFunctions","fixerMessage","publicOnly","oneOf","ancestorsOnly","cjs","esm","window","ArrowFunctionExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","MethodDefinition","getOption","baseObject","option","key","options","getOptions","settings","undefined","baseObj","prop","Object","keys","opt","_default","exports","create","sourceCode","getSourceCode","getSettings","opts","requireOption","checkJsDoc","info","_handler","node","some","ctxt","count","underMinLine","_sourceCode$getText$m","getText","match","length","contextMinLineCount","find","ctx","selector","jsDocNode","getJSDocComment","exemptSpeciaMethods","description","inlineTags","problems","source","tags","isFunctionContext","isConstructor","functionParameterNames","getFunctionParameterNames","hasReturnValue","fix","fixer","lines","minLines","maxLines","baseNode","getReducedASTNode","decorator","getDecorator","indent","getIndent","text","loc","start","column","contxt","insertion","repeat","slice","insertTextBefore","report","end","line","messageId","Boolean","initModuleExports","initWindow","exported","exportParser","isUncommentedExport","hasOption","getContextObject","enforcedContexts","includes","parent","value","meta","docs","category","recommended","url","fixable","messages","missingJsDoc","schema","module"],"sources":["../../src/rules/requireJsdoc.js"],"sourcesContent":["import exportParser from '../exportParser.js';\nimport {\n  getSettings,\n} from '../iterateJsdoc.js';\nimport {\n  exemptSpeciaMethods,\n  isConstructor,\n  getFunctionParameterNames,\n  hasReturnValue,\n  getIndent,\n  getContextObject,\n  enforcedContexts,\n} from '../jsdocUtils.js';\nimport {\n  getDecorator,\n  getJSDocComment,\n  getReducedASTNode,\n} from '@es-joy/jsdoccomment';\n\n/**\n * @typedef {{\n *   ancestorsOnly: boolean,\n *   esm: boolean,\n *   initModuleExports: boolean,\n *   initWindow: boolean\n * }} RequireJsdocOpts\n */\n\n/**\n * @typedef {import('eslint').Rule.Node|\n *   import('@typescript-eslint/types').TSESTree.Node} ESLintOrTSNode\n */\n\n/** @type {import('json-schema').JSONSchema4} */\nconst OPTIONS_SCHEMA = {\n  additionalProperties: false,\n  properties: {\n    checkConstructors: {\n      default: true,\n      type: 'boolean',\n    },\n    checkGetters: {\n      anyOf: [\n        {\n          type: 'boolean',\n        },\n        {\n          enum: [\n            'no-setter',\n          ],\n          type: 'string',\n        },\n      ],\n      default: true,\n    },\n    checkSetters: {\n      anyOf: [\n        {\n          type: 'boolean',\n        },\n        {\n          enum: [\n            'no-getter',\n          ],\n          type: 'string',\n        },\n      ],\n      default: true,\n    },\n    contexts: {\n      items: {\n        anyOf: [\n          {\n            type: 'string',\n          },\n          {\n            additionalProperties: false,\n            properties: {\n              context: {\n                type: 'string',\n              },\n              inlineCommentBlock: {\n                type: 'boolean',\n              },\n              minLineCount: {\n                type: 'integer',\n              },\n            },\n            type: 'object',\n          },\n        ],\n      },\n      type: 'array',\n    },\n    enableFixer: {\n      default: true,\n      type: 'boolean',\n    },\n    exemptEmptyConstructors: {\n      default: false,\n      type: 'boolean',\n    },\n    exemptEmptyFunctions: {\n      default: false,\n      type: 'boolean',\n    },\n    fixerMessage: {\n      default: '',\n      type: 'string',\n    },\n    minLineCount: {\n      type: 'integer',\n    },\n    publicOnly: {\n      oneOf: [\n        {\n          default: false,\n          type: 'boolean',\n        },\n        {\n          additionalProperties: false,\n          default: {},\n          properties: {\n            ancestorsOnly: {\n              type: 'boolean',\n            },\n            cjs: {\n              type: 'boolean',\n            },\n            esm: {\n              type: 'boolean',\n            },\n            window: {\n              type: 'boolean',\n            },\n          },\n          type: 'object',\n        },\n      ],\n    },\n    require: {\n      additionalProperties: false,\n      default: {},\n      properties: {\n        ArrowFunctionExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        ClassDeclaration: {\n          default: false,\n          type: 'boolean',\n        },\n        ClassExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        FunctionDeclaration: {\n          default: true,\n          type: 'boolean',\n        },\n        FunctionExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        MethodDefinition: {\n          default: false,\n          type: 'boolean',\n        },\n      },\n      type: 'object',\n    },\n  },\n  type: 'object',\n};\n\n/**\n * @param {import('eslint').Rule.RuleContext} context\n * @param {import('json-schema').JSONSchema4Object} baseObject\n * @param {string} option\n * @param {string} key\n * @returns {boolean|undefined}\n */\nconst getOption = (context, baseObject, option, key) => {\n  if (context.options[0] && option in context.options[0] &&\n    // Todo: boolean shouldn't be returning property, but\n    //   tests currently require\n    (typeof context.options[0][option] === 'boolean' ||\n    key in context.options[0][option])\n  ) {\n    return context.options[0][option][key];\n  }\n\n  return /** @type {{[key: string]: {default?: boolean|undefined}}} */ (\n    baseObject.properties\n  )[key].default;\n};\n\n/**\n * @param {import('eslint').Rule.RuleContext} context\n * @param {import('../iterateJsdoc.js').Settings} settings\n * @returns {{\n *   contexts: (string|{\n *     context: string,\n *     inlineCommentBlock: boolean,\n *     minLineCount: import('../iterateJsdoc.js').Integer\n *   })[],\n *   enableFixer: boolean,\n *   exemptEmptyConstructors: boolean,\n *   exemptEmptyFunctions: boolean,\n *   fixerMessage: string,\n *   minLineCount: undefined|import('../iterateJsdoc.js').Integer,\n *   publicOnly: boolean|{[key: string]: boolean|undefined}\n *   require: {[key: string]: boolean|undefined}\n * }}\n */\nconst getOptions = (context, settings) => {\n  const {\n    publicOnly,\n    contexts = settings.contexts || [],\n    exemptEmptyConstructors = true,\n    exemptEmptyFunctions = false,\n    enableFixer = true,\n    fixerMessage = '',\n    minLineCount = undefined,\n  } = context.options[0] || {};\n\n  return {\n    contexts,\n    enableFixer,\n    exemptEmptyConstructors,\n    exemptEmptyFunctions,\n    fixerMessage,\n    minLineCount,\n    publicOnly: ((baseObj) => {\n      if (!publicOnly) {\n        return false;\n      }\n\n      /** @type {{[key: string]: boolean|undefined}} */\n      const properties = {};\n      for (const prop of Object.keys(\n        /** @type {import('json-schema').JSONSchema4Object} */ (\n        /** @type {import('json-schema').JSONSchema4Object} */ (\n            baseObj\n          ).properties),\n      )) {\n        const opt = getOption(\n          context,\n          /** @type {import('json-schema').JSONSchema4Object} */ (baseObj),\n          'publicOnly',\n          prop,\n        );\n\n        properties[prop] = opt;\n      }\n\n      return properties;\n    })(\n      /** @type {import('json-schema').JSONSchema4Object} */\n      (\n        /** @type {import('json-schema').JSONSchema4Object} */\n        (\n          /** @type {import('json-schema').JSONSchema4Object} */\n          (\n            OPTIONS_SCHEMA.properties\n          ).publicOnly\n        ).oneOf\n      )[1],\n    ),\n    require: ((baseObj) => {\n      /** @type {{[key: string]: boolean|undefined}} */\n      const properties = {};\n      for (const prop of Object.keys(\n        /** @type {import('json-schema').JSONSchema4Object} */ (\n        /** @type {import('json-schema').JSONSchema4Object} */ (\n            baseObj\n          ).properties),\n      )) {\n        const opt = getOption(\n          context,\n          /** @type {import('json-schema').JSONSchema4Object} */\n          (baseObj),\n          'require',\n          prop,\n        );\n        properties[prop] = opt;\n      }\n\n      return properties;\n    })(\n      /** @type {import('json-schema').JSONSchema4Object} */\n      (OPTIONS_SCHEMA.properties).require,\n    ),\n  };\n};\n\n/** @type {import('eslint').Rule.RuleModule} */\nexport default {\n  create (context) {\n    /* c8 ignore next -- Fallback to deprecated method */\n    const {\n      sourceCode = context.getSourceCode(),\n    } = context;\n    const settings = getSettings(context);\n    if (!settings) {\n      return {};\n    }\n\n    const opts = getOptions(context, settings);\n\n    const {\n      require: requireOption,\n      contexts,\n      exemptEmptyFunctions,\n      exemptEmptyConstructors,\n      enableFixer,\n      fixerMessage,\n      minLineCount,\n    } = opts;\n\n    const publicOnly =\n\n      /**\n       * @type {{\n       *   [key: string]: boolean | undefined;\n       * }}\n       */ (\n        opts.publicOnly\n      );\n\n    /**\n     * @type {import('../iterateJsdoc.js').CheckJsdoc}\n     */\n    const checkJsDoc = (info, _handler, node) => {\n      if (\n        // Optimize\n        minLineCount !== undefined || contexts.some((ctxt) => {\n          if (typeof ctxt === 'string') {\n            return false;\n          }\n\n          const {\n            minLineCount: count,\n          } = ctxt;\n          return count !== undefined;\n        })\n      ) {\n        /**\n         * @param {undefined|import('../iterateJsdoc.js').Integer} count\n         */\n        const underMinLine = (count) => {\n          return count !== undefined && count >\n            (sourceCode.getText(node).match(/\\n/gu)?.length ?? 0) + 1;\n        };\n\n        if (underMinLine(minLineCount)) {\n          return;\n        }\n\n        const {\n          minLineCount: contextMinLineCount,\n        } =\n          /**\n           * @type {{\n           *   context: string;\n           *   inlineCommentBlock: boolean;\n           *   minLineCount: number;\n           * }}\n           */ (contexts.find((ctxt) => {\n            if (typeof ctxt === 'string') {\n              return false;\n            }\n\n            const {\n              context: ctx,\n            } = ctxt;\n            return ctx === (info.selector || node.type);\n          })) || {};\n        if (underMinLine(contextMinLineCount)) {\n          return;\n        }\n      }\n\n      const jsDocNode = getJSDocComment(sourceCode, node, settings);\n\n      if (jsDocNode) {\n        return;\n      }\n\n      // For those who have options configured against ANY constructors (or\n      //  setters or getters) being reported\n      if (exemptSpeciaMethods(\n        {\n          description: '',\n          inlineTags: [],\n          problems: [],\n          source: [],\n          tags: [],\n        },\n        node,\n        context,\n        [\n          OPTIONS_SCHEMA,\n        ],\n      )) {\n        return;\n      }\n\n      if (\n        // Avoid reporting param-less, return-less functions (when\n        //  `exemptEmptyFunctions` option is set)\n        exemptEmptyFunctions && info.isFunctionContext ||\n\n        // Avoid reporting  param-less, return-less constructor methods (when\n        //  `exemptEmptyConstructors` option is set)\n        exemptEmptyConstructors && isConstructor(node)\n      ) {\n        const functionParameterNames = getFunctionParameterNames(node);\n        if (!functionParameterNames.length && !hasReturnValue(node)) {\n          return;\n        }\n      }\n\n      const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => {\n        // Default to one line break if the `minLines`/`maxLines` settings allow\n        const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n        /** @type {ESLintOrTSNode|import('@typescript-eslint/types').TSESTree.Decorator} */\n        let baseNode = getReducedASTNode(node, sourceCode);\n\n        const decorator = getDecorator(\n          /** @type {import('eslint').Rule.Node} */\n          (baseNode)\n        );\n        if (decorator) {\n          baseNode = decorator;\n        }\n\n        const indent = getIndent({\n          text: sourceCode.getText(\n            /** @type {import('eslint').Rule.Node} */ (baseNode),\n            /** @type {import('eslint').AST.SourceLocation} */\n            (\n              /** @type {import('eslint').Rule.Node} */ (baseNode).loc\n            ).start.column,\n          ),\n        });\n\n        const {\n          inlineCommentBlock,\n        } =\n          /**\n           * @type {{\n           *     context: string,\n           *     inlineCommentBlock: boolean,\n           *     minLineCount: import('../iterateJsdoc.js').Integer\n           *   }}\n           */ (contexts.find((contxt) => {\n            if (typeof contxt === 'string') {\n              return false;\n            }\n\n            const {\n              context: ctxt,\n            } = contxt;\n            return ctxt === node.type;\n          })) || {};\n        const insertion = (inlineCommentBlock ?\n          `/** ${fixerMessage}` :\n          `/**\\n${indent}*${fixerMessage}\\n${indent}`) +\n            `*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n\n        return fixer.insertTextBefore(\n          /** @type {import('eslint').Rule.Node} */\n          (baseNode),\n          insertion,\n        );\n      };\n\n      const report = () => {\n        const {\n          start,\n        } = /** @type {import('eslint').AST.SourceLocation} */ (node.loc);\n        const loc = {\n          end: {\n            column: 0,\n            line: start.line + 1,\n          },\n          start,\n        };\n        context.report({\n          fix: enableFixer ? fix : null,\n          loc,\n          messageId: 'missingJsDoc',\n          node,\n        });\n      };\n\n      if (publicOnly) {\n        /** @type {RequireJsdocOpts} */\n        const opt = {\n          ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false),\n          esm: Boolean(publicOnly?.esm ?? true),\n          initModuleExports: Boolean(publicOnly?.cjs ?? true),\n          initWindow: Boolean(publicOnly?.window ?? false),\n        };\n        const exported = exportParser.isUncommentedExport(node, sourceCode, opt, settings);\n\n        if (exported) {\n          report();\n        }\n      } else {\n        report();\n      }\n    };\n\n    /**\n     * @param {string} prop\n     * @returns {boolean}\n     */\n    const hasOption = (prop) => {\n      return requireOption[prop] || contexts.some((ctxt) => {\n        return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop;\n      });\n    };\n\n    return {\n      ...getContextObject(\n        enforcedContexts(context, [], settings),\n        checkJsDoc,\n      ),\n      ArrowFunctionExpression (node) {\n        if (!hasOption('ArrowFunctionExpression')) {\n          return;\n        }\n\n        if (\n          [\n            'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n          ].includes(node.parent.type) ||\n          [\n            'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n          ].includes(node.parent.type) &&\n            node ===\n              /**\n               * @type {import('@typescript-eslint/types').TSESTree.Property|\n               *   import('@typescript-eslint/types').TSESTree.PropertyDefinition\n               * }\n               */\n              (node.parent).value\n        ) {\n          checkJsDoc({\n            isFunctionContext: true,\n          }, null, node);\n        }\n      },\n\n      ClassDeclaration (node) {\n        if (!hasOption('ClassDeclaration')) {\n          return;\n        }\n\n        checkJsDoc({\n          isFunctionContext: false,\n        }, null, node);\n      },\n\n      ClassExpression (node) {\n        if (!hasOption('ClassExpression')) {\n          return;\n        }\n\n        checkJsDoc({\n          isFunctionContext: false,\n        }, null, node);\n      },\n\n      FunctionDeclaration (node) {\n        if (!hasOption('FunctionDeclaration')) {\n          return;\n        }\n\n        checkJsDoc({\n          isFunctionContext: true,\n        }, null, node);\n      },\n\n      FunctionExpression (node) {\n        if (!hasOption('FunctionExpression')) {\n          return;\n        }\n\n        if (\n          [\n            'VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration',\n          ].includes(node.parent.type) ||\n          [\n            'Property', 'ObjectProperty', 'ClassProperty', 'PropertyDefinition',\n          ].includes(node.parent.type) &&\n            node ===\n              /**\n               * @type {import('@typescript-eslint/types').TSESTree.Property|\n               *   import('@typescript-eslint/types').TSESTree.PropertyDefinition\n               * }\n               */\n              (node.parent).value\n        ) {\n          checkJsDoc({\n            isFunctionContext: true,\n          }, null, node);\n        }\n      },\n\n      MethodDefinition (node) {\n        if (!hasOption('MethodDefinition')) {\n          return;\n        }\n\n        checkJsDoc({\n          isFunctionContext: true,\n          selector: 'MethodDefinition',\n        }, null, /** @type {import('eslint').Rule.Node} */ (node.value));\n      },\n    };\n  },\n  meta: {\n    docs: {\n      category: 'Stylistic Issues',\n      description: 'Require JSDoc comments',\n      recommended: true,\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header',\n    },\n\n    fixable: 'code',\n\n    messages: {\n      missingJsDoc: 'Missing JSDoc comment.',\n    },\n\n    schema: [\n      OPTIONS_SCHEMA,\n    ],\n\n    type: 'suggestion',\n  },\n};\n"],"mappings":"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","ignoreList":[]} |