import { isAddressPointer } from "applesauce-core/helpers";
import { List } from "applesauce-factory/operations";
function getList(events, address) {
    const list = isAddressPointer(address)
        ? events.getReplaceable(address.kind, address.pubkey, address.identifier)
        : address;
    if (!list)
        throw new Error("Can't find list");
    return list;
}
/** An action that sets or removes a NIP-15 list information */
export function SetListMetadata(list, info) {
    return async function* ({ events, factory }) {
        list = getList(events, list);
        const draft = await factory.modify(list, List.setTitle(info.title ?? null), List.setDescription(info.description ?? null), List.setImage(info.image ?? null));
        yield await factory.sign(draft);
    };
}
