From 948fb795f2f94f891b8e33557af42676ab1ecb66 Mon Sep 17 00:00:00 2001 From: J M <2364004+Blu-J@users.noreply.github.com> Date: Fri, 17 Jun 2022 12:16:04 -0600 Subject: [PATCH] feat: uid/gid/mode added to metadata (#1551) --- .../package-data/scripts/test-package/0.3.0.3/embassy.js | 9 +++++++++ libs/artifacts/types.d.ts | 4 +++- libs/js_engine/src/lib.rs | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/backend/test/js_action_execute/package-data/scripts/test-package/0.3.0.3/embassy.js b/backend/test/js_action_execute/package-data/scripts/test-package/0.3.0.3/embassy.js index 8621c3abf..1af41d678 100644 --- a/backend/test/js_action_execute/package-data/scripts/test-package/0.3.0.3/embassy.js +++ b/backend/test/js_action_execute/package-data/scripts/test-package/0.3.0.3/embassy.js @@ -111,6 +111,15 @@ export async function getConfig(effects) { if (typeof metadata.len !== 'number' ) { throw new TypeError("len is not a number") } + if (typeof metadata.gid !== 'number' ) { + throw new TypeError("gid is not a number") + } + if (typeof metadata.uid !== 'number' ) { + throw new TypeError("uid is not a number") + } + if (typeof metadata.mode !== 'number' ) { + throw new TypeError("mode is not a number") + } if (!(metadata.modified instanceof Date )) { throw new TypeError("modified is not a Date") } diff --git a/libs/artifacts/types.d.ts b/libs/artifacts/types.d.ts index a1846e631..f8b0f58db 100644 --- a/libs/artifacts/types.d.ts +++ b/libs/artifacts/types.d.ts @@ -65,7 +65,6 @@ export type Effects = { }; export type Metadata = { - fileType: string, isDir: boolean, isFile: boolean, @@ -75,6 +74,9 @@ export type Metadata = { accessed?: Date, created?: Date, readonly: boolean, + uid: number, + gid: number, + mode: number } export type MigrationRes = { diff --git a/libs/js_engine/src/lib.rs b/libs/js_engine/src/lib.rs index 0545b90e0..6998dff58 100644 --- a/libs/js_engine/src/lib.rs +++ b/libs/js_engine/src/lib.rs @@ -73,6 +73,9 @@ pub struct MetadataJs { accessed: Option, created: Option, readonly: bool, + gid: u32, + mode: u32, + uid: u32, } #[cfg(target_arch = "x86_64")] @@ -338,6 +341,7 @@ mod fns { *, }; use serde_json::Value; + use std::os::unix::fs::MetadataExt; use std::{ cell::RefCell, @@ -420,6 +424,9 @@ mod fns { .as_ref() .and_then(system_time_as_unix_ms), readonly: answer.permissions().readonly(), + gid: answer.gid(), + mode: answer.mode(), + uid: answer.uid(), }; Ok(metadata_js)