11import fs from "fs"
2- import { basename as getBaseName , extname as getFileExtension , resolve as resolvePath } from "path"
2+ import { basename as getBaseName , extname as getFileExtension , relative as getRelativePath , resolve as resolvePath } from "path"
33
44const { readdir : readDirectory , writeFile } = fs . promises
55
@@ -43,18 +43,20 @@ export async function generateTypings(sourceDirectory: string, target: string, h
4343 }
4444 } ) )
4545
46+ sourceDirectory = getRelativePath ( `.` , sourceDirectory )
47+
4648 let o = ``
4749
4850 for ( const script of wildScripts )
49- o += `import { script as $${ script } $ } from "./src /${ script } "\n`
51+ o += `import $${ script } $ from "./${ sourceDirectory } /${ script } "\n`
5052
5153 o += `\n`
5254
5355 for ( const user in allScripts ) {
5456 const scripts = allScripts [ user ] !
5557
5658 for ( const script of scripts )
57- o += `import { script as $${ user } $${ script } $ } from "./src /${ user } /${ script } "\n`
59+ o += `import $${ user } $${ script } $ from "./${ sourceDirectory } /${ user } /${ script } "\n`
5860 }
5961
6062 // TODO detect security level and generate apropriate code
@@ -78,7 +80,7 @@ type WildFullsec = Record<string, () => ScriptFailure> & {
7880 for ( const script of wildAnyScripts )
7981 o += `\t${ script } : (...args: any) => any\n`
8082
81- o += `}\n\ndeclare global {\n\tinterface PlayerFullsec {`
83+ o += `}\n\ninterface PlayerFullsec {`
8284
8385 let lastWasMultiLine = true
8486
@@ -88,32 +90,32 @@ type WildFullsec = Record<string, () => ScriptFailure> & {
8890
8991 if ( ( scripts && scripts . length ) || ( anyScripts && anyScripts . length ) ) {
9092 lastWasMultiLine = true
91- o += `\n\t\t ${ user } : WildFullsec & {\n`
93+ o += `\n\t${ user } : WildFullsec & {\n`
9294
9395 if ( scripts ) {
9496 for ( const script of scripts )
95- o += `\t\t\t ${ script } : Subscript<typeof $${ user } $${ script } $>\n`
97+ o += `\t\t${ script } : Subscript<typeof $${ user } $${ script } $>\n`
9698 }
9799
98100 if ( anyScripts ) {
99101 for ( const script of anyScripts )
100- o += `\t\t\t ${ script } : (...args: any) => any\n`
102+ o += `\t\t${ script } : (...args: any) => any\n`
101103 }
102104
103- o += `\t\t }`
105+ o += `\t}`
104106 } else {
105107 if ( lastWasMultiLine ) {
106108 o += `\n`
107109 lastWasMultiLine = false
108110 }
109111
110- o += `\t\t ${ user } : WildFullsec`
112+ o += `\t${ user } : WildFullsec`
111113 }
112114
113115 o += `\n`
114116 }
115117
116- o += `\t}\n }\n`
118+ o += `}\n`
117119 await writeFile ( target , o )
118120}
119121
0 commit comments