Skip to content

Commit 70ee0c2

Browse files
committed
feat: add .ts extensions to all relative imports for rewriteRelativeImportExtensions
Migrates all relative import/export specifiers across the repo to include explicit .ts/.tsx file extensions. This enables TypeScript's rewriteRelativeImportExtensions compiler option to produce correct .js extensions in compiled output, fixing ESM resolution under Node.js. Also includes: - heft-typescript-plugin: inject rewriteRelativeImportExtensions and allowImportingTsExtensions in tsconfigLoader; enhance wrapWriteFile to rewrite .js specifiers when jsExtensionOverride is set; remove the old addJsExtensionToImports approach - ESLint import/extensions rule added to local-eslint-config - ESLint rule disabled for ts-loader and composite-test projects - require() calls use .js extensions (not rewritten by TS) - esm-node-import-test: new build-test validating ESM imports work - rush.json: register esm-node-import-test project Fixes #5644
1 parent 2281b23 commit 70ee0c2

File tree

1,097 files changed

+3912
-3745
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,097 files changed

+3912
-3745
lines changed

apps/api-documenter/src/cli/ApiDocumenterCommandLine.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
import { CommandLineParser } from '@rushstack/ts-command-line';
55

6-
import { MarkdownAction } from './MarkdownAction';
7-
import { YamlAction } from './YamlAction';
8-
import { GenerateAction } from './GenerateAction';
6+
import { MarkdownAction } from './MarkdownAction.ts';
7+
import { YamlAction } from './YamlAction.ts';
8+
import { GenerateAction } from './GenerateAction.ts';
99

