tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

extensions.ts (1187B)


      1 /**
      2 * @license
      3 * Copyright 2023 Google Inc.
      4 * SPDX-License-Identifier: Apache-2.0
      5 */
      6 
      7 import {ESLintUtils} from '@typescript-eslint/utils';
      8 
      9 const createRule = ESLintUtils.RuleCreator<{
     10  requiresTypeChecking: boolean;
     11 }>(name => {
     12  return `https://github.com/puppeteer/puppeteer/tree/main/tools/eslint/${name}.js`;
     13 });
     14 
     15 const enforceExtensionRule = createRule<[], 'extensionsRule'>({
     16  name: 'extensions',
     17  meta: {
     18    docs: {
     19      description: 'Requires `.js` for imports',
     20      requiresTypeChecking: false,
     21    },
     22    messages: {
     23      extensionsRule: 'Add `.js` to import.',
     24    },
     25    schema: [],
     26    fixable: 'code',
     27    type: 'problem',
     28  },
     29  defaultOptions: [],
     30  create(context) {
     31    return {
     32      ImportDeclaration(node): void {
     33        const file = node.source.value.split('/').pop();
     34 
     35        if (!node.source.value.startsWith('.') || file?.includes('.')) {
     36          return;
     37        }
     38        context.report({
     39          node: node.source,
     40          messageId: 'extensionsRule',
     41          fix(fixer) {
     42            return fixer.replaceText(node.source, `'${node.source.value}.js'`);
     43          },
     44        });
     45      },
     46    };
     47  },
     48 });
     49 
     50 export = enforceExtensionRule;