diff --git a/packages/cli/src/commands/new/new.ts b/packages/cli/src/commands/new/new.ts index 7c4d392a5b..62b746a7a8 100644 --- a/packages/cli/src/commands/new/new.ts +++ b/packages/cli/src/commands/new/new.ts @@ -53,6 +53,7 @@ export default async (opts: ArgOptions) => { license: otherGlobals.license, version: otherGlobals.baseVersion, private: otherGlobals.private, + publishRegistry: otherGlobals.npmRegistry, packageNamePrefix: packagePrefix, packageNamePluginInfix: pluginInfix, }, diff --git a/packages/cli/src/lib/new/execution/writeTemplateContents.ts b/packages/cli/src/lib/new/execution/writeTemplateContents.ts index ddd94d40ae..f5550a1255 100644 --- a/packages/cli/src/lib/new/execution/writeTemplateContents.ts +++ b/packages/cli/src/lib/new/execution/writeTemplateContents.ts @@ -42,9 +42,6 @@ export async function writeTemplateContents( values: { ...roleValues, packageName: input.packageName, - privatePackage: input.private, - packageVersion: input.version, - license: input.license, }, templatedValues: template.templateValues, }); @@ -114,6 +111,17 @@ export function injectPackageJsonInput( delete pkgJson.private; } + if (input.publishRegistry) { + if (pkgJson.publishConfig) { + pkgJson.publishConfig = { + ...pkgJson.publishConfig, + registry: input.publishRegistry, + }; + } else { + toAdd.push(['publishConfig', { registry: input.publishRegistry }]); + } + } + const entries = Object.entries(pkgJson); const nameIndex = entries.findIndex(([name]) => name === 'name'); diff --git a/packages/cli/src/lib/new/preparation/collectPortableTemplateInput.ts b/packages/cli/src/lib/new/preparation/collectPortableTemplateInput.ts index 6a1033f5b6..79dc508758 100644 --- a/packages/cli/src/lib/new/preparation/collectPortableTemplateInput.ts +++ b/packages/cli/src/lib/new/preparation/collectPortableTemplateInput.ts @@ -93,6 +93,7 @@ export async function collectPortableTemplateInput( license: config.license, version: config.version, private: config.private, + publishRegistry: config.publishRegistry, packageName: packageParams.packageName, packagePath: packageParams.packagePath, }; diff --git a/packages/cli/src/lib/new/preparation/loadPortableTemplateConfig.ts b/packages/cli/src/lib/new/preparation/loadPortableTemplateConfig.ts index ad8d33f040..7f6a7636b9 100644 --- a/packages/cli/src/lib/new/preparation/loadPortableTemplateConfig.ts +++ b/packages/cli/src/lib/new/preparation/loadPortableTemplateConfig.ts @@ -26,6 +26,7 @@ const defaults = { license: 'Apache-2.0', version: '0.1.0', private: true, + publishRegistry: undefined, packageNamePrefix: '@internal/', packageNamePluginInfix: 'plugin-', }; @@ -56,6 +57,7 @@ const newConfigSchema = z license: z.string().optional(), version: z.string().optional(), private: z.boolean().optional(), + publishRegistry: z.string().optional(), namePrefix: z.string().optional(), namePluginInfix: z.string().optional(), }) @@ -118,6 +120,10 @@ export async function loadPortableTemplateConfig( license: overrides.license ?? config?.globals?.license ?? defaults.license, version: overrides.version ?? config?.globals?.version ?? defaults.version, private: overrides.private ?? config?.globals?.private ?? defaults.private, + publishRegistry: + overrides.publishRegistry ?? + config?.globals?.publishRegistry ?? + defaults.publishRegistry, packageNamePrefix: overrides.packageNamePrefix ?? config?.globals?.namePrefix ?? diff --git a/packages/cli/src/lib/new/types.ts b/packages/cli/src/lib/new/types.ts index fc15eb882c..b6dc31569c 100644 --- a/packages/cli/src/lib/new/types.ts +++ b/packages/cli/src/lib/new/types.ts @@ -31,6 +31,8 @@ export type PortableTemplateConfig = { private: boolean; + publishRegistry?: string; + packageNamePrefix: string; packageNamePluginInfix: string; @@ -113,6 +115,8 @@ export type PortableTemplateInput = { private: boolean; + publishRegistry?: string; + packageName: string; packagePath: string;