{"version":3,"file":"channel-irc-message.mjs","names":[],"sources":["../../../src/message/irc/channel-irc-message.ts"],"sourcesContent":["import { ParseError } from \"../parser/parse-error\";\nimport {\n  type IRCMessageData,\n  IRCMessage,\n  requireParameter,\n} from \"./irc-message\";\n\nexport function getIRCChannelName(\n  message: Pick<IRCMessage, \"ircParameters\">,\n  optional?: false,\n): string;\nexport function getIRCChannelName(\n  message: Pick<IRCMessage, \"ircParameters\">,\n  optional: true,\n): string | undefined;\n\nexport function getIRCChannelName(\n  message: Pick<IRCMessage, \"ircParameters\">,\n  optional = false,\n): string | undefined {\n  const parameter = requireParameter(message, 0);\n\n  if (optional && parameter === \"*\") {\n    return undefined;\n  }\n\n  if (!parameter.startsWith(\"#\") || parameter.length < 2) {\n    throw new ParseError(`Received malformed IRC channel name \"${parameter}\"`);\n  }\n\n  return parameter.slice(1);\n}\n\nexport interface Channel {\n  readonly login: string;\n  /** @deprecated Same as {@link Channel.login}. */\n  readonly username: string;\n}\n\nexport class ChannelIRCMessage extends IRCMessage {\n  protected readonly _channelLogin: string;\n\n  public get channel(): Channel {\n    return {\n      login: this._channelLogin,\n      username: this._channelLogin,\n    };\n  }\n\n  /** @deprecated Use {@link channel.login} instead. */\n  public get channelName(): string {\n    return this._channelLogin;\n  }\n\n  public constructor(message: IRCMessageData) {\n    super(message);\n    this._channelLogin = getIRCChannelName(this);\n  }\n}\n"],"mappings":";;;AAgBA,SAAgB,kBACd,SACA,WAAW,OACS;CACpB,MAAM,YAAY,iBAAiB,SAAS,EAAE;AAE9C,KAAI,YAAY,cAAc,IAC5B;AAGF,KAAI,CAAC,UAAU,WAAW,IAAI,IAAI,UAAU,SAAS,EACnD,OAAM,IAAI,WAAW,wCAAwC,UAAU,GAAG;AAG5E,QAAO,UAAU,MAAM,EAAE;;AAS3B,IAAa,oBAAb,cAAuC,WAAW;CAChD;CAEA,IAAW,UAAmB;AAC5B,SAAO;GACL,OAAO,KAAK;GACZ,UAAU,KAAK;GAChB;;;CAIH,IAAW,cAAsB;AAC/B,SAAO,KAAK;;CAGd,YAAmB,SAAyB;AAC1C,QAAM,QAAQ;AACd,OAAK,gBAAgB,kBAAkB,KAAK"}