Skip to content

refactor: use file extensions (as per ESM) #1135

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/bin/generateRule.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const recommended = options.includes('--recommended');
await fs.writeFile(ruleNamesPath, JSON.stringify(ruleNames, null, 2) + '\n');
console.log('ruleNames', ruleNames);

const ruleTemplate = `import iterateJsdoc from '../iterateJsdoc';
const ruleTemplate = `import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down Expand Up @@ -249,9 +249,9 @@ export default iterateJsdoc(({

await replaceInOrder({
checkName: 'index import',
newLine: `import ${camelCasedRuleName} from './rules/${camelCasedRuleName}';`,
newLine: `import ${camelCasedRuleName} from './rules/${camelCasedRuleName}.js';`,
oldIsCamel: true,
oldRegex: /\nimport (?<oldRule>[^ ]*) from '.\/rules\/\1';/gu,
oldRegex: /\nimport (?<oldRule>[^ ]*) from '.\/rules\/\1\.js';/gu,
path: './src/index.js',
});

Expand Down
110 changes: 56 additions & 54 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,59 +1,61 @@
import checkAccess from './rules/checkAccess';
import checkAlignment from './rules/checkAlignment';
import checkExamples from './rules/checkExamples';
import checkIndentation from './rules/checkIndentation';
import checkLineAlignment from './rules/checkLineAlignment';
import checkParamNames from './rules/checkParamNames';
import checkPropertyNames from './rules/checkPropertyNames';
import checkSyntax from './rules/checkSyntax';
import checkTagNames from './rules/checkTagNames';
import checkTypes from './rules/checkTypes';
import checkValues from './rules/checkValues';
import emptyTags from './rules/emptyTags';
import implementsOnClasses from './rules/implementsOnClasses';
import importsAsDependencies from './rules/importsAsDependencies';
import informativeDocs from './rules/informativeDocs';
import matchDescription from './rules/matchDescription';
import matchName from './rules/matchName';
import multilineBlocks from './rules/multilineBlocks';
import noBadBlocks from './rules/noBadBlocks';
import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions';
import noBlankBlocks from './rules/noBlankBlocks';
import noDefaults from './rules/noDefaults';
import noMissingSyntax from './rules/noMissingSyntax';
import noMultiAsterisks from './rules/noMultiAsterisks';
import noRestrictedSyntax from './rules/noRestrictedSyntax';
import noTypes from './rules/noTypes';
import noUndefinedTypes from './rules/noUndefinedTypes';
import requireAsteriskPrefix from './rules/requireAsteriskPrefix';
import requireDescription from './rules/requireDescription';
import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence';
import requireExample from './rules/requireExample';
import requireFileOverview from './rules/requireFileOverview';
import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription';
import requireJsdoc from './rules/requireJsdoc';
import requireParam from './rules/requireParam';
import requireParamDescription from './rules/requireParamDescription';
import requireParamName from './rules/requireParamName';
import requireParamType from './rules/requireParamType';
import requireProperty from './rules/requireProperty';
import requirePropertyDescription from './rules/requirePropertyDescription';
import requirePropertyName from './rules/requirePropertyName';
import requirePropertyType from './rules/requirePropertyType';
import requireReturns from './rules/requireReturns';
import requireReturnsCheck from './rules/requireReturnsCheck';
import requireReturnsDescription from './rules/requireReturnsDescription';
import requireReturnsType from './rules/requireReturnsType';
import requireThrows from './rules/requireThrows';
import requireYields from './rules/requireYields';
import requireYieldsCheck from './rules/requireYieldsCheck';
import sortTags from './rules/sortTags';
import tagLines from './rules/tagLines';
import textEscaping from './rules/textEscaping';
import validTypes from './rules/validTypes';
import checkAccess from './rules/checkAccess.js';
import checkAlignment from './rules/checkAlignment.js';
import checkExamples from './rules/checkExamples.js';
import checkIndentation from './rules/checkIndentation.js';
import checkLineAlignment from './rules/checkLineAlignment.js';
import checkParamNames from './rules/checkParamNames.js';
import checkPropertyNames from './rules/checkPropertyNames.js';
import checkSyntax from './rules/checkSyntax.js';
import checkTagNames from './rules/checkTagNames.js';
import checkTypes from './rules/checkTypes.js';
import checkValues from './rules/checkValues.js';
import emptyTags from './rules/emptyTags.js';
import implementsOnClasses from './rules/implementsOnClasses.js';
import importsAsDependencies from './rules/importsAsDependencies.js';
import informativeDocs from './rules/informativeDocs.js';
import matchDescription from './rules/matchDescription.js';
import matchName from './rules/matchName.js';
import multilineBlocks from './rules/multilineBlocks.js';
import noBadBlocks from './rules/noBadBlocks.js';
import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions.js';
import noBlankBlocks from './rules/noBlankBlocks.js';
import noDefaults from './rules/noDefaults.js';
import noMissingSyntax from './rules/noMissingSyntax.js';
import noMultiAsterisks from './rules/noMultiAsterisks.js';
import noRestrictedSyntax from './rules/noRestrictedSyntax.js';
import noTypes from './rules/noTypes.js';
import noUndefinedTypes from './rules/noUndefinedTypes.js';
import requireAsteriskPrefix from './rules/requireAsteriskPrefix.js';
import requireDescription from './rules/requireDescription.js';
import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence.js';
import requireExample from './rules/requireExample.js';
import requireFileOverview from './rules/requireFileOverview.js';
import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription.js';
import requireJsdoc from './rules/requireJsdoc.js';
import requireParam from './rules/requireParam.js';
import requireParamDescription from './rules/requireParamDescription.js';
import requireParamName from './rules/requireParamName.js';
import requireParamType from './rules/requireParamType.js';
import requireProperty from './rules/requireProperty.js';
import requirePropertyDescription from './rules/requirePropertyDescription.js';
import requirePropertyName from './rules/requirePropertyName.js';
import requirePropertyType from './rules/requirePropertyType.js';
import requireReturns from './rules/requireReturns.js';
import requireReturnsCheck from './rules/requireReturnsCheck.js';
import requireReturnsDescription from './rules/requireReturnsDescription.js';
import requireReturnsType from './rules/requireReturnsType.js';
import requireThrows from './rules/requireThrows.js';
import requireYields from './rules/requireYields.js';
import requireYieldsCheck from './rules/requireYieldsCheck.js';
import sortTags from './rules/sortTags.js';
import tagLines from './rules/tagLines.js';
import textEscaping from './rules/textEscaping.js';
import validTypes from './rules/validTypes.js';

/**
* @type {import('eslint').ESLint.Plugin}
* @type {import('eslint').ESLint.Plugin & {
* configs: Record<string, import('eslint').ESLint.ConfigData>
* }}
*/
const index = {
configs: {},
Expand Down
2 changes: 1 addition & 1 deletion src/iterateJsdoc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import jsdocUtils from './jsdocUtils';
import jsdocUtils from './jsdocUtils.js';
import {
commentHandler,
getJSDocComment,
Expand Down
8 changes: 4 additions & 4 deletions src/jsdocUtils.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import getDefaultTagStructureForMode from './getDefaultTagStructureForMode';
import getDefaultTagStructureForMode from './getDefaultTagStructureForMode.js';
import {
closureTags,
jsdocTags,
typeScriptTags,
} from './tagNames';
} from './tagNames.js';
import {
hasReturnValue,
hasValueOrExecutorHasNonEmptyResolveValue,
} from './utils/hasReturnValue';
import WarnSettings from './WarnSettings';
} from './utils/hasReturnValue.js';
import WarnSettings from './WarnSettings.js';
import {
tryParse,
} from '@es-joy/jsdoccomment';
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkAccess.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

const accessLevels = [
'package', 'private', 'protected', 'public',
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkAlignment.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {string} string
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkExamples.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Todo: When replace `CLIEngine` with `ESLint` when feature set complete per https://github.com/eslint/eslint/issues/14745
// https://github.com/eslint/eslint/blob/master/docs/user-guide/migrating-to-7.0.0.md#-the-cliengine-class-has-been-deprecated
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import {
// @ts-expect-error - For older ESLint
CLIEngine,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkIndentation.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {string} str
Expand Down
4 changes: 2 additions & 2 deletions src/rules/checkLineAlignment.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import alignTransform from '../alignTransform';
import iterateJsdoc from '../iterateJsdoc';
import alignTransform from '../alignTransform.js';
import iterateJsdoc from '../iterateJsdoc.js';
import {
transforms,
} from 'comment-parser';
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkParamNames.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {string} targetTagName
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkPropertyNames.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {string} targetTagName
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkSyntax.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
jsdoc,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkTagNames.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import escapeStringRegexp from 'escape-string-regexp';

// https://babeljs.io/docs/en/babel-plugin-transform-react-jsx/
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkTypes.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import {
parse,
stringify,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/checkValues.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import semver from 'semver';
import spdxExpressionParse from 'spdx-expression-parse';

Expand Down
2 changes: 1 addition & 1 deletion src/rules/emptyTags.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

const defaultEmptyTags = new Set([
'abstract', 'async', 'generator', 'global', 'hideconstructor',
Expand Down
2 changes: 1 addition & 1 deletion src/rules/implementsOnClasses.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
report,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/importsAsDependencies.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import {
parse,
traverse,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/informativeDocs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import {
areDocsInformative,
} from 'are-docs-informative';
Expand Down
2 changes: 1 addition & 1 deletion src/rules/matchDescription.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

// If supporting Node >= 10, we could loosen the default to this for the
// initial letter: \\p{Upper}
Expand Down
2 changes: 1 addition & 1 deletion src/rules/matchName.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

// eslint-disable-next-line complexity
export default iterateJsdoc(({
Expand Down
2 changes: 1 addition & 1 deletion src/rules/multilineBlocks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noBadBlocks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import {
parse as commentParser,
} from 'comment-parser';
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noBlankBlockDescriptions.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

const anyWhitespaceLines = /^\s*$/u;
const atLeastTwoLinesWhitespace = /^[ \t]*\n[ \t]*\n\s*$/u;
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noBlankBlocks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noDefaults.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noMissingSyntax.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @typedef {{
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noMultiAsterisks.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

const middleAsterisksBlockWS = /^([\t ]|\*(?!\*))+/u;
const middleAsterisksNoBlockWS = /^\*+/u;
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noRestrictedSyntax.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noTypes.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {import('comment-parser').Line} line
Expand Down
2 changes: 1 addition & 1 deletion src/rules/noUndefinedTypes.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import iterateJsdoc, {
parseComment,
} from '../iterateJsdoc';
} from '../iterateJsdoc.js';
import {
getJSDocComment,
parse as parseType,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireAsteriskPrefix.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireDescription.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @param {string} description
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireDescriptionCompleteSentence.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';
import escapeStringRegexp from 'escape-string-regexp';

const otherDescriptiveTags = new Set([
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireExample.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireFileOverview.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

const defaultTags = {
file: {
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireHyphenBeforeParamDescription.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
sourceCode,
Expand Down
6 changes: 3 additions & 3 deletions src/rules/requireJsdoc.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import exportParser from '../exportParser';
import exportParser from '../exportParser.js';
import {
getSettings,
} from '../iterateJsdoc';
import jsdocUtils from '../jsdocUtils';
} from '../iterateJsdoc.js';
import jsdocUtils from '../jsdocUtils.js';
import {
getDecorator,
getJSDocComment,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireParam.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

/**
* @typedef {[string, boolean, () => RootNamerReturn]} RootNamerReturn
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireParamDescription.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
context,
Expand Down
2 changes: 1 addition & 1 deletion src/rules/requireParamName.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import iterateJsdoc from '../iterateJsdoc';
import iterateJsdoc from '../iterateJsdoc.js';

export default iterateJsdoc(({
report,
Expand Down
Loading