| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * @author Toru Nagashima
- * @copyright 2017 Toru Nagashima. All rights reserved.
- * See LICENSE file in root directory for full license.
- */
- "use strict"
- //------------------------------------------------------------------------------
- // Requirements
- //------------------------------------------------------------------------------
- const checkExtraneous = require("../util/check-extraneous")
- const getAllowModules = require("../util/get-allow-modules")
- const getConvertPath = require("../util/get-convert-path")
- const getDocsUrl = require("../util/get-docs-url")
- const getRequireTargets = require("../util/get-require-targets")
- const getResolvePaths = require("../util/get-resolve-paths")
- //------------------------------------------------------------------------------
- // Helpers
- //------------------------------------------------------------------------------
- /**
- * The definition of this rule.
- *
- * @param {RuleContext} context - The rule context to check.
- * @returns {object} The definition of this rule.
- */
- function create(context) {
- const filePath = context.getFilename()
- if (filePath === "<input>") {
- return {}
- }
- return {
- "Program:exit"() {
- checkExtraneous(
- context,
- filePath,
- getRequireTargets(context, false)
- )
- },
- }
- }
- //------------------------------------------------------------------------------
- // Rule Definition
- //------------------------------------------------------------------------------
- module.exports = {
- create,
- meta: {
- docs: {
- description: "disallow `require()` expressions of extraneous packages",
- category: "Possible Errors",
- recommended: true,
- url: getDocsUrl("no-extraneous-require.md"),
- },
- fixable: false,
- schema: [
- {
- type: "object",
- properties: {
- allowModules: getAllowModules.schema,
- convertPath: getConvertPath.schema,
- resolvePaths: getResolvePaths.schema,
- },
- additionalProperties: false,
- },
- ],
- },
- }
|