@@ -16,6 +16,7 @@ import type {
1616 UserConfig ,
1717 Typo3ProjectContext ,
1818 Typo3ExtensionContext ,
19+ AliasConfig ,
1920} from "./types.js" ;
2021
2122export function initializePluginConfig < T extends ComposerContext > (
@@ -42,6 +43,7 @@ export function initializePluginConfig<T extends ComposerContext>(
4243 entrypointIgnorePatterns : [ "**/node_modules/**" , "**/.git/**" ] ,
4344 debug : false ,
4445 composerContext,
46+ aliases : true ,
4547 ...userConfig ,
4648 } ;
4749}
@@ -180,15 +182,14 @@ export function outputDebugInformation(
180182 entrypoints : string [ ] ,
181183 composerContext : ComposerContext ,
182184 logger : Logger ,
185+ aliasConfig : AliasConfig = true ,
183186) : void {
184187 if ( availableExtensions . length ) {
185188 const extensionList = availableExtensions . map (
186189 ( extension ) => extension . extensionKey ,
187190 ) ;
188- const aliasList = extensionList . reduce (
189- ( aliasList : string [ ] , extensionKey ) =>
190- aliasList . concat ( [ "@" + extensionKey , "EXT:" + extensionKey ] ) ,
191- [ ] ,
191+ const aliasList = createAliases ( availableExtensions , aliasConfig ) . map (
192+ ( alias ) => alias . find ,
192193 ) ;
193194 logger . info (
194195 `The following TYPO3 extensions have been recognized: ${ colors . green ( extensionList . join ( ", " ) ) } ` ,
@@ -231,31 +232,40 @@ export function addRollupInputs(
231232export function addAliases (
232233 alias : AliasOptions | undefined ,
233234 extensions : Typo3ExtensionContext [ ] ,
235+ config : AliasConfig = true ,
234236) : AliasOptions {
235- const additionalAliases = extensions . reduce (
236- ( aliases : Alias [ ] , extension ) => {
237- const replacement = extension . path . endsWith ( "/" )
238- ? extension . path
239- : extension . path + "/" ;
240- aliases . push ( { find : "@" + extension . extensionKey , replacement } ) ;
241- aliases . push ( {
242- find : "EXT:" + extension . extensionKey ,
243- replacement,
244- } ) ;
245- return aliases ;
246- } ,
247- [ ] ,
248- ) ;
249-
250237 alias ??= [ ] ;
251238 if ( ! Array . isArray ( alias ) ) {
252239 alias = Object . entries ( alias ) . map ( ( entry ) => ( {
253240 find : entry [ 0 ] ,
254241 replacement : entry [ 1 ] ,
255242 } ) ) ;
256243 }
244+ return alias . concat ( createAliases ( extensions , config ) ) ;
245+ }
257246
258- return alias . concat ( additionalAliases ) ;
247+ export function createAliases (
248+ extensions : Typo3ExtensionContext [ ] ,
249+ config : AliasConfig ,
250+ ) {
251+ if ( config === false ) {
252+ return [ ] ;
253+ }
254+ return extensions . reduce ( ( aliases : Alias [ ] , extension ) => {
255+ const replacement = extension . path . endsWith ( "/" )
256+ ? extension . path
257+ : extension . path + "/" ;
258+ if ( config === "@" || config === true ) {
259+ aliases . push ( { find : "@" + extension . extensionKey , replacement } ) ;
260+ }
261+ if ( config === "EXT" || config === true ) {
262+ aliases . push ( {
263+ find : "EXT:" + extension . extensionKey ,
264+ replacement,
265+ } ) ;
266+ }
267+ return aliases ;
268+ } , [ ] ) ;
259269}
260270
261271export function readJsonFile ( file : string ) : any {
0 commit comments