Skip to content

Commit c02565e

Browse files
Enforce node: schema for builtins, import extensions
1 parent cc6b879 commit c02565e

File tree

2,096 files changed

+15048
-14116
lines changed

Some content is hidden

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

2,096 files changed

+15048
-14116
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ js/WebAudioRecorderMp3.js
2323
js/calling-tools/**
2424

2525
# TypeScript generated files
26+
build/**/*.js
2627
app/**/*.js
2728
ts/**/*.js
2829

.eslintrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,14 @@ const rules = {
100100

101101
// We prefer named exports
102102
'import/prefer-default-export': 'off',
103+
'import/enforce-node-protocol-usage': ['error', 'always'],
104+
'import/extensions': [
105+
'error',
106+
'ignorePackages',
107+
{
108+
checkTypeImports: true,
109+
},
110+
],
103111

104112
// Prefer functional components with default params
105113
'react/require-default-props': 'off',

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ts/sql/mainWorker.bundle.js.LICENSE.txt
3636
build/ICUMessageParams.d.ts
3737

3838
# React / TypeScript
39+
build/**/*.js
3940
app/*.js
4041
ts/**/*.js
4142
ts/protobuf/*.d.ts

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# supports `.gitignore`: https://github.com/prettier/prettier/issues/2294
33

44
# Generated files
5+
build/**/*.js
56
app/**/*.js
67
config/local-*.json
78
config/local.json

.storybook/main.ts

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ const config: StorybookConfig = {
5151
type: 'filesystem',
5252
};
5353

54-
config.resolve!.extensions = ['.tsx', '.ts', '...'];
54+
config.resolve!.extensionAlias = {
55+
'.js': ['.tsx', '.ts', '.js'],
56+
};
5557

5658
config.module!.rules!.unshift({
5759
test: /\.scss$/,
@@ -88,33 +90,12 @@ const config: StorybookConfig = {
8890

8991
config.node = { global: true };
9092

91-
config.externals = {
92-
net: 'commonjs net',
93-
vm: 'commonjs vm',
94-
fs: 'commonjs fs',
95-
async_hooks: 'commonjs async_hooks',
96-
module: 'commonjs module',
97-
stream: 'commonjs stream',
98-
tls: 'commonjs tls',
99-
dns: 'commonjs dns',
100-
http: 'commonjs http',
101-
https: 'commonjs https',
102-
os: 'commonjs os',
103-
constants: 'commonjs constants',
104-
zlib: 'commonjs zlib',
105-
'@signalapp/libsignal-client': 'commonjs @signalapp/libsignal-client',
106-
'@signalapp/libsignal-client/zkgroup':
107-
'commonjs @signalapp/libsignal-client/zkgroup',
108-
'@signalapp/ringrtc': 'commonjs @signalapp/ringrtc',
109-
'@signalapp/better-sqlite3': 'commonjs @signalapp/better-sqlite3',
110-
electron: 'commonjs electron',
111-
'fs-xattr': 'commonjs fs-xattr',
112-
fsevents: 'commonjs fsevents',
113-
'mac-screen-capture-permissions':
114-
'commonjs mac-screen-capture-permissions',
115-
sass: 'commonjs sass',
116-
bufferutil: 'commonjs bufferutil',
117-
'utf-8-validate': 'commonjs utf-8-validate',
93+
config.externals = ({ request }, callback) => {
94+
if (/^node:/.test(request) && request !== 'node:buffer') {
95+
// Keep Node.js imports unchanged
96+
return callback(null, 'commonjs ' + request);
97+
}
98+
callback();
11899
};
119100

120101
config.plugins!.push(

app/EmojiService.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import * as z from 'zod';
77
import { protocol } from 'electron';
88
import { LRUCache } from 'lru-cache';
99

10-
import type { OptionalResourceService } from './OptionalResourceService';
11-
import { SignalService as Proto } from '../ts/protobuf';
12-
import { parseUnknown } from '../ts/util/schemas';
10+
import type { OptionalResourceService } from './OptionalResourceService.js';
11+
import { SignalService as Proto } from '../ts/protobuf/index.js';
12+
import { parseUnknown } from '../ts/util/schemas.js';
1313

1414
const MANIFEST_PATH = join(__dirname, '..', 'build', 'jumbomoji.json');
1515

app/OptionalResourceService.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import PQueue from 'p-queue';
1212
import type {
1313
OptionalResourceType,
1414
OptionalResourcesDictType,
15-
} from '../ts/types/OptionalResource';
16-
import { OptionalResourcesDictSchema } from '../ts/types/OptionalResource';
17-
import { createLogger } from '../ts/logging/log';
18-
import { getGotOptions } from '../ts/updater/got';
19-
import { drop } from '../ts/util/drop';
20-
import { parseUnknown } from '../ts/util/schemas';
15+
} from '../ts/types/OptionalResource.js';
16+
import { OptionalResourcesDictSchema } from '../ts/types/OptionalResource.js';
17+
import { createLogger } from '../ts/logging/log.js';
18+
import { getGotOptions } from '../ts/updater/got.js';
19+
import { drop } from '../ts/util/drop.js';
20+
import { parseUnknown } from '../ts/util/schemas.js';
2121

2222
const log = createLogger('OptionalResourceService');
2323

app/PreventDisplaySleepService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// SPDX-License-Identifier: AGPL-3.0-only
33

44
import type { PowerSaveBlocker } from 'electron';
5-
import { createLogger } from '../ts/logging/log';
5+
import { createLogger } from '../ts/logging/log.js';
66

77
const log = createLogger('PreventDisplaySleepService');
88

app/SystemTrayService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { Menu, Tray, app, nativeImage, nativeTheme, screen } from 'electron';
66
import os from 'node:os';
77
import { join } from 'node:path';
88
import { readFileSync } from 'node:fs';
9-
import { createLogger } from '../ts/logging/log';
10-
import type { LocalizerType } from '../ts/types/I18N';
9+
import { createLogger } from '../ts/logging/log.js';
10+
import type { LocalizerType } from '../ts/types/I18N.js';
1111

1212
const log = createLogger('SystemTrayService');
1313

app/SystemTraySettingCache.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
// Copyright 2017 Signal Messenger, LLC
22
// SPDX-License-Identifier: AGPL-3.0-only
33

4-
import { createLogger } from '../ts/logging/log';
5-
import OS from '../ts/util/os/osMain';
4+
import { createLogger } from '../ts/logging/log.js';
5+
import OS from '../ts/util/os/osMain.js';
66
import {
77
parseSystemTraySetting,
88
SystemTraySetting,
9-
} from '../ts/types/SystemTraySetting';
10-
import { isSystemTraySupported } from '../ts/types/Settings';
11-
import type { ConfigType } from './base_config';
9+
} from '../ts/types/SystemTraySetting.js';
10+
import { isSystemTraySupported } from '../ts/types/Settings.js';
11+
import type { ConfigType } from './base_config.js';
1212

1313
const log = createLogger('SystemTraySettingCache');
1414

0 commit comments

Comments
 (0)