1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * @author Toru Nagashima
- * See LICENSE file in root directory for full license.
- */
- "use strict"
- const DEFAULT_VALUE = Object.freeze([])
- /**
- * Gets `allowModules` property from a given option object.
- *
- * @param {object|undefined} option - An option object to get.
- * @returns {string[]|null} The `allowModules` value, or `null`.
- */
- function get(option) {
- if (option && option.allowModules && Array.isArray(option.allowModules)) {
- return option.allowModules.map(String)
- }
- return null
- }
- /**
- * Gets "allowModules" setting.
- *
- * 1. This checks `options` property, then returns it if exists.
- * 2. This checks `settings.node` property, then returns it if exists.
- * 3. This returns `[]`.
- *
- * @param {RuleContext} context - The rule context.
- * @returns {string[]} A list of extensions.
- */
- module.exports = function getAllowModules(context) {
- return (
- get(context.options && context.options[0]) ||
- get(context.settings && context.settings.node) ||
- DEFAULT_VALUE
- )
- }
- module.exports.schema = {
- type: "array",
- items: {
- type: "string",
- pattern: "^(?:@[a-zA-Z0-9_\\-.]+/)?[a-zA-Z0-9_\\-.]+$",
- },
- uniqueItems: true,
- }
|