1010
export class ApiDocumenterCommandLine extends CommandLineParser {
1111
public constructor() {

apps/api-documenter/src/cli/GenerateAction.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import * as path from 'node:path';
55

66
import { FileSystem } from '@rushstack/node-core-library';
77

8-
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine';
9-
import { BaseAction } from './BaseAction';
10-
import { DocumenterConfig } from '../documenters/DocumenterConfig';
11-
import { ExperimentalYamlDocumenter } from '../documenters/ExperimentalYamlDocumenter';
12-
import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter';
8+
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine.ts';
9+
import { BaseAction } from './BaseAction.ts';
10+
import { DocumenterConfig } from '../documenters/DocumenterConfig.ts';
11+
import { ExperimentalYamlDocumenter } from '../documenters/ExperimentalYamlDocumenter.ts';
12+
import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter.ts';
1313

1414
export class GenerateAction extends BaseAction {
1515
public constructor(parser: ApiDocumenterCommandLine) {

apps/api-documenter/src/cli/MarkdownAction.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
22
// See LICENSE in the project root for license information.
33

4-
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine';
5-
import { BaseAction } from './BaseAction';
6-
import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter';
4+
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine.ts';
5+
import { BaseAction } from './BaseAction.ts';
6+
import { MarkdownDocumenter } from '../documenters/MarkdownDocumenter.ts';
77

88
export class MarkdownAction extends BaseAction {
99
public constructor(parser: ApiDocumenterCommandLine) {

apps/api-documenter/src/cli/YamlAction.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import type {
66
IRequiredCommandLineChoiceParameter
77
} from '@rushstack/ts-command-line';
88

9-
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine';
10-
import { BaseAction } from './BaseAction';
11-
import { YamlDocumenter, type YamlFormat } from '../documenters/YamlDocumenter';
12-
import { OfficeYamlDocumenter } from '../documenters/OfficeYamlDocumenter';
9+
import type { ApiDocumenterCommandLine } from './ApiDocumenterCommandLine.ts';
10+
import { BaseAction } from './BaseAction.ts';
11+
import { YamlDocumenter, type YamlFormat } from '../documenters/YamlDocumenter.ts';
12+
import { OfficeYamlDocumenter } from '../documenters/OfficeYamlDocumenter.ts';
1313

1414
export class YamlAction extends BaseAction {
1515
private readonly _officeParameter: CommandLineFlagParameter;

apps/api-documenter/src/documenters/DocumenterConfig.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import * as path from 'node:path';
55

66
import { JsonSchema, JsonFile, NewlineKind } from '@rushstack/node-core-library';
77

8-
import type { IConfigFile } from './IConfigFile';
8+
import type { IConfigFile } from './IConfigFile.ts';
99
import apiDocumenterSchema from '../schemas/api-documenter.schema.json';
1010

1111
/**

apps/api-documenter/src/documenters/ExperimentalYamlDocumenter.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import { type DocComment, DocInlineTag } from '@microsoft/tsdoc';
55
import { type ApiModel, type ApiItem, ApiItemKind, ApiDocumentedItem } from '@microsoft/api-extractor-model';
66

7-
import type { IConfigTableOfContents } from './IConfigFile';
8-
import type { IYamlTocItem, IYamlTocFile } from '../yaml/IYamlTocFile';
9-
import { YamlDocumenter } from './YamlDocumenter';
10-
import type { DocumenterConfig } from './DocumenterConfig';
7+
import type { IConfigTableOfContents } from './IConfigFile.ts';
8+
import type { IYamlTocItem, IYamlTocFile } from '../yaml/IYamlTocFile.ts';
9+
import { YamlDocumenter } from './YamlDocumenter.ts';
10+
import type { DocumenterConfig } from './DocumenterConfig.ts';
1111

1212
/**
1313
* EXPERIMENTAL - This documenter is a prototype of a new config file driven mode of operation for

apps/api-documenter/src/documenters/IConfigFile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
22
// See LICENSE in the project root for license information.
33

4-
import type { IYamlTocFile } from '../yaml/IYamlTocFile';
4+
import type { IYamlTocFile } from '../yaml/IYamlTocFile.ts';
55

66
/**
77
* Typescript interface describing the config schema for toc.yml file format.

apps/api-documenter/src/documenters/MarkdownDocumenter.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,22 @@ import {
4949
type IFindApiItemsResult
5050
} from '@microsoft/api-extractor-model';
5151

52-
import { CustomDocNodes } from '../nodes/CustomDocNodeKind';
53-
import { DocHeading } from '../nodes/DocHeading';
54-
import { DocTable } from '../nodes/DocTable';
55-
import { DocEmphasisSpan } from '../nodes/DocEmphasisSpan';
56-
import { DocTableRow } from '../nodes/DocTableRow';
57-
import { DocTableCell } from '../nodes/DocTableCell';
58-
import { DocNoteBox } from '../nodes/DocNoteBox';
59-
import { Utilities } from '../utils/Utilities';
60-
import { CustomMarkdownEmitter } from '../markdown/CustomMarkdownEmitter';
61-
import { PluginLoader } from '../plugin/PluginLoader';
52+
import { CustomDocNodes } from '../nodes/CustomDocNodeKind.ts';
53+
import { DocHeading } from '../nodes/DocHeading.ts';
54+
import { DocTable } from '../nodes/DocTable.ts';
55+
import { DocEmphasisSpan } from '../nodes/DocEmphasisSpan.ts';
56+
import { DocTableRow } from '../nodes/DocTableRow.ts';
57+
import { DocTableCell } from '../nodes/DocTableCell.ts';
58+
import { DocNoteBox } from '../nodes/DocNoteBox.ts';
59+
import { Utilities } from '../utils/Utilities.ts';
60+
import { CustomMarkdownEmitter } from '../markdown/CustomMarkdownEmitter.ts';
61+
import { PluginLoader } from '../plugin/PluginLoader.ts';
6262
import {
6363
type IMarkdownDocumenterFeatureOnBeforeWritePageArgs,
6464
MarkdownDocumenterFeatureContext
65-
} from '../plugin/MarkdownDocumenterFeature';
66-
import type { DocumenterConfig } from './DocumenterConfig';
67-
import { MarkdownDocumenterAccessor } from '../plugin/MarkdownDocumenterAccessor';
65+
} from '../plugin/MarkdownDocumenterFeature.ts';
66+
import type { DocumenterConfig } from './DocumenterConfig.ts';
67+
import { MarkdownDocumenterAccessor } from '../plugin/MarkdownDocumenterAccessor.ts';
6868

6969
export interface IMarkdownDocumenterOptions {
7070
apiModel: ApiModel;

apps/api-documenter/src/documenters/OfficeYamlDocumenter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import type { ApiModel } from '@microsoft/api-extractor-model';
99
import { FileSystem } from '@rushstack/node-core-library';
1010
import { Colorize } from '@rushstack/terminal';
1111

12-
import type { IYamlTocItem } from '../yaml/IYamlTocFile';
13-
import type { IYamlItem } from '../yaml/IYamlApiFile';
14-
import { YamlDocumenter } from './YamlDocumenter';
12+
import type { IYamlTocItem } from '../yaml/IYamlTocFile.ts';
13+
import type { IYamlItem } from '../yaml/IYamlApiFile.ts';
14+
import { YamlDocumenter } from './YamlDocumenter.ts';
1515

1616
interface ISnippetsFile {
1717
/**

apps/api-documenter/src/documenters/YamlDocumenter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ import type {
6060
IYamlReference,
6161
IYamlReferenceSpec,
6262
IYamlInheritanceTree
63-
} from '../yaml/IYamlApiFile';
64-
import type { IYamlTocFile, IYamlTocItem } from '../yaml/IYamlTocFile';
65-
import { Utilities } from '../utils/Utilities';
66-
import { CustomMarkdownEmitter } from '../markdown/CustomMarkdownEmitter';
67-
import { convertUDPYamlToSDP } from '../utils/ToSdpConvertHelper';
63+
} from '../yaml/IYamlApiFile.ts';
64+
import type { IYamlTocFile, IYamlTocItem } from '../yaml/IYamlTocFile.ts';
65+
import { Utilities } from '../utils/Utilities.ts';
66+
import { CustomMarkdownEmitter } from '../markdown/CustomMarkdownEmitter.ts';
67+
import { convertUDPYamlToSDP } from '../utils/ToSdpConvertHelper.ts';
6868
import typescriptSchema from '../yaml/typescript.schema.json';
6969

7070
const yamlApiSchema: JsonSchema = JsonSchema.fromLoadedObject(typescriptSchema);

0 commit comments

Comments
 (0)