plugify-plugins-types-generator
Version:
tool to generate d.ts for plugify plugins by pplugin file (ESM)
22 lines (19 loc) • 940 B
text/typescript
import { plugifyNameConvert, plugifyTypeConvert } from "../plugify/parser.js"
import { PlugifyType, Prototype } from "../types/plugify.js"
export const plugifyCallbacksGenerator = (map: Map<string, Prototype>, docsViewer: string, docsToItemURL: string) => {
return [...map.values()].map(
(method) =>
`
/**
* @description ${method.description}
*
* {@link ${docsViewer}${docsToItemURL}#item-${method.name}|Docs}
*
* ${method.paramTypes.map(param => `@param ${param.name} ${param.description}`).join(`\n * `)}
*/
function ${method.name}(${method.paramTypes
.map((param) => `${plugifyNameConvert(param.name)}: ${param.enum?.name || plugifyTypeConvert(param.type as PlugifyType)}`)
.join(', ')}): ${method.retType.enum?.name || plugifyTypeConvert(method.retType.type as PlugifyType)};`
)
.join('\n')
}