import type { ObjectPlain } from '@flex-development/tutils'; import type { ICreateReleaseDTO } from "../interfaces"; /** * @file Data Transfer Objects - CreateReleaseDTO * @module grease/dtos/CreateRelease */ /** * Data used to create a [GitHub release via the GitHub CLI][1]. * * [1]: https://cli.github.com/manual/gh_release_create * * @implements {ICreateReleaseDTO} */ export default class CreateReleaseDTO implements ICreateReleaseDTO { /** * @static * @property {(keyof ICreateReleaseDTO)[]} PROPS - `CreateReleaseDTO` props */ static PROPS: (keyof ICreateReleaseDTO)[]; readonly draft?: ICreateReleaseDTO['draft']; readonly files?: ICreateReleaseDTO['files']; readonly notes?: ICreateReleaseDTO['notes']; readonly notesFile?: ICreateReleaseDTO['notesFile']; readonly prerelease?: ICreateReleaseDTO['prerelease']; readonly repo?: ICreateReleaseDTO['repo']; readonly target?: ICreateReleaseDTO['target']; readonly title?: ICreateReleaseDTO['title']; readonly version: ICreateReleaseDTO['version']; /** * Creates a new GitHub release data transfer object. * * @see https://cli.github.com/manual/gh_release_create * * @param {ICreateReleaseDTO | ObjectPlain} [data={}] - Data to create release */ constructor(data?: ICreateReleaseDTO | ObjectPlain); /** * Converts the DTO into a [`gh release create`][1] argument string. * * [1]: https://cli.github.com/manual/gh_release_create * * @return {string} `gh release create` arguments */ toString(): string; /** * Converts the DTO into a [`gh release create`][1] string arguments array. * * [1]: https://cli.github.com/manual/gh_release_create * * @return {string[]} `gh release create` arguments as array */ toStringArgs(): string[]; }