@halospv3/hce.shared-config
Version:
Automate commit message quality, changelogs, and CI/CD releases. Its `main` entry point is a Semantic Release config. Functions and classes are exposed for customization. An ESLint config, a Commitlint config, and addl. resources for .NET projects are als
1 lines • 3.71 kB
Source Map (JSON)
{"version":3,"file":"GithubNugetRegistryInfo.mjs","names":["getEnvironmentVariableValue","NRIOptionsBase"],"sources":["../../src/dotnet/GithubNugetRegistryInfo.ts"],"sourcesContent":["import type { Type } from 'arktype';\nimport { getEnvVarValue as getEnvironmentVariableValue } from '../utils/env.ts';\nimport type { MSBuildProject, MSBuildEvaluationOutput } from './MSBuildProject.ts';\nimport type { NugetProjectProperties } from './NugetProjectProperties.ts';\nimport {\n NugetRegistryInfo,\n NRIOptsBase as NRIOptionsBase,\n} from './NugetRegistryInfo.ts';\nimport type { Default } from 'arktype/internal/attributes.ts';\n\nconst NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n// eslint-disable-next-line unicorn/name-replacements\nexport const DefaultGithubTokenEnvVars: readonly ['GH_TOKEN', 'GITHUB_TOKEN'] = Object.freeze([\n 'GH_TOKEN',\n 'GITHUB_TOKEN',\n]);\n\nexport class GithubNugetRegistryInfo extends NugetRegistryInfo {\n static readonly NUGET_PKG_GITHUB_COM = 'https://nuget.pkg.github.com';\n\n /**\n * Returns `https://nuget.pkg.github.com/${GITHUB_REPOSITORY_OWNER}/index.json`\n * or (if GITHUB_REPOSITORY_OWNER is not defined in {@link process.env} nor\n * {@link process.cwd() $CWD}/.env) `undefined`.\n * @returns If GITHUB_REPOSITORY_OWNER is defined, returns the GitHub Package Repository URL endpoint for NuGet pushes (--source).\\\n * Otherwise, returns `undefined`\n */\n static getNugetGitHubUrl(): string | undefined {\n const owner = getEnvironmentVariableValue('GITHUB_REPOSITORY_OWNER');\n return owner === undefined\n ? undefined\n : `${NUGET_PKG_GITHUB_COM}/${owner}/index.json`;\n }\n\n // GithubNugetRegistryInfo.CtorArgs(...) behaves differently than NugetRegistryInfo.CtorArgs(...)\n /**\n * Creates an instance of GithubNugetRegistryInfo.\n * @param opts The input type of {@link GHNRIOpts.from}\n */\n // eslint-disable-next-line unicorn/name-replacements\n constructor(opts: typeof GHNRIOpts.inferIn) {\n super(GHNRIOpts.from(opts));\n }\n}\nconst GHNRI = GithubNugetRegistryInfo;\n\n/**\n * The default value of {@link GHNRIOpts.t.source `source`} is dependent on\n * {@link GHNRI.getNugetGitHubUrl} and will default to an empty string if the\n * environment variable `GITHUB_REPOSITORY_OWNER` is undefined!\n */\n// eslint-disable-next-line unicorn/name-replacements\nexport const GHNRIOpts: Type<{\n project: MSBuildProject | {\n readonly Items: Readonly<Required<MSBuildEvaluationOutput>['Items']>;\n readonly Properties: Readonly<NugetProjectProperties>;\n readonly Targets: readonly string[];\n readonly TargetResults: Required<MSBuildEvaluationOutput>['TargetResults'][];\n };\n source: Default<string, string>;\n tokenEnvVars: Default<readonly string[], readonly ['GH_TOKEN', 'GITHUB_TOKEN']>;\n}> = NRIOptionsBase.merge({\n /** @see {@link GHNRI.getNugetGitHubUrl } */\n source: NRIOptionsBase.get('source')\n .default(() => GHNRI.getNugetGitHubUrl() ?? ''),\n tokenEnvVars: NRIOptionsBase.get('tokenEnvVars')\n .default(\n /* must be a function. A fixed-length array is NOT a primitive type! */\n (): typeof DefaultGithubTokenEnvVars => DefaultGithubTokenEnvVars,\n ),\n});\n"],"mappings":";;;AAUA,MAAM,uBAAuB;AAE7B,MAAa,4BAAmE,OAAO,OAAO,CAC5F,YACA,cACF,CAAC;AAED,IAAa,0BAAb,cAA6C,kBAAkB;CAC7D,OAAgB,uBAAuB;;;;;;;;CASvC,OAAO,oBAAwC;EAC7C,MAAM,QAAQA,eAA4B,yBAAyB;EACnE,OAAO,UAAU,KAAA,IACb,KAAA,IACA,GAAG,qBAAqB,GAAG,MAAM;CACvC;;;;;CAQA,YAAY,MAAgC;EAC1C,MAAM,UAAU,KAAK,IAAI,CAAC;CAC5B;AACF;AACA,MAAM,QAAQ;;;;;;AAQd,MAAa,YASRC,YAAe,MAAM;;CAExB,QAAQA,YAAe,IAAI,QAAQ,CAAC,CACjC,cAAc,MAAM,kBAAkB,KAAK,EAAE;CAChD,cAAcA,YAAe,IAAI,cAAc,CAAC,CAC7C,cAEyC,yBAC1C;AACJ,CAAC"}