Support $schema in JSON structures (#974)

This commit is contained in:
Micah
2024-10-24 10:55:51 -07:00
committed by GitHub
parent 5ca1573e2e
commit d9ab0e7de8
4 changed files with 14 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
# Rojo Changelog
## Unreleased Changes
* Support for a `$schema` field in all special JSON files (`.project.json`, `.model.json`, and `.meta.json`) ([#974])
* Projects may now manually link `Ref` properties together using `Attributes`. ([#843])
This has two parts: using `id` or `$id` in JSON files or a `Rojo_Target` attribute, an Instance
is given an ID. Then, that ID may be used elsewhere in the project to point to an Instance
@@ -85,6 +86,7 @@
[#886]: https://github.com/rojo-rbx/rojo/pull/886
[#911]: https://github.com/rojo-rbx/rojo/pull/911
[#915]: https://github.com/rojo-rbx/rojo/pull/915
[#974]: https://github.com/rojo-rbx/rojo/pull/974
## [7.4.3] - August 6th, 2024
* Fixed issue with building binary files introduced in 7.4.2

View File

@@ -51,6 +51,9 @@ enum Error {
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(deny_unknown_fields, rename_all = "camelCase")]
pub struct Project {
#[serde(rename = "$schema", skip_serializing_if = "Option::is_none")]
schema: Option<String>,
/// The name of the top-level instance described by the project.
pub name: Option<String>,

View File

@@ -61,6 +61,9 @@ pub fn snapshot_json_model(
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct JsonModel {
#[serde(rename = "$schema", skip_serializing_if = "Option::is_none")]
schema: Option<String>,
#[serde(alias = "Name")]
name: Option<String>,

View File

@@ -13,6 +13,9 @@ use crate::{resolution::UnresolvedValue, snapshot::InstanceSnapshot, RojoRef};
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AdjacentMetadata {
#[serde(rename = "$schema", skip_serializing_if = "Option::is_none")]
schema: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
@@ -104,6 +107,9 @@ impl AdjacentMetadata {
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DirectoryMetadata {
#[serde(rename = "$schema", skip_serializing_if = "Option::is_none")]
schema: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,