plugify-plugins-types-generator
Version:
tool to generate d.ts for plugify plugins by pplugin file (ESM)
21 lines (20 loc) • 992 B
JavaScript
import { plugifyNameConvert, plugifyTypeConvert } from "../plugify/parser.js";
import { NameSpaces } from "./namespace.js";
export const plugifyMethodsGenerator = (methods, docsViewer, docsToItemURL) => {
return methods
.map((method) => `
/**
* @description ${method.description}
*
* {@link ${docsViewer}${docsToItemURL}#item-${method.name}|Docs}
*
* ${method.paramTypes.map(param => `@param ${param.name} ${param.description}`).join("\n * ")}
*/
export function ${plugifyNameConvert(method.funcName)}(${method.paramTypes
.map((param) => `${plugifyNameConvert(param.name)}: ${param.prototype?.name
// ? currently namespaces only for callbacks to prevent export them
? `typeof ${NameSpaces.Callbacks}.${param.prototype?.name}`
: param.enum?.name || plugifyTypeConvert(param.type)}`)
.join(', ')}): ${method.retType.enum?.name || plugifyTypeConvert(method.retType.type)};`)
.join('\n');
};