summaryrefslogtreecommitdiff
path: root/cli/js/ops/fs/truncate.ts
blob: d18e5d9d9a7a34279e766b955d335982fcf5d442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.

import { sendSync, sendAsync } from "../dispatch_json.ts";

function coerceLen(len?: number): number {
  if (len == null || len < 0) {
    return 0;
  }

  return len;
}

export function ftruncateSync(rid: number, len?: number): void {
  sendSync("op_ftruncate", { rid, len: coerceLen(len) });
}

export async function ftruncate(rid: number, len?: number): Promise<void> {
  await sendAsync("op_ftruncate", { rid, len: coerceLen(len) });
}

export function truncateSync(path: string, len?: number): void {
  sendSync("op_truncate", { path, len: coerceLen(len) });
}

export async function truncate(path: string, len?: number): Promise<void> {
  await sendAsync("op_truncate", { path, len: coerceLen(len) });
}