Skip to content

Commit 9a22531

Browse files
authored
feat(ui5_create_app): Add sourceTemplate section to manifest.json (#231)
1 parent 87a6ddb commit 9a22531

7 files changed

Lines changed: 24 additions & 4 deletions

File tree

resources/template-js/webapp/manifest.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
"odataVersion": "4.0"
1919
}
2020
}
21-
}<% } %>
21+
}<% } %>,
22+
"sourceTemplate": {
23+
"id": "@ui5/mcp-server:js",
24+
"version": "<%= mcpServerVersion %>"
25+
}
2226
},
2327

2428
"sap.ui": {

resources/template-ts/webapp/manifest.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
"odataVersion": "4.0"
1919
}
2020
}
21-
}<% } %>
21+
}<% } %>,
22+
"sourceTemplate": {
23+
"id": "@ui5/mcp-server:ts",
24+
"version": "<%= mcpServerVersion %>"
25+
}
2226
},
2327

2428
"sap.ui": {

src/tools/create_ui5_app/create_ui5_app.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import ODataMetadata from "./ODataMetadata.js";
1010
import {CreateUi5AppParams, CreateUi5AppResult} from "./schema.js";
1111
import {getLogger} from "@ui5/logger";
1212
import {isUi5Framework, Ui5Framework} from "../../utils/ui5Framework.js";
13-
import {dirExists, InvalidInputError} from "../../utils.js";
13+
import {dirExists, InvalidInputError, PKG_VERSION} from "../../utils.js";
1414
import isValidUrl from "./isValidUrl.js";
1515

1616
const log = getLogger("tools:create_ui5_app:create_ui5_app");
@@ -230,6 +230,7 @@ The minimum version for ${framework} is ${minFwkVersionToUse}.`
230230
qunitCoverageFile: semver.gte(frameworkVersion, "1.113.0") ?
231231
"qunit-coverage-istanbul.js" :
232232
"qunit-coverage.js",
233+
mcpServerVersion: PKG_VERSION,
233234
gte1_98_0: semver.gte(frameworkVersion, "1.98.0"),
234235
gte1_100_0: semver.gte(frameworkVersion, "1.100.0"),
235236
gte1_104_0: semver.gte(frameworkVersion, "1.104.0"),

src/tools/create_ui5_app/templateProcessor.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ export interface TemplateVars {
3838
defaultTheme: string;
3939
/** QUnit coverage file - depends on UI5 version */
4040
qunitCoverageFile: string;
41+
/** Version of the MCP server, for source template metadata */
42+
mcpServerVersion: string;
4143
/** Flags for version-specific features */
4244
gte1_98_0: boolean;
4345
gte1_100_0: boolean;

test/expected/create_ui5_app/com.test.apiapp/webapp/manifest.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
"description": "{{appDescription}}",
1010
"applicationVersion": {
1111
"version": "${version}"
12+
},
13+
"sourceTemplate": {
14+
"id": "@ui5/mcp-server:ts",
15+
"version": "0.0.0-test"
1216
}
1317
},
1418

test/lib/tools/create_ui5_app/create_ui5_app.integration.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ test.beforeEach(async (t) => {
4343
};
4444
t.context.loggerMock = loggerMock;
4545

46-
// Mock the @ui5/logger module
46+
// Mock the @ui5/logger module and PKG_VERSION
4747
const {createUi5App} = await esmock("../../../../src/tools/create_ui5_app/create_ui5_app.js", {
4848
"@ui5/logger": {
4949
getLogger: t.context.sinon.stub().returns(loggerMock),
5050
isLogLevelEnabled: t.context.sinon.stub().returns(true),
5151
},
52+
"../../../../src/utils.js": {
53+
PKG_VERSION: "0.0.0-test",
54+
},
5255
});
5356

5457
t.context.createUi5App = createUi5App;

test/lib/tools/create_ui5_app/create_ui5_app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ test.beforeEach(async (t) => {
104104
},
105105
"../../../../src/utils.js": {
106106
dirExists: t.context.dirExists,
107+
PKG_VERSION: "0.0.0-test",
107108
},
108109
});
109110

@@ -175,6 +176,7 @@ test("All parameters", async (t) => {
175176
gte1_142_0: false,
176177
lt1_110_0: false,
177178
lt1_124_0: false,
179+
mcpServerVersion: "0.0.0-test",
178180
namespace: "com.test.apiapp",
179181
oDataEntitySet: "Products",
180182
oDataV4Url: "https://localhost/odata/v4/service/",

0 commit comments

Comments
 (0)