@@ -205,6 +205,7 @@ export async function create({
205205 const cwd = process . cwd ( ) ;
206206 const pkgInfo = pkgFromUserAgent ( process . env . npm_config_user_agent ) ;
207207 const packageManager = pkgInfo ? pkgInfo . name : 'npm' ;
208+ const templateParameters = { packageManager } ;
208209
209210 // No version provided, read from package.json
210211 if ( ! version ) {
@@ -264,14 +265,14 @@ export async function create({
264265 to : distFolder ,
265266 version,
266267 skipFiles,
267- packageManager ,
268+ templateParameters ,
268269 } ) ;
269270 copyFolder ( {
270271 from : srcFolder ,
271272 to : distFolder ,
272273 version,
273274 packageName,
274- packageManager ,
275+ templateParameters ,
275276 skipFiles,
276277 } ) ;
277278
@@ -296,7 +297,7 @@ export async function create({
296297 to : distFolder ,
297298 version,
298299 skipFiles,
299- packageManager ,
300+ templateParameters ,
300301 isMergePackageJson : true ,
301302 } ) ;
302303
@@ -310,7 +311,7 @@ export async function create({
310311 to : distFolder ,
311312 version,
312313 skipFiles,
313- packageManager ,
314+ templateParameters ,
314315 isMergePackageJson : true ,
315316 } ) ;
316317
@@ -330,7 +331,7 @@ export async function create({
330331 const agentsPath = path . join ( distFolder , 'AGENTS.md' ) ;
331332 fs . writeFileSync (
332333 agentsPath ,
333- `${ replacePlaceholder ( mergedAgents , packageManager ) } \n` ,
334+ `${ replacePlaceholder ( mergedAgents , { packageManager } ) } \n` ,
334335 ) ;
335336 }
336337
@@ -392,8 +393,19 @@ export function mergePackageJson(targetPackage: string, extraPackage: string) {
392393const isMarkdown = ( file : string ) =>
393394 file . endsWith ( '.md' ) || file . endsWith ( '.mdx' ) ;
394395
395- const replacePlaceholder = ( content : string , packageManager : string ) =>
396- content . replace ( / { { p a c k a g e M a n a g e r } } / g, packageManager ) ;
396+ const replacePlaceholder = (
397+ content : string ,
398+ templateParameters : Record < string , string > ,
399+ ) => {
400+ let result = content ;
401+ for ( const key of Object . keys ( templateParameters ) ) {
402+ result = result . replace (
403+ new RegExp ( `{{ ${ key } }}` , 'g' ) ,
404+ templateParameters [ key ] ,
405+ ) ;
406+ }
407+ return result ;
408+ } ;
397409
398410/**
399411 * Copy files from one folder to another.
@@ -409,15 +421,15 @@ export function copyFolder({
409421 to,
410422 version,
411423 packageName,
412- packageManager ,
424+ templateParameters ,
413425 isMergePackageJson,
414426 skipFiles = [ ] ,
415427} : {
416428 from : string ;
417429 to : string ;
418430 version ?: string | Record < string , string > ;
419431 packageName ?: string ;
420- packageManager : string ;
432+ templateParameters ?: Record < string , string > ;
421433 isMergePackageJson ?: boolean ;
422434 skipFiles ?: string [ ] ;
423435} ) {
@@ -445,7 +457,7 @@ export function copyFolder({
445457 copyFolder ( {
446458 from : srcFile ,
447459 to : distFile ,
448- packageManager ,
460+ templateParameters ,
449461 version,
450462 skipFiles,
451463 } ) ;
@@ -461,9 +473,12 @@ export function copyFolder({
461473 } else {
462474 fs . copyFileSync ( srcFile , distFile ) ;
463475
464- if ( isMarkdown ( distFile ) ) {
476+ if ( templateParameters && isMarkdown ( distFile ) ) {
465477 const content = fs . readFileSync ( distFile , 'utf-8' ) ;
466- fs . writeFileSync ( distFile , replacePlaceholder ( content , packageManager ) ) ;
478+ fs . writeFileSync (
479+ distFile ,
480+ replacePlaceholder ( content , templateParameters ) ,
481+ ) ;
467482 }
468483 }
469484 }
0 commit comments