TypeScript framework in TypeScript includes an advanced command handler, a cli to generate files, a very practical file structure, a yargs based argument system for commands, an advanced Eval command, a Knex based database provider and some utils...
import*asappfrom"../app.js"exportdefaultnewapp.Command({name: "hello",channelType: "all",description: "Say hello to a person",positional: [{name: "firstname",description: "First name",},{name: "lastname",description: "Last name",},],asyncrun(message){returnmessage.send(`Hello ${message.args.firstname}${message.args.lastname}`);},})
Its use could look like !hello Camille Abella and scatter the positionables over several lines should be possible, unfortunately the line breaks are not considered by the Yargs parser as valid argument separators.
In the index.ts the ready event gets initialized after the client.login() with the await app.listenerHandler.load(client)
But the ready.native event needs to be initialized before the client.login() because otherwise the "ready" event doesn't get triggered.