aboutsummaryrefslogtreecommitdiffstats
path: root/src/git/util.ts
blob: 23fbd5429944fbaa95034abc3e163aa08bd558b3 (plain) (blame)
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
28
29
30
31
32
33
34
35
36
37
38
39
export const te = new TextEncoder();
export const td = new TextDecoder();
 
export function concat(parts: Uint8Array[]): Uint8Array {
  let len = 0;
  for (const p of parts) len += p.length;
  const out = new Uint8Array(len);
  let off = 0;
  for (const p of parts) {
    out.set(p, off);
    off += p.length;
  }
  return out;
}
 
export function toHex(b: Uint8Array): string {
  let s = "";
  for (let i = 0; i < b.length; i++) s += b[i].toString(16).padStart(2, "0");
  return s;
}
 
export function fromHex(s: string): Uint8Array {
  const out = new Uint8Array(s.length / 2);
  for (let i = 0; i < out.length; i++) out[i] = parseInt(s.slice(i * 2, i * 2 + 2), 16);
  return out;
}
 
export const ZERO_OID = "0".repeat(40);
 
export function isOid(s: string): boolean {
  return /^[0-9a-f]{40}$/.test(s);
}
 
export function sha1hex(data: Uint8Array): string {
  return toHex(sha1(data));
}
 
import { sha1 } from "./sha1";
export { sha1, Sha1 } from "./sha1";