Skip to content

Commit b2a8d01

Browse files
authored
fix: introduce constant package to handle UI5 default version (#721)
* fix: introduce constant package to handle UI5 default version in central package * fix: http lik for reference * fix: reuse constant * fix: typo * fix: use constant for object initialization
1 parent d09ce00 commit b2a8d01

File tree

86 files changed

+727
-312
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+727
-312
lines changed

.changeset/tender-rivers-matter.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@ui5-language-assistant/vscode-ui5-language-assistant-bas-ext": patch
3+
"vscode-ui5-language-assistant": patch
4+
"@ui5-language-assistant/xml-views-completion": patch
5+
"@ui5-language-assistant/xml-views-validation": patch
6+
"@ui5-language-assistant/xml-views-tooltip": patch
7+
"@ui5-language-assistant/language-server": patch
8+
"@ui5-language-assistant/test-utils": patch
9+
"@ui5-language-assistant/semantic-model": patch
10+
"@ui5-language-assistant/semantic-model-types": patch
11+
"@ui5-language-assistant/logic-utils": patch
12+
"@ui5-language-assistant/constant": patch
13+
"@ui5-language-assistant/context": patch
14+
---
15+
16+
fix: introduce constant package to handle UI5 default version in central package

packages/constant/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[![npm (scoped)](https://img.shields.io/npm/v/@ui5-language-assistant/constant.svg)](https://www.npmjs.com/package/@ui5-language-assistant/constant)
2+
3+
# @ui5-language-assistant/constant
4+
5+
A package for constants that can be reused a cross other packages. This package is introduced to avoid cyclic dependency.
6+
7+
## Installation
8+
9+
With npm:
10+
11+
- `npm install @ui5-language-assistant/constant`
12+
13+
With Yarn:
14+
15+
- `yarn add @ui5-language-assistant/constant`
16+
17+
## Usage
18+
19+
This package only exposes programmatic APIs, import the package and use the exported APIs
20+
defined in [api.ts](./src/api.ts).
21+
22+
## Support
23+
24+
Please open [issues](https://github.com/SAP/ui5-language-assistant/issues) on github.
25+
26+
## Contributing
27+
28+
See [CONTRIBUTING.md](./CONTRIBUTING.md).
29+
30+
## Licensing
31+
32+
Copyright 2022 SAP SE. Please see our [LICENSE](../../LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/ui5-language-assistant).

packages/constant/jest.config.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const { join } = require("path");
2+
const defaultConfig = require("../../jest.config");
3+
4+
module.exports = {
5+
...defaultConfig,
6+
globals: {
7+
"ts-jest": {
8+
tsconfig: join(__dirname, "tsconfig-test.json"),
9+
diagnostics: {
10+
// warnOnly: true,
11+
exclude: /\.(spec|test)\.ts$/,
12+
},
13+
},
14+
},
15+
};

packages/constant/package.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"name": "@ui5-language-assistant/constant",
3+
"version": "0.0.0",
4+
"private": true,
5+
"description": "constant variables used across packages",
6+
"keywords": [],
7+
"files": [
8+
".reuse",
9+
"LICENSES",
10+
"lib/src",
11+
"src"
12+
],
13+
"main": "lib/src/api.js",
14+
"repository": "https://github.com/sap/ui5-language-assistant/",
15+
"license": "Apache-2.0",
16+
"dependencies": {},
17+
"devDependencies": {},
18+
"scripts": {
19+
"ci": "npm-run-all clean compile lint",
20+
"clean": "rimraf ./lib ./coverage ./nyc_output",
21+
"compile": "yarn run clean && tsc -p .",
22+
"compile:watch": "tsc -p . --watch",
23+
"lint": "eslint . --ext .ts --max-warnings=0 --ignore-path=../../.gitignore",
24+
"test": "echo nothing to test",
25+
"format:fix": "prettier --write \"**/*.@(js|ts|json|md)\" --ignore-path=.gitignore"
26+
}
27+
}

packages/constant/src/api.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export {
2+
DEFAULT_OPEN_UI5_VERSION,
3+
DEFAULT_UI5_FRAMEWORK,
4+
DEFAULT_UI5_VERSION,
5+
DEFAULT_UI5_VERSION_BASE,
6+
OPEN_FRAMEWORK,
7+
UI5_FRAMEWORK_CDN_BASE_URL,
8+
} from "./constant";

packages/constant/src/constant.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export const OPEN_FRAMEWORK = "OpenUI5";
2+
export const DEFAULT_UI5_FRAMEWORK = "SAPUI5";
3+
4+
//https://ui5.sap.com/version.json
5+
export const DEFAULT_UI5_VERSION = "1.71.70";
6+
// https://sdk.openui5.org/version.json
7+
export const DEFAULT_OPEN_UI5_VERSION = "1.71.67";
8+
9+
export const DEFAULT_UI5_VERSION_BASE = "1.71";
10+
11+
export const UI5_FRAMEWORK_CDN_BASE_URL = {
12+
OpenUI5: "https://sdk.openui5.org/",
13+
SAPUI5: "https://ui5.sap.com/",
14+
};

packages/constant/tsconfig.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": "../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"rootDir": ".",
5+
"outDir": "lib",
6+
"baseUrl": "."
7+
},
8+
"include": ["src/**/*", "api.d.ts"]
9+
}

packages/context/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@ui5-language-assistant/logger": "0.0.1",
2323
"@ui5-language-assistant/logic-utils": "4.0.18",
2424
"@ui5-language-assistant/settings": "4.0.9",
25+
"@ui5-language-assistant/constant": "0.0.0",
2526
"fs-extra": "10.1.0",
2627
"globby": "11.1.0",
2728
"js-yaml": "4.1.0",

packages/context/src/api.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ export {
2121
getUI5Yaml,
2222
findYamlPath,
2323
} from "./ui5-yaml";
24-
export { getCDNBaseUrl } from "./utils";
2524
export { cache } from "./cache";
2625
export {
2726
reactOnCdsFileChange,

packages/context/src/types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,8 @@ import { ConvertedMetadata } from "@sap-ux/vocabularies-types";
66
import type { Manifest } from "@sap-ux/project-access";
77
import { FetchResponse } from "@ui5-language-assistant/logic-utils";
88

9-
export const DEFAULT_UI5_FRAMEWORK = "SAPUI5";
10-
export const DEFAULT_UI5_VERSION = "1.71.69";
11-
export const DEFAULT_UI5_VERSION_BASE = "1.71";
129
export const UI5_VERSION_S4_PLACEHOLDER = "${sap.ui5.dist.version}";
13-
export const UI5_FRAMEWORK_CDN_BASE_URL = {
14-
OpenUI5: "https://sdk.openui5.org/",
15-
SAPUI5: "https://ui5.sap.com/",
16-
};
10+
1711
export const UI5_PROJECT_TYPE = "UI5";
1812
export const CAP_PROJECT_TYPE = "CAP";
1913
export enum DirName {

packages/context/src/ui5-model.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,25 @@ import {
77
UI5Framework,
88
UI5SemanticModel,
99
} from "@ui5-language-assistant/semantic-model-types";
10+
import {
11+
DEFAULT_UI5_VERSION_BASE,
12+
DEFAULT_UI5_VERSION,
13+
} from "@ui5-language-assistant/constant";
1014
import {
1115
generate,
1216
Json,
1317
TypeNameFix,
1418
} from "@ui5-language-assistant/semantic-model";
15-
import {
16-
DEFAULT_UI5_VERSION_BASE,
17-
Fetcher,
18-
UI5_VERSION_S4_PLACEHOLDER,
19-
} from "./types";
19+
import { Fetcher, UI5_VERSION_S4_PLACEHOLDER } from "./types";
2020
import {
2121
fetch,
2222
getLocalUrl,
2323
tryFetch,
24-
} from "@ui5-language-assistant/logic-utils";
25-
import {
26-
getLibraryAPIJsonUrl,
27-
getLogger,
2824
getVersionInfoUrl,
2925
getVersionJsonUrl,
30-
} from "./utils";
31-
import { DEFAULT_UI5_VERSION } from "./types";
26+
getLibraryAPIJsonUrl,
27+
} from "@ui5-language-assistant/logic-utils";
28+
import { getLogger } from "./utils";
3229
import { cache } from "./cache";
3330

3431
export type VersionMapJsonType = Record<

packages/context/src/ui5-yaml.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ import { maxBy, map, filter } from "lodash";
33
import { readFile } from "fs-extra";
44
import { URI } from "vscode-uri";
55
import { loadAll } from "js-yaml";
6-
import { DEFAULT_UI5_FRAMEWORK, YamlDetails } from "./types";
6+
import { YamlDetails } from "./types";
77
import { FileName } from "@sap-ux/project-access";
88
import findUp from "find-up";
99
import { cache } from "./cache";
1010
import { getLogger } from "./utils";
1111
import { findAllFilesInWorkspace } from "./utils/fileUtils";
12+
import { DEFAULT_UI5_FRAMEWORK } from "@ui5-language-assistant/constant";
1213

1314
export async function initializeUI5YamlData(
1415
workspaceFolderPath: string

packages/context/src/utils/index.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
export {
2-
getLibraryAPIJsonUrl,
3-
getVersionInfoUrl,
4-
getVersionJsonUrl,
5-
getCDNBaseUrl,
6-
} from "./ui5";
7-
81
export {
92
findAppRoot,
103
getLocalAnnotationsForService,

packages/context/src/utils/ui5.ts

Lines changed: 0 additions & 57 deletions
This file was deleted.

packages/context/test/unit/api.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { UI5SemanticModel } from "@ui5-language-assistant/semantic-model-types";
66
import { getContext, isContext } from "../../src/api";
77
import type { Context } from "../../src/types";
88
import * as projectAccess from "@sap-ux/project-access";
9+
import { OPEN_FRAMEWORK } from "@ui5-language-assistant/constant";
910

1011
describe("context", () => {
1112
afterEach(() => {
@@ -39,7 +40,7 @@ describe("context", () => {
3940
const getYamlDetailsStub = jest
4041
.spyOn(ui5Yaml, "getYamlDetails")
4142
.mockResolvedValue({
42-
framework: "OpenUI5",
43+
framework: OPEN_FRAMEWORK,
4344
version: undefined,
4445
});
4546
const getSemanticModelStub = jest
@@ -80,7 +81,7 @@ describe("context", () => {
8081
const getYamlDetailsStub = jest
8182
.spyOn(ui5Yaml, "getYamlDetails")
8283
.mockResolvedValue({
83-
framework: "OpenUI5",
84+
framework: OPEN_FRAMEWORK,
8485
version: undefined,
8586
});
8687
const getSemanticModelStub = jest

0 commit comments

Comments
 (0)