mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 04:39:10 +00:00
BREAKING: Remove Deno.EOF, use null instead (#4953)
This commit is contained in:
parent
47c2f034e9
commit
678313b176
46 changed files with 329 additions and 325 deletions
|
@ -17,8 +17,8 @@ Available Functions:
|
|||
```typescript
|
||||
sizeof(dataType: RawTypes): number
|
||||
getNBytes(r: Deno.Reader, n: number): Promise<Uint8Array>
|
||||
varnum(b: Uint8Array, o: VarnumOptions = {}): number | Deno.EOF
|
||||
varbig(b: Uint8Array, o: VarbigOptions = {}): bigint | Deno.EOF
|
||||
varnum(b: Uint8Array, o: VarnumOptions = {}): number | null
|
||||
varbig(b: Uint8Array, o: VarbigOptions = {}): bigint | null
|
||||
putVarnum(b: Uint8Array, x: number, o: VarnumOptions = {}): number
|
||||
putVarbig(b: Uint8Array, x: bigint, o: VarbigOptions = {}): number
|
||||
readVarnum(r: Deno.Reader, o: VarnumOptions = {}): Promise<number>
|
||||
|
|
|
@ -51,19 +51,16 @@ export async function getNBytes(
|
|||
): Promise<Uint8Array> {
|
||||
const scratch = new Uint8Array(n);
|
||||
const nRead = await r.read(scratch);
|
||||
if (nRead === Deno.EOF || nRead < n) throw new Deno.errors.UnexpectedEof();
|
||||
if (nRead === null || nRead < n) throw new Deno.errors.UnexpectedEof();
|
||||
return scratch;
|
||||
}
|
||||
|
||||
/** Decode a number from `b`, and return it as a `number`. Data-type defaults to `int32`.
|
||||
* Returns `EOF` if `b` is too short for the data-type given in `o`. */
|
||||
export function varnum(
|
||||
b: Uint8Array,
|
||||
o: VarnumOptions = {}
|
||||
): number | Deno.EOF {
|
||||
* Returns `null` if `b` is too short for the data-type given in `o`. */
|
||||
export function varnum(b: Uint8Array, o: VarnumOptions = {}): number | null {
|
||||
o.dataType = o.dataType ?? "int32";
|
||||
const littleEndian = (o.endian ?? "big") === "little" ? true : false;
|
||||
if (b.length < sizeof(o.dataType)) return Deno.EOF;
|
||||
if (b.length < sizeof(o.dataType)) return null;
|
||||
const view = new DataView(b.buffer);
|
||||
switch (o.dataType) {
|
||||
case "int8":
|
||||
|
@ -86,14 +83,11 @@ export function varnum(
|
|||
}
|
||||
|
||||
/** Decode an integer from `b`, and return it as a `bigint`. Data-type defaults to `int64`.
|
||||
* Returns `EOF` if `b` is too short for the data-type given in `o`. */
|
||||
export function varbig(
|
||||
b: Uint8Array,
|
||||
o: VarbigOptions = {}
|
||||
): bigint | Deno.EOF {
|
||||
* Returns `null` if `b` is too short for the data-type given in `o`. */
|
||||
export function varbig(b: Uint8Array, o: VarbigOptions = {}): bigint | null {
|
||||
o.dataType = o.dataType ?? "int64";
|
||||
const littleEndian = (o.endian ?? "big") === "little" ? true : false;
|
||||
if (b.length < sizeof(o.dataType)) return Deno.EOF;
|
||||
if (b.length < sizeof(o.dataType)) return null;
|
||||
const view = new DataView(b.buffer);
|
||||
switch (o.dataType) {
|
||||
case "int8":
|
||||
|
|
|
@ -64,12 +64,12 @@ async function readRecord(
|
|||
Startline: number,
|
||||
reader: BufReader,
|
||||
opt: ReadOptions = { comma: ",", trimLeadingSpace: false }
|
||||
): Promise<string[] | Deno.EOF> {
|
||||
): Promise<string[] | null> {
|
||||
const tp = new TextProtoReader(reader);
|
||||
const lineIndex = Startline;
|
||||
let line = await readLine(tp);
|
||||
|
||||
if (line === Deno.EOF) return Deno.EOF;
|
||||
if (line === null) return null;
|
||||
if (line.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ async function readRecord(
|
|||
// Hit end of line (copy all data so far).
|
||||
recordBuffer += line;
|
||||
const r = await readLine(tp);
|
||||
if (r === Deno.EOF) {
|
||||
if (r === null) {
|
||||
if (!opt.lazyQuotes) {
|
||||
quoteError = ERR_QUOTE;
|
||||
break parseField;
|
||||
|
@ -182,13 +182,13 @@ async function readRecord(
|
|||
}
|
||||
|
||||
async function isEOF(tp: TextProtoReader): Promise<boolean> {
|
||||
return (await tp.r.peek(0)) === Deno.EOF;
|
||||
return (await tp.r.peek(0)) === null;
|
||||
}
|
||||
|
||||
async function readLine(tp: TextProtoReader): Promise<string | Deno.EOF> {
|
||||
async function readLine(tp: TextProtoReader): Promise<string | null> {
|
||||
let line: string;
|
||||
const r = await tp.readLine();
|
||||
if (r === Deno.EOF) return Deno.EOF;
|
||||
if (r === null) return null;
|
||||
line = r;
|
||||
|
||||
// For backwards compatibility, drop trailing \r before EOF.
|
||||
|
@ -226,7 +226,7 @@ export async function readMatrix(
|
|||
|
||||
for (;;) {
|
||||
const r = await readRecord(lineIndex, reader, opt);
|
||||
if (r === Deno.EOF) break;
|
||||
if (r === null) break;
|
||||
lineResult = r;
|
||||
lineIndex++;
|
||||
// If fieldsPerRecord is 0, Read sets it to
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue