Skip to content

Commit adf8749

Browse files
committed
build: drop tsx in favor of Node.js type stripping
1 parent b770032 commit adf8749

41 files changed

Lines changed: 125 additions & 408 deletions

Some content is hidden

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

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
22.13.0
1+
22.22.3

.oxlintrc.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "./node_modules/oxlint/configuration_schema.json",
3-
"plugins": ["eslint", "oxc", "react", "typescript", "unicorn"],
3+
"plugins": ["eslint", "import", "oxc", "react", "typescript", "unicorn"],
44
"options": {
55
// can't enable this and upgrade to tsgo due to upstream @docusaurus/tsconfig incompatibility
66
// https://github.com/facebook/docusaurus/issues/11893
@@ -10,12 +10,14 @@
1010
"correctness": "error"
1111
},
1212
"rules": {
13+
"import/extensions": ["error", "always", { "ignorePackages": true }],
1314
"no-unused-vars": [
1415
"warn",
1516
{
1617
"varsIgnorePattern": "^_"
1718
}
18-
]
19+
],
20+
"typescript/consistent-type-imports": "error"
1921
},
2022
"ignorePatterns": ["docs/**", "create-electron-documentation"]
2123
}

docusaurus.config.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import fs from 'node:fs';
22
import path from 'node:path';
33

4-
import logger from '@docusaurus/logger';
5-
import { Config } from '@docusaurus/types';
4+
import { logger } from '@docusaurus/logger';
5+
import type { Config } from '@docusaurus/types';
66
import type * as Preset from '@docusaurus/preset-classic';
77
import npm2yarn from '@docusaurus/remark-plugin-npm2yarn';
88
import { themes as prismThemes } from 'prism-react-renderer';
99
import remarkGithubAdmonitionsToDirectives, {
1010
DEFAULT_MAPPING,
1111
} from 'remark-github-admonitions-to-directives';
1212

13-
import apiLabels from './src/transformers/api-labels';
14-
import apiOptionsClass from './src/transformers/api-options-class';
15-
import apiStructurePreviews from './src/transformers/api-structure-previews';
16-
import jsCodeBlocks from './src/transformers/js-code-blocks';
17-
import fiddleEmbedder from './src/transformers/fiddle-embedder';
18-
import githubContentsLinks from './src/transformers/github-content-links';
19-
import apiHistory from './src/transformers/api-history';
13+
import apiLabels from './src/transformers/api-labels.ts';
14+
import apiOptionsClass from './src/transformers/api-options-class.ts';
15+
import apiStructurePreviews from './src/transformers/api-structure-previews.ts';
16+
import jsCodeBlocks from './src/transformers/js-code-blocks.ts';
17+
import fiddleEmbedder from './src/transformers/fiddle-embedder.ts';
18+
import githubContentsLinks from './src/transformers/github-content-links.ts';
19+
import apiHistory from './src/transformers/api-history.ts';
2020

2121
let docsSHA = undefined;
2222

