import { Able } from "../types";

export function makeAble<
    Name extends string,
    AbleObject extends Partial<Able<any, any>>,
>(name: Name, able: AbleObject) {
    return {
        events: [] as AbleObject["events"] extends readonly any[] ? AbleObject["events"] : readonly [],
        props: [] as AbleObject["props"] extends readonly any[] ? AbleObject["props"] : readonly [],
        name,
        ...able,
    } as const;
}
