27 lines
816 B
TypeScript
27 lines
816 B
TypeScript
import 'reflect-metadata';
|
|
|
|
export function PostPlug(params: {
|
|
identifier: string;
|
|
title: string;
|
|
description: string;
|
|
pickIntegration: string[];
|
|
fields: {
|
|
name: string;
|
|
description: string;
|
|
type: string;
|
|
placeholder: string;
|
|
validation?: RegExp;
|
|
}[];
|
|
}) {
|
|
return function (target: Object, propertyKey: string | symbol, descriptor: any) {
|
|
// Retrieve existing metadata or initialize an empty array
|
|
const existingMetadata = Reflect.getMetadata('custom:internal_plug', target) || [];
|
|
|
|
// Add the metadata information for this method
|
|
existingMetadata.push({ methodName: propertyKey, ...params });
|
|
|
|
// Define metadata on the class prototype (so it can be retrieved from the class)
|
|
Reflect.defineMetadata('custom:internal_plug', existingMetadata, target);
|
|
};
|
|
}
|