@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
JavaScript
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