package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
"scripts": {
1010
"crowdin": "crowdin",
1111
"i18n:upload": "crowdin upload sources --delete-obsolete",
12-
"i18n:download": "crowdin download --verbose && tsx scripts/prepare-i18n-content.ts",
13-
"i18n:glossary": "tsx scripts/update-crowdin-glossary.ts",
12+
"i18n:download": "crowdin download --verbose && node scripts/prepare-i18n-content.ts",
13+
"i18n:glossary": "node scripts/update-crowdin-glossary.ts",
1414
"i18n:build": "docusaurus build",
1515
"docusaurus": "docusaurus",
1616
"start": "docusaurus start",
@@ -21,13 +21,13 @@
2121
"serve": "docusaurus serve",
2222
"write-translations": "docusaurus write-translations",
2323
"write-heading-ids": "docusaurus write-heading-ids",
24-
"update-l10n-sources": "tsx scripts/update-l10n-sources.ts",
24+
"update-l10n-sources": "node scripts/update-l10n-sources.ts",
2525
"lint:fmt": "oxfmt --check .",
26-
"lint:oxlint": "oxlint src scripts",
26+
"lint:oxlint": "oxlint docusaurus.config.ts src scripts",
2727
"lint:markdown": "markdownlint-cli2 \"**/*.md\"",
2828
"lint": "tsc --noEmit && npm run lint:fmt && npm run lint:oxlint && npm run lint:markdown",
2929
"lint:fix": "oxfmt --write . && npm run lint:oxlint -- --fix && npm run lint:markdown -- --fix",
30-
"pre-build": "tsx ./scripts/pre-build.ts",
30+
"pre-build": "node ./scripts/pre-build.ts",
3131
"prepare": "husky"
3232
},
3333
"dependencies": {
@@ -92,7 +92,6 @@
9292
"satori": "^0.25.0",
9393
"sharp": "^0.34.5",
9494
"tar-stream": "^2.2.0",
95-
"tsx": "^4.19.3",
9695
"typescript": "^5.9.3",
9796
"unist-util-filter": "^5.0.1",
9897
"unist-util-visit-parents": "^6.0.1"

scripts/pre-build.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ import { existsSync } from 'fs';
77
import fs from 'fs/promises';
88
import path from 'path';
99

10-
import logger from '@docusaurus/logger';
10+
import { logger } from '@docusaurus/logger';
1111

12-
import { latestElectronVersion } from '../src/util/latest-electron-version';
12+
import { latestElectronVersion } from '../src/util/latest-electron-version.ts';
1313

14-
import { copyLocalDocumentation, download } from './tasks/download-docs';
15-
import { addFrontmatterToAllDocs } from './tasks/add-frontmatter';
16-
import { fixContent } from './tasks/md-fixers';
17-
import { copyNewContent } from './tasks/copy-new-content';
18-
import { preprocessApiHistory } from './tasks/preprocess-api-history';
14+
import { copyLocalDocumentation, download } from './tasks/download-docs.ts';
15+
import { addFrontmatterToAllDocs } from './tasks/add-frontmatter.ts';
16+
import { fixContent } from './tasks/md-fixers.ts';
17+
import { copyNewContent } from './tasks/copy-new-content.ts';
18+
import { preprocessApiHistory } from './tasks/preprocess-api-history.ts';
1919

20-
const DOCS_FOLDER = path.join(__dirname, '..', 'docs', 'latest');
20+
const DOCS_FOLDER = path.join(import.meta.dirname, '..', 'docs', 'latest');
2121

2222
/**
2323
*

scripts/prepare-i18n-content.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,18 @@
66
import fs from 'node:fs/promises';
77
import path from 'node:path';
88

9-
import logger from '@docusaurus/logger';
9+
import { logger } from '@docusaurus/logger';
1010

11-
import { addFrontmatterToAllDocs } from './tasks/add-frontmatter';
12-
import { fixContent } from './tasks/md-fixers';
13-
import config from '../docusaurus.config';
11+
import { addFrontmatterToAllDocs } from './tasks/add-frontmatter.ts';
12+
import { fixContent } from './tasks/md-fixers.ts';
1413

1514
const DOCS_FOLDER = path.join('docs', 'latest');
1615

1716
const start = async () => {
18-
const locales = new Set(config.i18n.locales);
17+
const config = await import(
18+
path.join(import.meta.dirname, '..', 'docusaurus.config.ts')
19+
);
20+
const locales = new Set(config.i18n?.locales);
1921
locales.delete('en');
2022
for (const locale of locales) {
2123
const localeDocs = path.join(

scripts/tasks/copy-new-content.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const newContent = new Map([['how-to-examples.md', 'tutorial/examples.md']]);
1010
export const copyNewContent = async (destination: string) => {
1111
for (const [source, target] of newContent) {
1212
await fs.copyFile(
13-
path.join(__dirname, source),
13+
path.join(import.meta.dirname, source),
1414
path.join(destination, target),
1515
);
1616
}

scripts/tasks/preprocess-api-history.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from 'node:fs/promises';
22

3-
import logger from '@docusaurus/logger';
4-
import Ajv, { JSONSchemaType, ValidateFunction } from 'ajv';
3+
import { logger } from '@docusaurus/logger';
4+
import Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
55
import { readFile, writeFile } from 'fs/promises';
66
import { fromHtml } from 'hast-util-from-html';
77
import type { Html, Root } from 'mdast';

scripts/update-crowdin-glossary.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import fs from 'node:fs/promises';
33
import path from 'node:path';
44

55
import { Glossaries, UploadStorage } from '@crowdin/crowdin-api-client';
6-
import logger from '@docusaurus/logger';
7-
import {
6+
import { logger } from '@docusaurus/logger';
7+
import type {
88
ParsedDocumentationResult,
99
ClassDocumentationContainer,
1010
ModuleDocumentationContainer,
@@ -16,10 +16,10 @@ import { toString } from 'mdast-util-to-string';
1616
import remarkParse from 'remark-parse';
1717
import { unified } from 'unified';
1818

19-
import { latestElectronVersion } from '../src/util/latest-electron-version';
19+
import { latestElectronVersion } from '../src/util/latest-electron-version.ts';
2020

21-
import { convertToCSV } from './utils/csv';
22-
import { Parent, Text } from 'mdast';
21+
import { convertToCSV } from './utils/csv.ts';
22+
import type { Parent, Text } from 'mdast';
2323

2424
dotenv.config();
2525
const GLOSSARY_ID = 66562;
@@ -118,7 +118,13 @@ async function collectElectronAPI() {
118118
*/
119119
async function collectElectronGlossary() {
120120
// Generate a Markdown AST from remark
121-
const source = path.join(__dirname, '..', 'docs', 'latest', 'glossary.md');
121+
const source = path.join(
122+
import.meta.dirname,
123+
'..',
124+
'docs',
125+
'latest',
126+
'glossary.md',
127+
);
122128
const md = await fs.readFile(source, 'utf8');
123129
const syntaxTree = unified().use(remarkParse).parse(md);
124130

scripts/update-l10n-sources.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
/**
2-
* This is a pre-hook task that checks if the files `docusaurus.config.js` or
2+
* This is a pre-hook task that checks if the files `docusaurus.config.ts` or
33
* `sidebars.js` have been modified and if so makes sure that the files
44
* needed for localization are regenerated.
55
*/
6-
import logger from '@docusaurus/logger';
6+
import { logger } from '@docusaurus/logger';
77

8-
import { getChanges } from './utils/git-commands';
9-
import { execute } from './utils/execute';
8+
import { getChanges } from './utils/git-commands.ts';
9+
import { execute } from './utils/execute.ts';
1010

11-
const files = ['docusaurus.config.js', 'sidebars.js'];
11+
const files = ['docusaurus.config.ts', 'sidebars.js'];
1212

1313
const start = async () => {
1414
logger.info(`Checking if the following files have been modified:

0 commit comments

Comments
 (0)