Skip to content

Commit 3c0a802

Browse files
authored
Remove sys.bufferFrom, duplicate Buffer declarations, etc (#57916)
1 parent 3c63740 commit 3c0a802

File tree

4 files changed

+8
-101
lines changed

4 files changed

+8
-101
lines changed

src/compiler/sys.ts

+2-95
Original file line numberDiff line numberDiff line change
@@ -1323,85 +1323,6 @@ export function patchWriteFileEnsuringDirectory(sys: System) {
13231323

13241324
export type BufferEncoding = "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex";
13251325

1326-
/** @internal */
1327-
export interface NodeBuffer extends Uint8Array {
1328-
constructor: any;
1329-
write(str: string, encoding?: BufferEncoding): number;
1330-
write(str: string, offset: number, encoding?: BufferEncoding): number;
1331-
write(str: string, offset: number, length: number, encoding?: BufferEncoding): number;
1332-
toString(encoding?: string, start?: number, end?: number): string;
1333-
toJSON(): { type: "Buffer"; data: number[]; };
1334-
equals(otherBuffer: Uint8Array): boolean;
1335-
compare(
1336-
otherBuffer: Uint8Array,
1337-
targetStart?: number,
1338-
targetEnd?: number,
1339-
sourceStart?: number,
1340-
sourceEnd?: number,
1341-
): number;
1342-
copy(targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
1343-
slice(begin?: number, end?: number): Buffer;
1344-
subarray(begin?: number, end?: number): Buffer;
1345-
writeUIntLE(value: number, offset: number, byteLength: number): number;
1346-
writeUIntBE(value: number, offset: number, byteLength: number): number;
1347-
writeIntLE(value: number, offset: number, byteLength: number): number;
1348-
writeIntBE(value: number, offset: number, byteLength: number): number;
1349-
readUIntLE(offset: number, byteLength: number): number;
1350-
readUIntBE(offset: number, byteLength: number): number;
1351-
readIntLE(offset: number, byteLength: number): number;
1352-
readIntBE(offset: number, byteLength: number): number;
1353-
readUInt8(offset: number): number;
1354-
readUInt16LE(offset: number): number;
1355-
readUInt16BE(offset: number): number;
1356-
readUInt32LE(offset: number): number;
1357-
readUInt32BE(offset: number): number;
1358-
readInt8(offset: number): number;
1359-
readInt16LE(offset: number): number;
1360-
readInt16BE(offset: number): number;
1361-
readInt32LE(offset: number): number;
1362-
readInt32BE(offset: number): number;
1363-
readFloatLE(offset: number): number;
1364-
readFloatBE(offset: number): number;
1365-
readDoubleLE(offset: number): number;
1366-
readDoubleBE(offset: number): number;
1367-
reverse(): this;
1368-
swap16(): Buffer;
1369-
swap32(): Buffer;
1370-
swap64(): Buffer;
1371-
writeUInt8(value: number, offset: number): number;
1372-
writeUInt16LE(value: number, offset: number): number;
1373-
writeUInt16BE(value: number, offset: number): number;
1374-
writeUInt32LE(value: number, offset: number): number;
1375-
writeUInt32BE(value: number, offset: number): number;
1376-
writeInt8(value: number, offset: number): number;
1377-
writeInt16LE(value: number, offset: number): number;
1378-
writeInt16BE(value: number, offset: number): number;
1379-
writeInt32LE(value: number, offset: number): number;
1380-
writeInt32BE(value: number, offset: number): number;
1381-
writeFloatLE(value: number, offset: number): number;
1382-
writeFloatBE(value: number, offset: number): number;
1383-
writeDoubleLE(value: number, offset: number): number;
1384-
writeDoubleBE(value: number, offset: number): number;
1385-
readBigUInt64BE?(offset?: number): bigint;
1386-
readBigUInt64LE?(offset?: number): bigint;
1387-
readBigInt64BE?(offset?: number): bigint;
1388-
readBigInt64LE?(offset?: number): bigint;
1389-
writeBigInt64BE?(value: bigint, offset?: number): number;
1390-
writeBigInt64LE?(value: bigint, offset?: number): number;
1391-
writeBigUInt64BE?(value: bigint, offset?: number): number;
1392-
writeBigUInt64LE?(value: bigint, offset?: number): number;
1393-
fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this;
1394-
indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
1395-
lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
1396-
entries(): IterableIterator<[number, number]>;
1397-
includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean;
1398-
keys(): IterableIterator<number>;
1399-
values(): IterableIterator<number>;
1400-
}
1401-
1402-
/** @internal */
1403-
export interface Buffer extends NodeBuffer {}
1404-
14051326
// TODO: GH#18217 Methods on System are often used as if they are certainly defined
14061327
export interface System {
14071328
args: string[];
@@ -1453,7 +1374,6 @@ export interface System {
14531374
/** @internal */ setBlocking?(): void;
14541375
base64decode?(input: string): string;
14551376
base64encode?(input: string): string;
1456-
/** @internal */ bufferFrom?(input: string, encoding?: string): Buffer;
14571377
/** @internal */ require?(baseDir: string, moduleName: string): ModuleImportResult;
14581378

14591379
// For testing
@@ -1492,11 +1412,6 @@ export let sys: System = (() => {
14921412
let activeSession: import("inspector").Session | "stopping" | undefined;
14931413
let profilePath = "./profile.cpuprofile";
14941414

1495-
const Buffer: {
1496-
new (input: string, encoding?: string): any;
1497-
from?(input: string, encoding?: string): any;
1498-
} = require("buffer").Buffer;
1499-
15001415
const isMacOs = process.platform === "darwin";
15011416
const isLinuxOrMacOs = process.platform === "linux" || isMacOs;
15021417

@@ -1627,9 +1542,8 @@ export let sys: System = (() => {
16271542
handle.setBlocking(true);
16281543
}
16291544
},
1630-
bufferFrom,
1631-
base64decode: input => bufferFrom(input, "base64").toString("utf8"),
1632-
base64encode: input => bufferFrom(input).toString("base64"),
1545+
base64decode: input => Buffer.from(input, "base64").toString("utf8"),
1546+
base64encode: input => Buffer.from(input).toString("base64"),
16331547
require: (baseDir, moduleName) => {
16341548
try {
16351549
const modulePath = resolveJSModule(moduleName, baseDir, nodeSystem);
@@ -1738,13 +1652,6 @@ export let sys: System = (() => {
17381652
}
17391653
}
17401654

1741-
function bufferFrom(input: string, encoding?: string): Buffer {
1742-
// See https://github.com/Microsoft/TypeScript/issues/25652
1743-
return Buffer.from && Buffer.from !== Int8Array.from
1744-
? Buffer.from(input, encoding)
1745-
: new Buffer(input, encoding);
1746-
}
1747-
17481655
function isFileSystemCaseSensitive(): boolean {
17491656
// win32\win64 are case insensitive platforms
17501657
if (platform === "win32" || platform === "win64") {

src/harness/harnessUtils.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as Harness from "./_namespaces/Harness";
22
import * as ts from "./_namespaces/ts";
33

44
export function encodeString(s: string): string {
5-
return ts.sys.bufferFrom!(s).toString("utf8");
5+
return Buffer.from(s).toString("utf8");
66
}
77

88
export function evalFile(fileContents: string, fileName: string, nodeContext?: any) {

src/harness/vfsUtil.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1459,10 +1459,10 @@ type FileDataBuffer = { encoding?: undefined; data: Buffer; } | { encoding: Buff
14591459
function ensureBufferEncoding(fileBuffer: FileDataBuffer, encoding: BufferEncoding | undefined) {
14601460
if (fileBuffer.encoding === encoding) return;
14611461

1462-
const buffer = !fileBuffer.encoding ? fileBuffer.data : ts.sys.bufferFrom!(fileBuffer.data, fileBuffer.encoding);
1462+
const buffer = !fileBuffer.encoding ? fileBuffer.data : Buffer.from(fileBuffer.data, fileBuffer.encoding);
14631463

14641464
fileBuffer.encoding = encoding;
1465-
fileBuffer.data = !encoding ? buffer as Buffer : buffer.toString(encoding);
1465+
fileBuffer.data = !encoding ? buffer : buffer.toString(encoding);
14661466
}
14671467

14681468
interface FileInode {

src/tsserver/nodeServer.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ export function initializeNodeSystem(): StartInput {
242242
}
243243
protected write(s: string, _type: ts.server.Msg) {
244244
if (this.fd >= 0) {
245-
const buf = sys.bufferFrom!(s);
245+
const buf = Buffer.from(s);
246246
// eslint-disable-next-line no-null/no-null
247-
fs.writeSync(this.fd, buf as globalThis.Buffer, 0, buf.length, /*position*/ null!); // TODO: GH#18217
247+
fs.writeSync(this.fd, buf, 0, buf.length, /*position*/ null!); // TODO: GH#18217
248248
}
249249
if (this.traceToConsole) {
250250
console.warn(s);
@@ -324,7 +324,7 @@ export function initializeNodeSystem(): StartInput {
324324
}
325325

326326
// Override sys.write because fs.writeSync is not reliable on Node 4
327-
sys.write = (s: string) => writeMessage(sys.bufferFrom!(s, "utf8") as globalThis.Buffer);
327+
sys.write = (s: string) => writeMessage(Buffer.from(s, "utf8"));
328328

329329
/* eslint-disable no-restricted-globals */
330330
sys.setTimeout = setTimeout;

0 commit comments

Comments
 (0)