src/Tools/VSCode/extension/src/file.ts
author wenzelm
Wed, 02 Mar 2022 21:53:17 +0100
changeset 75190 fa9ca4563d72
child 75191 fbff7bfd5802
permissions -rw-r--r--
support for file-system operations;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
75190
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     1
/*  Author:     Makarius
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     2
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     3
File-system operations (see Pure/General/file.scala)
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     4
*/
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     5
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     6
'use strict';
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     7
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     8
import * as fs from 'fs/promises'
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
     9
import { Buffer } from 'buffer'
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    10
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    11
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    12
export async function read_bytes(path: string): Promise<Buffer>
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    13
{
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    14
    return fs.readFile(path)
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    15
}
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    16
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    17
export async function read(path: string): Promise<string>
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    18
{
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    19
    return read_bytes(path).then(buffer => buffer.toString())
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    20
}
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    21
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    22
export async function read_json<T>(path: string): Promise<T>
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    23
{
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    24
    return read(path).then(JSON.parse) as Promise<T>
fa9ca4563d72 support for file-system operations;
wenzelm
parents:
diff changeset
    25
}