Skip to content

Commit 0150720

Browse files
committed
[FEATURE] Register aliases for all available extensions
Previously, only extensions that contained a ViteEntrypoints.json were considered.
1 parent 4d9d8f9 commit 0150720

File tree

4 files changed

+34
-47
lines changed

4 files changed

+34
-47
lines changed

src/typo3project.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type {
1010
import {
1111
addAliases,
1212
addRollupInputs,
13-
determineRelevantTypo3Extensions,
13+
determineAvailableTypo3Extensions,
1414
findEntrypointsInExtensions,
1515
getDefaultIgnoreList,
1616
initializePluginConfig,
@@ -23,7 +23,7 @@ export default function typo3project(
2323
const logger = createLogger("info", { prefix: "[plugin-typo3-project]" });
2424

2525
let pluginConfig: PluginConfig<Typo3ProjectContext>;
26-
let relevantExtensions: Typo3ExtensionContext[];
26+
let availableExtensions: Typo3ExtensionContext[];
2727
let entrypoints: string[];
2828

2929
return {
@@ -78,21 +78,20 @@ export default function typo3project(
7878
);
7979

8080
// Extract relevant TYPO3 extensions from composer metadata
81-
relevantExtensions = determineRelevantTypo3Extensions(
81+
availableExtensions = determineAvailableTypo3Extensions(
8282
pluginConfig.composerContext,
83-
pluginConfig.entrypointFile,
8483
);
8584

8685
// Add path alias for each extension
8786
config.resolve ??= {};
8887
config.resolve.alias = addAliases(
8988
config.resolve.alias,
90-
relevantExtensions,
89+
availableExtensions,
9190
);
9291

9392
// Find all vite entrypoints in relevant TYPO3 extensions
9493
entrypoints = findEntrypointsInExtensions(
95-
relevantExtensions,
94+
availableExtensions,
9695
pluginConfig.entrypointFile,
9796
pluginConfig.entrypointIgnorePatterns,
9897
);
@@ -129,7 +128,7 @@ export default function typo3project(
129128

130129
if (pluginConfig.debug) {
131130
outputDebugInformation(
132-
relevantExtensions,
131+
availableExtensions,
133132
entrypoints,
134133
pluginConfig.composerContext,
135134
logger,

src/utils.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ export function findEntrypointsInExtensions(
133133
return entrypoints;
134134
}
135135

136-
export function determineRelevantTypo3Extensions(
136+
export function determineAvailableTypo3Extensions(
137137
composerContext: Typo3ProjectContext,
138-
entrypointFile: string,
139138
): Typo3ExtensionContext[] {
140139
const composerInstalled = join(
141140
composerContext.path,
@@ -170,19 +169,17 @@ export function determineRelevantTypo3Extensions(
170169
),
171170
);
172171

173-
return installedExtensions.filter((extension) =>
174-
fs.existsSync(join(extension.path, entrypointFile)),
175-
);
172+
return installedExtensions;
176173
}
177174

178175
export function outputDebugInformation(
179-
relevantExtensions: Typo3ExtensionContext[],
176+
availableExtensions: Typo3ExtensionContext[],
180177
entrypoints: string[],
181178
composerContext: ComposerContext,
182179
logger: Logger,
183180
): void {
184-
if (relevantExtensions.length) {
185-
const extensionList = relevantExtensions.map(
181+
if (availableExtensions.length) {
182+
const extensionList = availableExtensions.map(
186183
(extension) => extension.extensionKey,
187184
);
188185
const aliasList = extensionList.reduce(
@@ -191,7 +188,7 @@ export function outputDebugInformation(
191188
[],
192189
);
193190
logger.info(
194-
`The following extensions with vite entrypoints have been recognized: ${colors.green(extensionList.join(", "))}`,
191+
`The following TYPO3 extensions have been recognized: ${colors.green(extensionList.join(", "))}`,
195192
{ timestamp: true },
196193
);
197194
logger.info(
Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
import { describe, test, expect, vi } from "vitest";
2-
import { determineRelevantTypo3Extensions } from "../../src/utils";
2+
import { determineAvailableTypo3Extensions } from "../../src/utils";
33

44
vi.mock("node:fs");
55

6-
describe("determineRelevantTypo3Extensions", () => {
7-
test("determineRelevantTypo3Extensions", () => {
6+
describe("determineAvailableTypo3Extensions", () => {
7+
test("determineAvailableTypo3Extensions", () => {
88
expect(
9-
determineRelevantTypo3Extensions(
10-
{
11-
type: "project",
12-
path: "/path/to/fixtures/composerProject",
13-
vendorDir: "vendor",
14-
webDir: "public",
15-
},
16-
"Configuration/ViteEntrypoints.json",
17-
),
9+
determineAvailableTypo3Extensions({
10+
type: "project",
11+
path: "/path/to/fixtures/composerProject",
12+
vendorDir: "vendor",
13+
webDir: "public",
14+
}),
1815
).toEqual([
1916
{
2017
type: "typo3-cms-extension",
@@ -31,29 +28,23 @@ describe("determineRelevantTypo3Extensions", () => {
3128

3229
test("no vendor path", () => {
3330
expect(() => {
34-
determineRelevantTypo3Extensions(
35-
{
36-
type: "project",
37-
path: "/path/to/fixtures/composerProjectWIthoutVendor",
38-
vendorDir: "vendor",
39-
webDir: "public",
40-
},
41-
"Configuration/ViteEntrypoints.json",
42-
);
31+
determineAvailableTypo3Extensions({
32+
type: "project",
33+
path: "/path/to/fixtures/composerProjectWIthoutVendor",
34+
vendorDir: "vendor",
35+
webDir: "public",
36+
});
4337
}).toThrow();
4438
});
4539

4640
test("invalid installed.json", () => {
4741
expect(() => {
48-
determineRelevantTypo3Extensions(
49-
{
50-
type: "project",
51-
path: "/path/to/fixtures/composerProjectInvalidVendor",
52-
vendorDir: "vendor",
53-
webDir: "public",
54-
},
55-
"Configuration/ViteEntrypoints.json",
56-
);
42+
determineAvailableTypo3Extensions({
43+
type: "project",
44+
path: "/path/to/fixtures/composerProjectInvalidVendor",
45+
vendorDir: "vendor",
46+
webDir: "public",
47+
});
5748
}).toThrow();
5849
});
5950
});

tests/unit/outputDebugInformation.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe("outputDebugInformation", () => {
4242
expect(logger.info).toHaveBeenCalledTimes(3);
4343
expect(logger.info).toHaveBeenNthCalledWith(
4444
1,
45-
"The following extensions with vite entrypoints have been recognized: " +
45+
"The following TYPO3 extensions have been recognized: " +
4646
colors.green("test_extension1, test_extension2"),
4747
{ timestamp: true },
4848
);

0 commit comments

Comments
 (0)