From d8edebdbbf304b7ea0a8e58915822ff912b4a582 Mon Sep 17 00:00:00 2001 From: Tim Docker Date: Wed, 18 Jun 2025 11:24:03 +1000 Subject: [PATCH 1/3] fix the declare_and_export example --- type_reflect/examples/declare_and_export/declare_and_export.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/type_reflect/examples/declare_and_export/declare_and_export.rs b/type_reflect/examples/declare_and_export/declare_and_export.rs index c29d21d..df0ba62 100644 --- a/type_reflect/examples/declare_and_export/declare_and_export.rs +++ b/type_reflect/examples/declare_and_export/declare_and_export.rs @@ -120,7 +120,7 @@ fn main() { destinations: [ TypeScript( "./type_reflect/examples/declare_and_export/output/type_2.ts" - prefix: "import { Bar } from './bar.ts'", + prefix: "import { Bar } from './bar.ts';", tab_size: 2, ), From 41da1efd5bfabf83eb171c2e3c5672b670e6132f Mon Sep 17 00:00:00 2001 From: Tim Docker Date: Wed, 18 Jun 2025 11:39:24 +1000 Subject: [PATCH 2/3] remove git ignored example output --- .../examples/declare_and_export/output/zod.ts | 78 ------------------- 1 file changed, 78 deletions(-) delete mode 100644 type_reflect/examples/declare_and_export/output/zod.ts diff --git a/type_reflect/examples/declare_and_export/output/zod.ts b/type_reflect/examples/declare_and_export/output/zod.ts deleted file mode 100644 index 9ed4492..0000000 --- a/type_reflect/examples/declare_and_export/output/zod.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { z } from 'zod'; - - -export const SDParametersSchema = z.object({ - prompt: z.string(), - negativePrompt: z.string().optional(), - cfgScale: z.number(), - stepCount: z.number(), - seed: z.number(), - images: z.number(), - results: z.array(z.string()), - headers: z.map(z.string(), z.string()), -}); - -export type SDParameters = z.infer; - - -export enum SimpleEnumsExample { - Foo = "Foo", -} - -export const SimpleEnumsExampleSchema = z.enum([ - SimpleEnumsExample.Foo, -]) - - -export enum StatusCase { - Initial = "Initial", - InProgress = "InProgress", - Complete = "Complete", - Double = "Double", - Single = "Single", -} - - -export const StatusCaseInitialSchema = z.object({ - _case: z.literal(StatusCase.Initial), -}); -export type StatusCaseInitial = z.infer - -export const StatusCaseInProgressSchema = z.object({ - _case: z.literal(StatusCase.InProgress), - data: z.object({ - progress: z.number(), - shouldConvert: z.bool(), - })}); -export type StatusCaseInProgress = z.infer - -export const StatusCaseCompleteSchema = z.object({ - _case: z.literal(StatusCase.Complete), - data: z.object({ - urls: z.array(z.string()), - })}); -export type StatusCaseComplete = z.infer - -export const StatusCaseDoubleSchema = z.object({ - _case: z.literal(StatusCase.Double), - data: z.tuple([ - z.number(), - z.number(), - ])}); -export type StatusCaseDouble = z.infer - -export const StatusCaseSingleSchema = z.object({ - _case: z.literal(StatusCase.Single), - data: z.number()}); -export type StatusCaseSingle = z.infer - - -export const StatusSchema = z.union([ - StatusCaseInitialSchema, - StatusCaseInProgressSchema, - StatusCaseCompleteSchema, - StatusCaseDoubleSchema, - StatusCaseSingleSchema, -]); -export type Status = z.infer - From 6916c947f1752953835c84c2dc1c26b08845f3b6 Mon Sep 17 00:00:00 2001 From: Tim Docker Date: Wed, 18 Jun 2025 11:40:33 +1000 Subject: [PATCH 3/3] eliminate use of nightly features --- type_reflect/src/lib.rs | 3 -- .../src/type_script/untagged_enum_type.rs | 37 +++++++++---------- type_reflect_macros/src/lib.rs | 2 - 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/type_reflect/src/lib.rs b/type_reflect/src/lib.rs index ec438e6..ec5a943 100644 --- a/type_reflect/src/lib.rs +++ b/type_reflect/src/lib.rs @@ -1,6 +1,3 @@ -#![allow(incomplete_features)] -#![feature(specialization)] -#![feature(let_chains)] pub use core::convert::AsRef; use std::ffi::OsStr; use type_reflect_macros; diff --git a/type_reflect/src/type_script/untagged_enum_type.rs b/type_reflect/src/type_script/untagged_enum_type.rs index 4188cd6..41b54ac 100644 --- a/type_reflect/src/type_script/untagged_enum_type.rs +++ b/type_reflect/src/type_script/untagged_enum_type.rs @@ -113,13 +113,12 @@ fn emit_tuple_case_type_name( tuple_fields: &Vec, parent_name: &str, ) -> String { - if let Some(field) = tuple_fields.first() - && tuple_fields.len() == 1 - { - to_ts_type(&field) - } else { - union_case_type_name(case, parent_name) + if let Some(field) = tuple_fields.first() { + if tuple_fields.len() == 1 { + return to_ts_type(&field); + } } + union_case_type_name(case, parent_name) } fn emit_case_type(case: &EnumCase, parent_name: &str) -> String { @@ -152,21 +151,21 @@ fn emit_tuple_case_type_contentns( tuple_fields: &Vec, parent_name: &str, ) -> String { - if let Some(field) = tuple_fields.first() - && tuple_fields.len() == 1 - { - to_ts_type(&field) - } else { - let members: Vec = tuple_fields - .into_iter() - .map(|field| to_ts_type(&field)) - .collect(); - let members = members.join(", "); - - ts_string! { - [ #members ] + if let Some(field) = tuple_fields.first() { + if tuple_fields.len() == 1 { + return to_ts_type(&field); } } + + let members: Vec = tuple_fields + .into_iter() + .map(|field| to_ts_type(&field)) + .collect(); + let members = members.join(", "); + + ts_string! { + [ #members ] + } } fn emit_struct_case_type_contentns(case: &EnumCase, named_fields: &Vec) -> String { diff --git a/type_reflect_macros/src/lib.rs b/type_reflect_macros/src/lib.rs index b86dde9..507f2e3 100644 --- a/type_reflect_macros/src/lib.rs +++ b/type_reflect_macros/src/lib.rs @@ -1,5 +1,3 @@ -#![allow(incomplete_features)] -#![feature(specialization)] #![macro_use] // #![deny(unused)]