mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-13 09:10:14 +00:00
better parameters handling, implement import export
This commit is contained in:
parent
e4f38c76a9
commit
5198f7d83b
19 changed files with 250 additions and 174 deletions
|
|
@ -45,19 +45,23 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
for param in &command_params {
|
||||
writeln!(
|
||||
&mut command_params_init,
|
||||
r#"@{name} = await ctx.ParamResolve{extract_fn_name}("{name}") ?? throw new PKError("this is a bug"),"#,
|
||||
r#"@{name} = await ctx.ParamResolve{extract_fn_name}("{name}"){throw_null},"#,
|
||||
name = param.name().replace("-", "_"),
|
||||
extract_fn_name = get_param_param_ty(param.kind()),
|
||||
throw_null = param
|
||||
.is_optional()
|
||||
.then_some("")
|
||||
.unwrap_or(" ?? throw new PKError(\"this is a bug\")"),
|
||||
)?;
|
||||
}
|
||||
let mut command_flags_init = String::new();
|
||||
for flag in &command.flags {
|
||||
if let Some(kind) = flag.get_value() {
|
||||
if let Some(param) = flag.get_value() {
|
||||
writeln!(
|
||||
&mut command_flags_init,
|
||||
r#"@{name} = await ctx.FlagResolve{extract_fn_name}("{name}"),"#,
|
||||
name = flag.get_name().replace("-", "_"),
|
||||
extract_fn_name = get_param_param_ty(kind),
|
||||
extract_fn_name = get_param_param_ty(param.kind()),
|
||||
)?;
|
||||
} else {
|
||||
writeln!(
|
||||
|
|
@ -109,19 +113,20 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||
for param in &command_params {
|
||||
writeln!(
|
||||
&mut command_params_fields,
|
||||
r#"public required {ty} @{name};"#,
|
||||
r#"public required {ty}{nullable} @{name};"#,
|
||||
name = param.name().replace("-", "_"),
|
||||
ty = get_param_ty(param.kind()),
|
||||
nullable = param.is_optional().then_some("?").unwrap_or(""),
|
||||
)?;
|
||||
}
|
||||
let mut command_flags_fields = String::new();
|
||||
for flag in &command.flags {
|
||||
if let Some(kind) = flag.get_value() {
|
||||
if let Some(param) = flag.get_value() {
|
||||
writeln!(
|
||||
&mut command_flags_fields,
|
||||
r#"public {ty}? @{name};"#,
|
||||
name = flag.get_name().replace("-", "_"),
|
||||
ty = get_param_ty(kind),
|
||||
ty = get_param_ty(param.kind()),
|
||||
)?;
|
||||
} else {
|
||||
writeln!(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue