Skip to content

Commit d923d0a

Browse files
authored
build: switch to esbuild-plugin-version-injector for injecting version strings (#8723)
1 parent 62332c2 commit d923d0a

20 files changed

+91
-13
lines changed

packages/builders/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"@vitest/coverage-c8": "^0.24.0",
6969
"cross-env": "^7.0.3",
7070
"downlevel-dts": "^0.10.1",
71+
"esbuild-plugin-version-injector": "^1.0.0",
7172
"eslint": "^8.24.0",
7273
"eslint-config-neon": "^0.1.35",
7374
"prettier": "^2.7.1",

packages/builders/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,12 @@ export * from './util/componentUtil.js';
4040
export * from './util/normalizeArray.js';
4141
export * from './util/validation.js';
4242
export * from '@discordjs/util';
43+
44+
/**
45+
* The [\@discordjs/builders](https://github.com/discordjs/discord.js/blob/main/packages/builders/#readme) version
46+
* that you are currently using.
47+
*
48+
* Note to developers: This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
49+
*/
50+
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
51+
export const version: string = '[VI]{{inject}}[/VI]';

packages/builders/tsup.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
12
import { createTsupConfig } from '../../tsup.config.js';
23

3-
export default createTsupConfig();
4+
export default createTsupConfig({
5+
esbuildPlugins: [esbuildPluginVersionInjector()],
6+
});

packages/collection/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
"@vitest/coverage-c8": "^0.24.0",
5757
"cross-env": "^7.0.3",
5858
"downlevel-dts": "^0.10.1",
59+
"esbuild-plugin-version-injector": "^1.0.0",
5960
"eslint": "^8.24.0",
6061
"eslint-config-neon": "^0.1.35",
6162
"prettier": "^2.7.1",

packages/collection/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
11
export * from './collection.js';
2+
3+
/**
4+
* The [\@discordjs/collection](https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme) version
5+
* that you are currently using.
6+
*
7+
* Note to developers: This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
8+
*/
9+
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
10+
export const version: string = '[VI]{{inject}}[/VI]';

packages/collection/tsup.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
12
import { createTsupConfig } from '../../tsup.config.js';
23

3-
export default createTsupConfig();
4+
export default createTsupConfig({
5+
esbuildPlugins: [esbuildPluginVersionInjector()],
6+
});

packages/rest/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"@vitest/coverage-c8": "^0.24.0",
6969
"cross-env": "^7.0.3",
7070
"downlevel-dts": "^0.10.1",
71+
"esbuild-plugin-version-injector": "^1.0.0",
7172
"eslint": "^8.24.0",
7273
"eslint-config-neon": "^0.1.35",
7374
"prettier": "^2.7.1",

packages/rest/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,12 @@ export * from './lib/RequestManager.js';
66
export * from './lib/REST.js';
77
export * from './lib/utils/constants.js';
88
export { makeURLSearchParams, parseResponse } from './lib/utils/utils.js';
9+
10+
/**
11+
* The [\@discordjs/rest](https://github.com/discordjs/discord.js/blob/main/packages/rest/#readme) version
12+
* that you are currently using.
13+
*
14+
* Note to developers: This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
15+
*/
16+
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
17+
export const version: string = '[VI]{{inject}}[/VI]';

packages/rest/src/lib/utils/constants.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ import process from 'node:process';
22
import { APIVersion } from 'discord-api-types/v10';
33
import { Agent } from 'undici';
44
import type { RESTOptions } from '../REST.js';
5-
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
6-
const Package = require('../../../package.json');
75

8-
export const DefaultUserAgent = `DiscordBot (${Package.homepage}, ${Package.version})`;
6+
export const DefaultUserAgent = `DiscordBot (https://discord.js.org, [VI]{{inject}}[/VI])`;
97

108
export const DefaultRestOptions: Required<RESTOptions> = {
119
get agent() {

packages/rest/tsup.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
12
import { createTsupConfig } from '../../tsup.config.js';
23

3-
export default createTsupConfig();
4+
export default createTsupConfig({
5+
esbuildPlugins: [esbuildPluginVersionInjector()],
6+
});

packages/voice/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"@types/node": "^16.11.64",
6969
"cross-env": "^7.0.3",
7070
"downlevel-dts": "^0.10.1",
71+
"esbuild-plugin-version-injector": "^1.0.0",
7172
"eslint": "^8.24.0",
7273
"eslint-config-neon": "^0.1.35",
7374
"jest": "^29.1.2",

packages/voice/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,12 @@ export {
1919
} from './VoiceConnection';
2020

2121
export { type JoinConfig, getVoiceConnection, getVoiceConnections, getGroups } from './DataStore';
22+
23+
/**
24+
* The [\@discordjs/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/#readme) version
25+
* that you are currently using.
26+
*
27+
* Note to developers: This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
28+
*/
29+
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
30+
export const version: string = '[VI]{{inject}}[/VI]';

packages/voice/src/util/generateDependencyReport.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ function findPackageJSON(
3333
*/
3434
function version(name: string): string {
3535
try {
36-
const pkg =
37-
name === '@discordjs/voice'
38-
? require('../../package.json')
39-
: findPackageJSON(dirname(require.resolve(name)), name, 3);
36+
if (name === '@discordjs/voice') {
37+
return '[VI]{{inject}}[/VI]';
38+
}
39+
40+
const pkg = findPackageJSON(dirname(require.resolve(name)), name, 3);
4041
return pkg?.version ?? 'not found';
4142
} catch {
4243
return 'not found';

packages/voice/tsup.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
12
import { createTsupConfig } from '../../tsup.config.js';
23

3-
export default createTsupConfig();
4+
export default createTsupConfig({
5+
esbuildPlugins: [esbuildPluginVersionInjector()],
6+
});

packages/ws/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"@vitest/coverage-c8": "^0.24.0",
7070
"cross-env": "^7.0.3",
7171
"downlevel-dts": "^0.10.1",
72+
"esbuild-plugin-version-injector": "^1.0.0",
7273
"eslint": "^8.24.0",
7374
"eslint-config-neon": "^0.1.35",
7475
"mock-socket": "^9.1.5",

packages/ws/src/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,12 @@ export * from './utils/IdentifyThrottler.js';
1111

1212
export * from './ws/WebSocketManager.js';
1313
export * from './ws/WebSocketShard.js';
14+
15+
/**
16+
* The [\@discordjs/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/#readme) version
17+
* that you are currently using.
18+
*
19+
* Note to developers: This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
20+
*/
21+
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
22+
export const version: string = '[VI]{{inject}}[/VI]';

packages/ws/src/utils/constants.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import process from 'node:process';
22
import { Collection } from '@discordjs/collection';
33
import { lazy } from '@discordjs/util';
44
import { APIVersion, GatewayOpcodes } from 'discord-api-types/v10';
5-
import { version } from '../../package.json';
65
import type { OptionalWebSocketManagerOptions, SessionInfo } from '../ws/WebSocketManager.js';
76

87
/**
@@ -19,7 +18,7 @@ export enum CompressionMethod {
1918
ZlibStream = 'zlib-stream',
2019
}
2120

22-
export const DefaultDeviceProperty = `@discordjs/ws ${version}`;
21+
export const DefaultDeviceProperty = `@discordjs/ws [VI]{{inject}}[/VI]`;
2322

2423
const getDefaultSessionStore = lazy(() => new Collection<number, SessionInfo | null>());
2524

packages/ws/tsup.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
12
import { createTsupConfig } from '../../tsup.config.js';
23

34
export default createTsupConfig({
@@ -6,4 +7,5 @@ export default createTsupConfig({
67
worker: 'src/strategies/sharding/worker.ts',
78
},
89
external: ['zlib-sync'],
10+
esbuildPlugins: [esbuildPluginVersionInjector()],
911
});

tsup.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export function createTsupConfig({
1515
keepNames = true,
1616
dts = true,
1717
sourcemap = true,
18+
esbuildPlugins = []
1819
} = {}) {
1920
return defineConfig({
2021
entry,
@@ -31,5 +32,6 @@ export function createTsupConfig({
3132
keepNames,
3233
dts,
3334
sourcemap,
35+
esbuildPlugins
3436
});
3537
}

yarn.lock

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,6 +2029,7 @@ __metadata:
20292029
cross-env: ^7.0.3
20302030
discord-api-types: ^0.37.12
20312031
downlevel-dts: ^0.10.1
2032+
esbuild-plugin-version-injector: ^1.0.0
20322033
eslint: ^8.24.0
20332034
eslint-config-neon: ^0.1.35
20342035
fast-deep-equal: ^3.1.3
@@ -2051,6 +2052,7 @@ __metadata:
20512052
"@vitest/coverage-c8": ^0.24.0
20522053
cross-env: ^7.0.3
20532054
downlevel-dts: ^0.10.1
2055+
esbuild-plugin-version-injector: ^1.0.0
20542056
eslint: ^8.24.0
20552057
eslint-config-neon: ^0.1.35
20562058
prettier: ^2.7.1
@@ -2207,6 +2209,7 @@ __metadata:
22072209
cross-env: ^7.0.3
22082210
discord-api-types: ^0.37.12
22092211
downlevel-dts: ^0.10.1
2212+
esbuild-plugin-version-injector: ^1.0.0
22102213
eslint: ^8.24.0
22112214
eslint-config-neon: ^0.1.35
22122215
file-type: ^18.0.0
@@ -2308,6 +2311,7 @@ __metadata:
23082311
cross-env: ^7.0.3
23092312
discord-api-types: ^0.37.12
23102313
downlevel-dts: ^0.10.1
2314+
esbuild-plugin-version-injector: ^1.0.0
23112315
eslint: ^8.24.0
23122316
eslint-config-neon: ^0.1.35
23132317
jest: ^29.1.2
@@ -2395,6 +2399,7 @@ __metadata:
23952399
cross-env: ^7.0.3
23962400
discord-api-types: ^0.37.12
23972401
downlevel-dts: ^0.10.1
2402+
esbuild-plugin-version-injector: ^1.0.0
23982403
eslint: ^8.24.0
23992404
eslint-config-neon: ^0.1.35
24002405
mock-socket: ^9.1.5
@@ -8654,6 +8659,15 @@ __metadata:
86548659
languageName: node
86558660
linkType: hard
86568661

8662+
"esbuild-plugin-version-injector@npm:^1.0.0":
8663+
version: 1.0.0
8664+
resolution: "esbuild-plugin-version-injector@npm:1.0.0"
8665+
dependencies:
8666+
"@sapphire/result": ^2.5.0
8667+
checksum: 2a6eb3f2b3d3d24c6ca8af28925ad8e6f6d0a75f41cdb089bd76c7a74fbd6948d8f64563aa58bd65751054a28be0cfc081a0f56102a1952a5ba4ac541c2ff336
8668+
languageName: node
8669+
linkType: hard
8670+
86578671
"esbuild-sunos-64@npm:0.14.47":
86588672
version: 0.14.47
86598673
resolution: "esbuild-sunos-64@npm:0.14.47"

0 commit comments

Comments
 (0)