UNPKG

@halospv3/hce.shared-config

Version:

Automate commit message quality, changelogs, and CI/CD releases. Exports a semantic-release shareable configuration deserialized from this package's '.releaserc.yml'. Shared resources for .NET projects are also distributed with this package.

44 lines (40 loc) 1.98 kB
import { getEnvVarValue } from '../utils/env.mjs'; import { NugetRegistryInfo, NRIOptsBase } from './NugetRegistryInfo.mjs'; const NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com'; const DefaultGithubTokenEnvVars = Object.freeze(['GH_TOKEN', 'GITHUB_TOKEN']); class GithubNugetRegistryInfo extends NugetRegistryInfo { static NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com'; // GithubNugetRegistryInfo.CtorArgs(...) behaves differently than NugetRegistryInfo.CtorArgs(...) /** * Creates an instance of GithubNugetRegistryInfo. * @param opts The input type of {@link GHNRIOpts.from} */ constructor(opts) { super(GHNRIOpts.from(opts)); } /** * Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json` * or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor * {@link process.cwd() $CWD}/.env) `undefined`. * @returns If GITHUB_REPOSITORY_OWNER is defined, returns the GitHub Package Repository URL endpoint for NuGet pushes (--source).\ * Otherwise, returns `undefined` */ static getNugetGitHubUrl() { const owner = getEnvVarValue('GITHUB_REPOSITORY_OWNER'); return owner === undefined ? undefined : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`; } } const GHNRI = GithubNugetRegistryInfo; /** * The default value of {@link GHNRIOpts.t.source `source`} is dependent on * {@link GHNRI.getNugetGitHubUrl} and will default to an empty string if the * environment variable `GITHUB_REPOSITORY_OWNER` is undefined! */ const GHNRIOpts = NRIOptsBase.merge({ /** @see {@link GHNRI.getNugetGitHubUrl } */ source: NRIOptsBase.get('source').default(() => GHNRI.getNugetGitHubUrl() ?? ''), tokenEnvVars: NRIOptsBase.get('tokenEnvVars').default(/* must be a function. A fixed-length array is NOT a primitive type! */ () => DefaultGithubTokenEnvVars) }); export { DefaultGithubTokenEnvVars, GHNRIOpts, GithubNugetRegistryInfo }; //# sourceMappingURL=GithubNugetRegistryInfo.mjs.map