"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.__tsfTypeAliases = exports.cli = void 0;
exports.getCommandMetadata = getCommandMetadata;
const tslib_1 = require("tslib");
const _a = tslib_1.__importStar(require("@zyno-io/ts-server-foundation/type-metadata-runtime"));
const commandMetadata = new WeakMap();
function command(name, options = {}) {
    return target => {
        commandMetadata.set(target, { name, description: options.description });
    };
}
const controller = command;
exports.cli = { command, controller };
function getCommandMetadata(commandClass) {
    return commandMetadata.get(commandClass);
}
exports.__tsfTypeAliases = _a.decodeCompactMetadataV1("[1,{\"Command\":{\"kind\":18,\"typeName\":\"Command\",\"types\":[]},\"CommandControllerOptions\":{\"kind\":18,\"typeName\":\"CommandControllerOptions\",\"types\":[{\"kind\":20,\"name\":\"description\",\"type\":{\"kind\":12,\"types\":[{\"kind\":6},{\"kind\":4}]},\"optional\":true}]},\"CommandMetadata\":{\"kind\":18,\"typeName\":\"CommandMetadata\",\"types\":[{\"kind\":20,\"name\":\"name\",\"type\":{\"kind\":6},\"optional\":false},{\"kind\":20,\"name\":\"description\",\"type\":{\"kind\":12,\"types\":[{\"kind\":6},{\"kind\":4}]},\"optional\":true}]},\"CommandOptions\":{\"kind\":18,\"typeName\":\"CommandControllerOptions\",\"types\":[{\"kind\":20,\"name\":\"description\",\"type\":{\"kind\":12,\"types\":[{\"kind\":6},{\"kind\":4}]},\"optional\":true}],\"typeName\":\"CommandOptions\"}}]", []);
//# sourceMappingURL=commands.js.map