From 7f07c9d1071d3aed0632078b9964350199a6704b Mon Sep 17 00:00:00 2001 From: AshleyFlow Date: Thu, 17 Oct 2024 12:30:31 +0330 Subject: [PATCH] validate every field in luaurc files --- crates/lune-std/src/luaurc.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/crates/lune-std/src/luaurc.rs b/crates/lune-std/src/luaurc.rs index 246e132..50fb066 100644 --- a/crates/lune-std/src/luaurc.rs +++ b/crates/lune-std/src/luaurc.rs @@ -1,5 +1,6 @@ use crate::path::get_parent_path; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; +use serde_json::Value as JsonValue; use std::{ collections::HashMap, env::current_dir, @@ -14,8 +15,27 @@ pub struct RequireAlias { pub path: String, } +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +enum LuauLanguageMode { + NoCheck, + NonStrict, + Strict, +} + #[derive(Debug, Clone, PartialEq, Deserialize)] pub struct Luaurc { + #[serde(skip_serializing_if = "Option::is_none")] + language_mode: Option, + #[serde(skip_serializing_if = "Option::is_none")] + lint: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + lint_errors: Option, + #[serde(skip_serializing_if = "Option::is_none")] + type_errors: Option, + #[serde(skip_serializing_if = "Option::is_none")] + globals: Option>, + #[serde(skip_serializing_if = "Option::is_none")] aliases: Option>, }