1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 23:59:59 -05:00

feat: stabilize Deno.utime() and Deno.utimeSync() (#16421)

This commit is contained in:
Colin Ihrig 2022-10-25 15:23:36 -04:00 committed by GitHub
parent 8e3f825c92
commit 378e6a8c03
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 52 deletions

View file

@ -49,8 +49,6 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[
"startTls",
"systemMemoryInfo",
"umask",
"utime",
"utimeSync",
"spawnChild",
"Child",
"spawn",

View file

@ -4026,6 +4026,46 @@ declare namespace Deno {
*/
export function fstat(rid: number): Promise<FileInfo>;
/**
* Synchronously changes the access (`atime`) and modification (`mtime`) times
* of a file system object referenced by `path`. Given times are either in
* seconds (UNIX epoch time) or as `Date` objects.
*
* ```ts
* Deno.utimeSync("myfile.txt", 1556495550, new Date());
* ```
*
* Requires `allow-write` permission.
*
* @tags allow-write
* @category File System
*/
export function utimeSync(
path: string | URL,
atime: number | Date,
mtime: number | Date,
): void;
/**
* Changes the access (`atime`) and modification (`mtime`) times of a file
* system object referenced by `path`. Given times are either in seconds
* (UNIX epoch time) or as `Date` objects.
*
* ```ts
* await Deno.utime("myfile.txt", 1556495550, new Date());
* ```
*
* Requires `allow-write` permission.
*
* @tags allow-write
* @category File System
*/
export function utime(
path: string | URL,
atime: number | Date,
mtime: number | Date,
): Promise<void>;
/** @category HTTP Server */
export interface RequestEvent {
readonly request: Request;

View file

@ -844,50 +844,6 @@ declare namespace Deno {
symbols: S,
): DynamicLibrary<S>;
/** **UNSTABLE**: needs investigation into high precision time.
*
* Synchronously changes the access (`atime`) and modification (`mtime`) times
* of a file system object referenced by `path`. Given times are either in
* seconds (UNIX epoch time) or as `Date` objects.
*
* ```ts
* Deno.utimeSync("myfile.txt", 1556495550, new Date());
* ```
*
* Requires `allow-write` permission.
* Needs investigation into high precision time.
*
* @tags allow-write
* @category File System
*/
export function utimeSync(
path: string | URL,
atime: number | Date,
mtime: number | Date,
): void;
/** **UNSTABLE**: New API, yet to be vetted.
*
* Changes the access (`atime`) and modification (`mtime`) times of a file
* system object referenced by `path`. Given times are either in seconds
* (UNIX epoch time) or as `Date` objects.
*
* ```ts
* await Deno.utime("myfile.txt", 1556495550, new Date());
* ```
*
* Requires `allow-write` permission.
* Needs investigation into high precision time.
*
* @tags allow-write
* @category File System
*/
export function utime(
path: string | URL,
atime: number | Date,
mtime: number | Date,
): Promise<void>;
/** **UNSTABLE**: New API, yet to be vetted.
*
* @category Sub Process

View file

@ -112,6 +112,8 @@
serveHttp: __bootstrap.http.serveHttp,
resolveDns: __bootstrap.net.resolveDns,
upgradeWebSocket: __bootstrap.http.upgradeWebSocket,
utime: __bootstrap.fs.utime,
utimeSync: __bootstrap.fs.utimeSync,
kill: __bootstrap.process.kill,
addSignalListener: __bootstrap.signals.addSignalListener,
removeSignalListener: __bootstrap.signals.removeSignalListener,
@ -133,8 +135,6 @@
listenDatagram: __bootstrap.netUnstable.listenDatagram,
Listener: __bootstrap.netUnstable.Listener,
umask: __bootstrap.fs.umask,
utime: __bootstrap.fs.utime,
utimeSync: __bootstrap.fs.utimeSync,
HttpClient: __bootstrap.fetch.HttpClient,
createHttpClient: __bootstrap.fetch.createHttpClient,
http: __bootstrap.http,

View file

@ -1955,8 +1955,6 @@ fn op_utime_sync(
mtime_secs: i64,
mtime_nanos: u32,
) -> Result<(), AnyError> {
super::check_unstable(state, "Deno.utime");
let path = PathBuf::from(&path);
let atime = filetime::FileTime::from_unix_time(atime_secs, atime_nanos);
let mtime = filetime::FileTime::from_unix_time(mtime_secs, mtime_nanos);
@ -1980,8 +1978,6 @@ async fn op_utime_async(
mtime_secs: i64,
mtime_nanos: u32,
) -> Result<(), AnyError> {
super::check_unstable(&state.borrow(), "Deno.utime");
let path = PathBuf::from(&path);
let atime = filetime::FileTime::from_unix_time(atime_secs, atime_nanos);
let mtime = filetime::FileTime::from_unix_time(mtime_secs, mtime_nanos);