From cb727ddae2b3b7b1c7e61e436cae06e60823a5db Mon Sep 17 00:00:00 2001 From: Armaldio Date: Thu, 6 Feb 2025 12:21:37 +0100 Subject: [PATCH] fix combo parameter values --- README.md | 2 +- examples/example.c3p | Bin 179815 -> 180503 bytes src/instance.js | 13 +-- src/pluginConfig.js | 8 +- src/sdk.d.ts | 239 +++++++++++++++++++++++-------------------- 5 files changed, 140 insertions(+), 122 deletions(-) diff --git a/README.md b/README.md index 4af9b53..7b42093 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A plugin that integrate with Pipelab
Author: Armaldio
Website: https://github.com/CynToolkit/construct-plugin
Addon Url: https://github.com/CynToolkit/construct-plugin
-Download Latest Version : [Version: 1.7.1](https://github.com/CynToolkit/construct-plugin/releases/latest)
+Download Latest Version : [Version: 1.8.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
Made using [c3ide2-framework](https://github.com/ConstructFund/c3ide2-framework)
## Table of Contents diff --git a/examples/example.c3p b/examples/example.c3p index 6247307086ee448764aac8ef934bb67ec0efea3e..f22c557aea7b62b8c5b52b5a1dcc1813765a36e5 100644 GIT binary patch delta 16255 zcmb_j1yq&Y(uPBKhjfQ@gEZ3J-Q6iEcql0e;Q&YJMnFI*=~6%%2|+?Slm-FmpOAYm z_+8icukW%J4tsg#nc1`FoxS%v&sjb}1P3CaD9b@XGeN+^!$a`tOU9y50nwi4SRq1? zL0tYoLf}J?eOFBl^qPRYD=W2CoF;gYpLjfxm|3o};*T~vC|<>#^e1oQ~MBFgie_x)q z474kQejrg^4F@Y81pE?{%?tlJ5;Pcn>f75-U4*!>Tr)HN>ON1ShB6M%*a|X{s?7_; zJ@_tD^?1}2jTH9kEOqB~qy6Pz8|(OQxTmGd-olU5mJcnNQai_UD`&igRFV8d6o-!} z*>VE(A}TYcW1n|124}N%subXs)C?p__5*j*`k!={V=560XHE$IP^xl=_WX8a~DqPXpEmJx1|~kI9C+_`i7-`{R$f zJvQ35Q%MXSf_>rtat8K+q+xZfA$%s28W5%i!*;5f=am87#Lw|_{yZ93X>Ur`)(w1} zpxVmtVS?b3?dTV6`8c-O?;0IS+)yvSH$Mtspbr>gRw1ve=a2P5muNB8XXEa~ zfjD@aCdbu3I%2;8SYTh#>nFxco^CbdVr~Tc8M0Z<>N`Jt{;mr*350pCF)p%+y&w2d zSA8i8y3wWe$xjj~Z2%7lrdcmUNatx|6~U&SnppJ|k&{GURv(V+P$a6>K}2zF`%hi< z6cWLr*PKgI{kjw|Ex2m{iY;!Ef;`7bSSezie0So0H0cv z2(6q9scgZ#BJL-h?kt&1wh9q#wn-v#C~YLX8U_GAs7}KcnQN44wbO%Y6%^JkRTIa+*46( z+NR#(Rj2fHzeY84#F-3u{ybhTuF1wp)&(bbNwlb+>)jdeqNXxOM<;7XDh@hQ!t;Ga zhZ(@1N=t|ff}t%Q;L$xj>a!t`Y%1BFLS=s=%;mWGtzSS(8L(M@-|=z3V)l2>_H^06 zHT0BL`Ro8xMvJMS&kw^Hj1Trrfe#JW_`c{DD=WFSPMSMT>)mtAaD01GqkRNEoiU9^ zh0`IR2@>Uwm>(X2Iac(hgon|XK6-4qjAJ%l$zTLsyo(qK$%R$qwq8&C>QoIQ#L|Ha zPn$7mfLuT(vj;zlpF5%8u{%(5r$g+^o<7o&>B7D+@8j)Bi)ZHIEc?Un%YpBg6&nV( z-uPpVBh=--WIib&&P1;!=ccYef|^xd7Uzca3e+KIV9@62eP#6VyJ8Cw_7>5&SBjjn zTOA)R|AafwQDy-kH)DjmFd{x9EP#7ou3^cWBPu>_L}rHY>ArkyZOeXv*PMqFfeiw7 zQ5i1%3^w*oR%P`BVyg;Lb};aRZ)6W|v0qegvAYTodi$ienglxFcxU#IT1O$rPs#Z- zW3`p#SOq;_u}eQhp{G`Hzy~imN7FbLD;bu%N>XDFbx};^E!9tV_Re)nF6z-u#8O@j zz&Aw`lSq3H2u=4vwinfCtO>3J4hXMyp}ygmQF!uCNWx6auklc4Da;7dtCqhhiXO~( zc8;RWXzv(95!$a}Q!c1j<-RF+j@E$AC20q9Rh%KTFt6pU5)K-Nx&OCocq&-MiGU5c zqY1I=ecDQehaFd@4dzn{h3~qrIh^xvXt`Z zxj>iKNwTtdz4*O46@`276N3g~oo$4`^0HU!^jc^qZ|v_cyGZgj;YTUUc^P~j_u23! z87NBZa)Evt-nNth@8tmeg0V_rAGatVoR#R_P_n$$%hBywDSTdAA=QU%Rwk9?fNr!B zVfs}EC~>x5u=nI>zetOxr(~wm%wil=ga|B0(MQW3j(YK_7G%dC%Doxea%9ri8OTyc z_PqHuL*7|mO2*j~+)I5%x}30qm#lCV20O2w`n478?z1{uBw-TAkd2vv@)?Vt!NLqt zNNn042>61lbI4+4pKs7ITFWYVNpUZG1Els@qpiZ(^``{$*5E?9x%gtkjlj)Yyivez zEwv|NMffS?MAf%XaJN=8Rk_~QlJT6+7? ze6=?S2f&cHsv>sL7lvi9Lp;h^O%Y4ukCOJGNMca-5zW}wF&zAM`am<}5@mpS##Ljd zKH3*?nep!}MbtRW?WWc7&^>$)DuaOMG3g%5`^f!!(7s(!AQzL}c(W?_oYlH%)#wyf z-x!CkHQ)!DqU}r!O)gv-MvePU%7gYX(MpX^9&yipc%0dX>aVDXmMN4@1d&QYDwgUe z6NLOw(Zko=tH=H0RCES=FWRc%lhrR{h7FvCx^2aYDfZ8QdLf>tLC*-r+t!>=Ac0R1 znuh?_kB1lPUp*#R2rM*z@2CT^MxcVaI2?gYFz`Tm2zdX0HDVAgBF5iUGepd}vi5+M zm{U>9){WWL&B;+i9R>pOuDh%lYF8(-+Y+RSRDf~euI}}$um2?h#o}OtsE{##^WwJh z1myJ?q>o&7sfELr^DJXMA;@Sj*Rm1weoEV+QPpM?d7U8-^2dRW=5gamCf4{ zbad}p%>;uO)J5?7Bl+gjwc2e7f+Q^Y*FyFa{=N=d4%S!JZc7jf(RG5h67l@zAbS0^ z%54cEC9b@(G)m0+n+hwU&6Sng62wGu9miRc-wT?5@3qQp3F0Qbp3gEV|8G_@2yL$; zcT0k#$*vrWBj^52W9#d+#%&4GC;wMIfmkShUm|oSyDLMtCCG-N^eO_gB*Y+I%HQji z@z%B4Z3%LwyjHtR2w|$jq%Apgc^Mc~Cr>2zF5J`}|v!ugOhyGCNsa zh3-{d+!imbB#;;O?RAX{KA?=5aISR{K5o`3PKBE?S&!yrcPC5O;+DtiT}MvLuy~{z z-p!SWySYVWmVCf#cXSHr0SG;dzu3U;U2bAE*E<=+?bEIx9m8*@-DWwbt3ckB>#2Hf z6WqA|>5E1!v%7^s$8Amqv|oB7%fF4i^x)w4^B32i!-cJ;qMG=&(6sqHo(^-)ar~_; zoGr;*7`itqWZLG8E9wU$7Rv&Sg9i=rgLZoh+(H50fJV%g1u9CluLrvqjPT08lwSPK z2pG_02sv=eO=*HH(rl6qX)>4!xu30W?4(bWO==o`$^H6l5+Su$^<16P6nNjQRCq<| zoQ9_sM<_X0;v1sDQGJcGXXk8ETl-_H1KNJoQc^!!hJvTmem3R9{8qk(!^=d7Zpp{` z_jWm_`Ia;qSu3rL93OcGR@s_7!o@9$^4#UOI<4;#CN`+hUtMJBmGJCR58V+Uv^65o z&`?m(+wnHqQ*Z;N(&GX5&r}k;{dN_0-Lvp~imPfELUWJpzVd>;?G%q5oN}K7kE{xw zFvj;rPpp*0?!}~j`!OLf6yxMjbiYA|GC_gDvcPBotINsVVX~%2u2_2|ci#hZ=lR1x{=n)hEB{jS;r(=?|U3pFrL1%_8O@W^< zg_RPWXMPBTZ>Gt={LHYi56$q2RW`$U!@>B`xMZT13;QlMkL68}rhr~5@w^{6^Rj}1gDmNAZkMX^Jjn{&n0 z;bF&+L^yyY!jjglBP+a_HTNrbj;Oi;#jo77@!=_XpUWbD-=d_B3+sG&iN;|fMVYNH zUH4^-!4p_&zdz|{X$BHejjxA(O9;Ra5tF4yka9j6>%H*OTQm&WD^oz$*s-#yxOcNA zsO-A{CbThnK|s734Ic)&Dn(vDI{pPF%TGoifNO7U-rNqNSKV@3iV?CNf|nfvZqz0o z9f^vy&DY0Sa<2nk5q~c75qr5uN#Q(KuAz^XkRL)SF-0hx3V!AA>Z#dSw_KU>O!zE) zW!F+)Qa+_fp%@{D(-z;6qmkXT-sVrtuqG^C>|kjGbbPT^n8e5i5zWhB1|azqo&iOi z(1@&z1f55{N9?&?rG1eZagD2M%)qas#SWIZhoen#pU)(&QDkYk`ivuky3ZnrARbFT z$d*lJ1cXI>--Ha?6_IX1nk)qRB~ik~YG+}>ip`rZeztQ5t|xY#46J3@=^lAco+upW zU?kh$HyBTArh`Nb%v8sWKxoFqlmrg^a7n$)66_yb*>aA^zUvSMBbNI?JFBBH-izt{ zLUuXShX$&2O^QE6%;SFq^NV5N`6Dt@;ic4z9B>p0%lZVuE0HFIZPk2ohjWQre5b3- z@h+U;1z8jXR9G;!zq1(M3n49^i_C5gwt;qu9{pOgPH$b%_Mu<)xsX2$I*>>t08%tw zp$VDwA`>)QHNNxec;`m#=V#>NU<W}yt+N$mM zvcseU@~kZM&-vb9+AQzraRZTl09Z!UG=xW+tCpX&4O&QX>l1noZN}HIhuV28eN8@i zIr-gtR3y}gCFLG@GXsbvCL(716&A-)fnD}{C|8TKPMy*o{g=KLo9>SfB&YWVk*eH} z8Q;6rGoa=R#23=(P82H864oYqC(Emxe->k!JYa9z%`M-RJ1FkA} z^uuqJpY$p@G@Ny<1~)8<8@)lt%mlzlrn7}cs-Cd(CE33B3DA7($TFh-5D=^%oO#~9 zbW9U2JV(|?!0qS+168#KsXqGdQY|mZw3?Fx*yhy%oe*9DqMaAnwnY_x@jp{&N1EME z(F>DAGS7La*&s2U+u?D`%6Ab)WiB3#73pY?qqI6&m!gDEPTcL2%yPx+U|@Y0ULa0! z^@5|BJlAtPvjIS8)0b9=4ovu9wiZ*Lu8U=q)~Ob*)_PgWZt3#L*TIE+rz zt%@ad;qPe+KjdXR@}etD>{=mQ+{;|)OOQJ~Yx$g=p->R2D(Apqu;j5WkqE_r=pE_Sn1=RrWxONwJrP%cqA~ zHW3xNwnfWDsyM5*Uro7LQg`_|2PapLgT4%J65A@-b~6+F+;4}&m%BA~TWcK^{ceK%S?htqXko}k(v?tby=dnSOPXZ`0e-WIDhAK|ahJ*KwT^54gw z2N$m-gxNTN=yw}7+|F0WAF?}gJ$b@$f)_o+sBNar5CuT|eGCH^M%U~U%7AH*!hj>j z&%nfXZoMRI=?CFhKc|p%;>@gubY;iL6x+1|Kg9k-Yr03`_ue(zjZ-nhuOCIuk=yaj z!bu1{Q0QUen;75BS-dHq&e|~;(3>3Ob2eVH7TIH z;FD^aHABik1a%AMiv=W3cS22;vmxvCuVu%Ten3X#2QAF~DBxxqN%Ju)kUff_7WF%=e7$PF_?abF10Pz{Z*{Y)wqDEEF(VgS)7m|2 z(KIW;pf1QL0#dHCr}2C4li1$-z&H%Gl|LS>Si4o}Z%niGky^#j6wf}tn16uG-n z%et#N4_B0`XH|EKG+ll&_s0^JsM=#hG*Nm03CQqTBVs?8X*A@rCpGVMP66SHlznq7}w3Vn*IYzep@ zXBE0IG*ojc_wzl#n}ipNbNEo-LEnTvUIFYRbI1on6%*khdRnIHfjCkYxW8^(;NVw+ZN z4_m`neFP*qsi`6bjDPrOeF,f37~gWY}1`2x*`Q^~s@O3Dd7do=7*-w#Z5ywX@8 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 delta 15563 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 diff --git a/src/instance.js b/src/instance.js index 4884bc6..62f387c 100644 --- a/src/instance.js +++ b/src/instance.js @@ -515,7 +515,7 @@ export function getInstanceJs(parentClass, addonTriggers, C3) { const order = { url: '/window/set-always-on-top', body: { - value: mode === 'enable' ? true : false + value: mode === 1 ? true : false } } @@ -565,7 +565,7 @@ export function getInstanceJs(parentClass, addonTriggers, C3) { const order = { url: '/window/set-resizable', body: { - value: resizable === 'enable' ? true : false + value: resizable === 1 ? true : false } } @@ -625,7 +625,7 @@ export function getInstanceJs(parentClass, addonTriggers, C3) { const order = { url: '/window/show-dev-tools', body: { - value: toggle === 'show' ? true : false + value: toggle === 1 ? true : false } } @@ -637,7 +637,7 @@ export function getInstanceJs(parentClass, addonTriggers, C3) { const order = { url: '/window/set-fullscreen', body: { - value: toggle + value: toggle === 0 ? 'normal' : 'fullscreen' } } @@ -1236,8 +1236,9 @@ export function getInstanceJs(parentClass, addonTriggers, C3) { }) _IsEngine = this.wrap(super._IsEngine, (engine) => { - // console.log('engine', engine) - return this._engine === engine + if (engine === 0 && this._engine === 'electron') return true + if (engine === 1 && this._engine === 'tauri') return true + return false }) _LastPathExists = this.wrap(super._LastPathExists, () => { diff --git a/src/pluginConfig.js b/src/pluginConfig.js index 2c297e7..e8fabbc 100644 --- a/src/pluginConfig.js +++ b/src/pluginConfig.js @@ -719,8 +719,8 @@ const Config = /** @type {const} */({ name: "Mode", type: 'combo', items: [ - { "enable": "Not always on top" }, { "disable": "Always on top" }, + { "enable": "Not always on top" }, ] } ], @@ -816,8 +816,8 @@ const Config = /** @type {const} */({ name: "Resizable", type: 'combo', items: [ - { "enable": "Not resizable" }, { "disable": "Resizable" }, + { "enable": "Not resizable" }, ] } ], @@ -919,8 +919,8 @@ const Config = /** @type {const} */({ name: "Show", type: 'combo', items: [ - { "show": "Show dev tools" }, { "hide": "Hide dev tools" }, + { "show": "Show dev tools" }, ] } ], @@ -959,7 +959,7 @@ const Config = /** @type {const} */({ } ], listName: "Set Fullscreen", - displayText: "Set fullscreen {0}", + displayText: "Set fullscreen state to \"{0}\"", description: "Change fullscreen state", } }, diff --git a/src/sdk.d.ts b/src/sdk.d.ts index 43bc316..4978e65 100644 --- a/src/sdk.d.ts +++ b/src/sdk.d.ts @@ -3,60 +3,63 @@ declare global { const sdk: "v1" | "v2"; } -type Config = import("c3ide2-types").Plugin +type Config = import("c3ide2-types").Plugin; // TODO: -type ActionParam = Required['Acts'][string]>['params'][number] +type ActionParam = Required["Acts"][string]>["params"][number]; -type C3Plugin = typeof import('./pluginConfig').default +type C3Plugin = typeof import("./pluginConfig").default; declare const cndsSymbol: unique symbol; -type OpaqueCnds = { readonly [cndsSymbol]: 'Cnds' }; +type OpaqueCnds = { readonly [cndsSymbol]: "Cnds" }; declare const actsSymbol: unique symbol; -type OpaqueActs = { readonly [actsSymbol]: 'Acts' }; +type OpaqueActs = { readonly [actsSymbol]: "Acts" }; declare const expsSymbol: unique symbol; -type OpaqueExps = { readonly [expsSymbol]: 'Exps' }; +type OpaqueExps = { readonly [expsSymbol]: "Exps" }; type Reverser> = { - [P in keyof T as T[P]]: P -} + [P in keyof T as T[P]]: P; +}; -type ActsKeys = keyof C3Plugin['Acts'] +type ActsKeys = keyof C3Plugin["Acts"]; type ActsAssoc = { - [key in ActsKeys]: C3Plugin['Acts'][key]['forward'] -} -type ActsAssocReversed = Reverser -type Acts = C3Plugin['Acts'][ActsKeys]['forward'] + [key in ActsKeys]: C3Plugin["Acts"][key]["forward"]; +}; +type ActsAssocReversed = Reverser; +type Acts = C3Plugin["Acts"][ActsKeys]["forward"]; -type CndsKeys = keyof C3Plugin['Cnds'] +type CndsKeys = keyof C3Plugin["Cnds"]; type CndsAssoc = { - [key in CndsKeys]: C3Plugin['Cnds'][key]['forward'] -} -type CndsAssocReversed = Reverser -type Cnds = C3Plugin['Cnds'][CndsKeys]['forward'] + [key in CndsKeys]: C3Plugin["Cnds"][key]["forward"]; +}; +type CndsAssocReversed = Reverser; +type Cnds = C3Plugin["Cnds"][CndsKeys]["forward"]; -type ExpsKeys = keyof C3Plugin['Exps'] +type ExpsKeys = keyof C3Plugin["Exps"]; type ExpsAssoc = { - [key in ExpsKeys]: C3Plugin['Exps'][key]['forward'] -} -type ExpsAssocReversed = Reverser -type Exps = C3Plugin['Exps'][ExpsKeys]['forward'] + [key in ExpsKeys]: C3Plugin["Exps"][key]["forward"]; +}; +type ExpsAssocReversed = Reverser; +type Exps = C3Plugin["Exps"][ExpsKeys]["forward"]; type Awaitable = T | PromiseLike; -type GetActsParams = C3Plugin['Acts'][ActsAssocReversed[T]] extends { params: Array } - ? C3Plugin['Acts'][ActsAssocReversed[T]]['params'] - : never +type GetActsParams = + C3Plugin["Acts"][ActsAssocReversed[T]] extends { params: Array } + ? C3Plugin["Acts"][ActsAssocReversed[T]]["params"] + : never; -type GetCndsParams = C3Plugin['Cnds'][CndsAssocReversed[T]] extends { params: Array } - ? C3Plugin['Cnds'][CndsAssocReversed[T]]['params'] - : never +type GetCndsParams = + C3Plugin["Cnds"][CndsAssocReversed[T]] extends { params: Array } + ? C3Plugin["Cnds"][CndsAssocReversed[T]]["params"] + : never; -type GetExpsParams = C3Plugin['Exps'][ExpsAssocReversed[T]] extends { params: Array } - ? C3Plugin['Exps'][ExpsAssocReversed[T]]['params'] - : never +type GetExpsParams = + C3Plugin["Exps"][ExpsAssocReversed[T]] extends { params: Array } + ? C3Plugin["Exps"][ExpsAssocReversed[T]]["params"] + : never; type DeepWriteable = { -readonly [P in keyof T]: DeepWriteable }; @@ -86,36 +89,47 @@ interface ActionParamBase { allowedPluginIds?: string[]; } -interface ActionParamCombo extends Omit { - type: "combo" +interface ActionParamCombo extends Omit { + type: "combo"; items: Array<{ [key: string]: string }>; } -type ActionParam = - | ActionParamBase - | ActionParamCombo +type ActionParam = ActionParamBase | ActionParamCombo; + +type UnionToIntersection = (U extends any ? (x: U) => void : never) extends ( + x: infer I +) => void + ? I + : never; -type UnionToIntersection = - (U extends any ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never +type BuildUnion< + N extends number, + Acc extends number[] = [] +> = Acc['length'] extends N + ? Acc[number] + : BuildUnion; +// ArrayUnion accepts an array type and returns the union 0 | 1 | ... | N. +type ArrayUnion = BuildUnion; -type ActionParamToType = T['type'] extends 'string' +type ActionParamToType = T["type"] extends "string" ? string - : T['type'] extends 'number' + : T["type"] extends "number" ? number - : T['type'] extends 'boolean' + : T["type"] extends "boolean" ? boolean - : T['type'] extends 'object' + : T["type"] extends "object" ? import("./sdk").IObjectClass - : T['type'] extends 'combo' - ? keyof UnionToIntersection> - : never + : T["type"] extends "combo" + ? // ? keyof UnionToIntersection> + ArrayUnion + : never; -type ReturnTypeToType = T extends 'string' +type ReturnTypeToType = T extends "string" ? string - : T extends 'number' + : T extends "number" ? number - : never + : never; // support only 10 typed parametes // TODO: find a way to support more @@ -124,96 +138,99 @@ type ReturnTypeToType = T extends 'string' // rest function parameters type DynamicMethodsActsParentClass = { [acts in Acts]: ( - param1: ActionParamToType['0']>, - param2: ActionParamToType['1']>, - param3: ActionParamToType['2']>, - param4: ActionParamToType['3']>, - param5: ActionParamToType['4']>, - param6: ActionParamToType['5']>, - param7: ActionParamToType['6']>, - param8: ActionParamToType['7']>, - param9: ActionParamToType['8']>, - param10: ActionParamToType['9']> - ) => C3Plugin['Acts'][ActsAssocReversed[acts]]['isAsync'] extends true + param1: ActionParamToType["0"]>, + param2: ActionParamToType["1"]>, + param3: ActionParamToType["2"]>, + param4: ActionParamToType["3"]>, + param5: ActionParamToType["4"]>, + param6: ActionParamToType["5"]>, + param7: ActionParamToType["6"]>, + param8: ActionParamToType["7"]>, + param9: ActionParamToType["8"]>, + param10: ActionParamToType["9"]> + ) => C3Plugin["Acts"][ActsAssocReversed[acts]]["isAsync"] extends true ? Promise - : void -} + : void; +}; type DynamicMethodsCndsParentClass = { [cnds in Cnds]: ( - param1: ActionParamToType['0']>, - param2: ActionParamToType['1']>, - param3: ActionParamToType['2']>, - param4: ActionParamToType['3']>, - param5: ActionParamToType['4']>, - param6: ActionParamToType['5']>, - param7: ActionParamToType['6']>, - param8: ActionParamToType['7']>, - param9: ActionParamToType['8']>, - param10: ActionParamToType['9']> - ) => boolean -} - - + param1: ActionParamToType["0"]>, + param2: ActionParamToType["1"]>, + param3: ActionParamToType["2"]>, + param4: ActionParamToType["3"]>, + param5: ActionParamToType["4"]>, + param6: ActionParamToType["5"]>, + param7: ActionParamToType["6"]>, + param8: ActionParamToType["7"]>, + param9: ActionParamToType["8"]>, + param10: ActionParamToType["9"]> + ) => boolean; +}; type DynamicMethodsExpsParentClass = { [exps in Exps]: ( - param1: ActionParamToType['0']>, - param2: ActionParamToType['1']>, - param3: ActionParamToType['2']>, - param4: ActionParamToType['3']>, - param5: ActionParamToType['4']>, - param6: ActionParamToType['5']>, - param7: ActionParamToType['6']>, - param8: ActionParamToType['7']>, - param9: ActionParamToType['8']>, - param10: ActionParamToType['9']> - ) => ReturnTypeToType -} + param1: ActionParamToType["0"]>, + param2: ActionParamToType["1"]>, + param3: ActionParamToType["2"]>, + param4: ActionParamToType["3"]>, + param5: ActionParamToType["4"]>, + param6: ActionParamToType["5"]>, + param7: ActionParamToType["6"]>, + param8: ActionParamToType["7"]>, + param9: ActionParamToType["8"]>, + param10: ActionParamToType["9"]> + ) => ReturnTypeToType< + C3Plugin["Exps"][ExpsAssocReversed[exps]]["returnType"] + >; +}; interface SDKInstanceDataObject { - GetArrayBufferReadOnly(): ArrayBuffer + GetArrayBufferReadOnly(): ArrayBuffer; } type StaticMethodsParentClass = { - Trigger(trigger: OpaqueCnds): void - TriggerAsync(trigger: OpaqueCnds): Promise + Trigger(trigger: OpaqueCnds): void; + TriggerAsync(trigger: OpaqueCnds): Promise; - _triggerAsync(trigger: OpaqueCnds): Promise - _trigger(trigger: OpaqueCnds): void + _triggerAsync(trigger: OpaqueCnds): Promise; + _trigger(trigger: OpaqueCnds): void; - _getInitProperties(): {} + _getInitProperties(): {}; - _inst: any -} + _inst: any; +}; -type ParentClass = DynamicMethodsActsParentClass & DynamicMethodsCndsParentClass & DynamicMethodsExpsParentClass & StaticMethodsParentClass +type ParentClass = DynamicMethodsActsParentClass & + DynamicMethodsCndsParentClass & + DynamicMethodsExpsParentClass & + StaticMethodsParentClass; interface C3 { Plugins: { - [pluginId in C3Plugin['id']]: { + [pluginId in C3Plugin["id"]]: { Cnds: { - [cnds in keyof C3Plugin['Cnds']]: OpaqueCnds - } + [cnds in keyof C3Plugin["Cnds"]]: OpaqueCnds; + }; Acts: { - [cnds in keyof C3Plugin['Acts']]: OpaqueActs - } + [cnds in keyof C3Plugin["Acts"]]: OpaqueActs; + }; Exps: { - [cnds in keyof C3Plugin['Exps']]: OpaqueExps - } + [cnds in keyof C3Plugin["Exps"]]: OpaqueExps; + }; }; - } + }; } export type GetInstanceJSFn = ( parentClass: new (...args: any[]) => ParentClass, addonTriggers: string[], - C3: C3, -) => new (...args: any[]) => ParentClass + C3: C3 +) => new (...args: any[]) => ParentClass; export type IObjectClass = { - getFirstPickedInstance: (inst: unknown) => IBinaryDataInstance | null -} + getFirstPickedInstance: (inst: unknown) => IBinaryDataInstance | null; +}; export type IBinaryDataInstance = { - setArrayBufferCopy: (buff: ArrayBuffer) => void -} \ No newline at end of file + setArrayBufferCopy: (buff: ArrayBuffer) => void; +};