@sap-ux/odata-service-writer 0.10.2 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/annotations.d.ts +11 -0
- package/dist/data/annotations.d.ts.map +1 -0
- package/dist/data/annotations.js +94 -0
- package/dist/data/annotations.js.map +1 -0
- package/dist/data/defaults.d.ts +3 -3
- package/dist/data/defaults.d.ts.map +1 -1
- package/dist/data/defaults.js +20 -20
- package/dist/data/defaults.js.map +1 -1
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -12
- package/dist/index.js.map +1 -1
- package/dist/translations/odata-service-writer.i18n.json +2 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +44 -42
- package/templates/add/annotation.xml +18 -0
- package/templates/extend/manifest.json +11 -3
- package/CHANGELOG.md +0 -94
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NamespaceAlias, OdataService } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the namespaces parsed from the specified metadata and annotations.
|
|
4
|
+
*
|
|
5
|
+
* @param {Partial<OdataService>} service - an odata service where at least metadata and annotations properties are defined
|
|
6
|
+
* @param {string} service.metadata - OData service metadata xml
|
|
7
|
+
* @param {string} service.annotations - OData service annotations xml
|
|
8
|
+
* @returns A reference to the namspaces array
|
|
9
|
+
*/
|
|
10
|
+
export declare function getAnnotationNamespaces({ metadata, annotations }: Partial<OdataService>): NamespaceAlias[];
|
|
11
|
+
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/data/annotations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc,EAAE,CAmB1G"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAnnotationNamespaces = void 0;
|
|
4
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
5
|
+
const i18n_1 = require("../i18n");
|
|
6
|
+
/**
|
|
7
|
+
* Returns the namespaces parsed from the specified metadata and annotations.
|
|
8
|
+
*
|
|
9
|
+
* @param {Partial<OdataService>} service - an odata service where at least metadata and annotations properties are defined
|
|
10
|
+
* @param {string} service.metadata - OData service metadata xml
|
|
11
|
+
* @param {string} service.annotations - OData service annotations xml
|
|
12
|
+
* @returns A reference to the namspaces array
|
|
13
|
+
*/
|
|
14
|
+
function getAnnotationNamespaces({ metadata, annotations }) {
|
|
15
|
+
// Enhance service with annotations namespaces
|
|
16
|
+
const schemaNamespaces = metadata ? getNamespaces(metadata) : [];
|
|
17
|
+
if (annotations === null || annotations === void 0 ? void 0 : annotations.xml) {
|
|
18
|
+
// Parse once
|
|
19
|
+
const annotationsJson = xmlToJson(annotations.xml);
|
|
20
|
+
return schemaNamespaces.map((schema) => {
|
|
21
|
+
// Check if alias exists in backend annotation file, if so use it
|
|
22
|
+
const annotationAlias = annotations.xml && schema.namespace ? getAliasFromAnnotation(annotationsJson, schema.namespace) : '';
|
|
23
|
+
if (annotationAlias) {
|
|
24
|
+
schema.alias = annotationAlias;
|
|
25
|
+
}
|
|
26
|
+
return schema;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return schemaNamespaces;
|
|
30
|
+
}
|
|
31
|
+
exports.getAnnotationNamespaces = getAnnotationNamespaces;
|
|
32
|
+
/**
|
|
33
|
+
* Convert specified xml string to JSON.
|
|
34
|
+
*
|
|
35
|
+
* @param xml - the schema to parse
|
|
36
|
+
* @returns parsed object representation of passed XML
|
|
37
|
+
*/
|
|
38
|
+
function xmlToJson(xml) {
|
|
39
|
+
const options = {
|
|
40
|
+
attributeNamePrefix: '',
|
|
41
|
+
ignoreAttributes: false,
|
|
42
|
+
ignoreNameSpace: true,
|
|
43
|
+
parseAttributeValue: true
|
|
44
|
+
};
|
|
45
|
+
try {
|
|
46
|
+
const parser = new fast_xml_parser_1.XMLParser(options);
|
|
47
|
+
return parser.parse(xml, true);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw new Error((0, i18n_1.t)('error.unparseableXML', { error }));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Gets all the schema namespaces and their aliases from the provided metadata.
|
|
55
|
+
*
|
|
56
|
+
* @param metadata - odata service metadata
|
|
57
|
+
* @returns Array of namespaces and their aliases
|
|
58
|
+
*/
|
|
59
|
+
function getNamespaces(metadata) {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
const jsonMetadata = xmlToJson(metadata);
|
|
62
|
+
let schema = (_b = (_a = jsonMetadata['edmx:Edmx']) === null || _a === void 0 ? void 0 : _a['edmx:DataServices']) === null || _b === void 0 ? void 0 : _b['Schema'];
|
|
63
|
+
if (!schema) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
// Can be array or single item
|
|
67
|
+
if (!Array.isArray(schema)) {
|
|
68
|
+
schema = [schema];
|
|
69
|
+
}
|
|
70
|
+
return schema.map((item) => {
|
|
71
|
+
return {
|
|
72
|
+
namespace: item.Namespace,
|
|
73
|
+
alias: item.Alias || ''
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Gets namespace aliases from the specified annotations xml.
|
|
79
|
+
*
|
|
80
|
+
* @param annotations - annotations definition as json
|
|
81
|
+
* @param namespace - the namespace to search
|
|
82
|
+
* @returns An alias for the specified namespace or empty string
|
|
83
|
+
*/
|
|
84
|
+
function getAliasFromAnnotation(annotations, namespace) {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
let references = (_a = annotations['edmx:Edmx']) === null || _a === void 0 ? void 0 : _a['edmx:Reference'];
|
|
87
|
+
// Can be array or single item
|
|
88
|
+
if (!Array.isArray(references)) {
|
|
89
|
+
references = [references];
|
|
90
|
+
}
|
|
91
|
+
const annoNamespace = references.find((ref) => { var _a, _b; return ((_a = ref['edmx:Include']) === null || _a === void 0 ? void 0 : _a['Namespace']) === namespace && ((_b = ref['edmx:Include']) === null || _b === void 0 ? void 0 : _b['Alias']); });
|
|
92
|
+
return annoNamespace ? (_b = annoNamespace['edmx:Include']) === null || _b === void 0 ? void 0 : _b['Alias'] : '';
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=annotations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/data/annotations.ts"],"names":[],"mappings":"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"}
|
package/dist/data/defaults.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { OdataService } from '../types';
|
|
1
|
+
import type { OdataService } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Enhances the provided OData service object with path, name and model information.
|
|
4
4
|
* Directly modifies the passed object reference.
|
|
5
5
|
*
|
|
6
|
-
* @param {OdataService}
|
|
6
|
+
* @param {OdataService} service - the OData service object
|
|
7
7
|
*/
|
|
8
|
-
export declare function enhanceData(
|
|
8
|
+
export declare function enhanceData(service: OdataService): void;
|
|
9
9
|
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CA6BvD"}
|
package/dist/data/defaults.js
CHANGED
|
@@ -6,35 +6,35 @@ const constants_1 = require("./constants");
|
|
|
6
6
|
* Enhances the provided OData service object with path, name and model information.
|
|
7
7
|
* Directly modifies the passed object reference.
|
|
8
8
|
*
|
|
9
|
-
* @param {OdataService}
|
|
9
|
+
* @param {OdataService} service - the OData service object
|
|
10
10
|
*/
|
|
11
|
-
function enhanceData(
|
|
11
|
+
function enhanceData(service) {
|
|
12
12
|
var _a;
|
|
13
13
|
// Set default path
|
|
14
|
-
if (
|
|
15
|
-
|
|
14
|
+
if (service.path === undefined) {
|
|
15
|
+
service.path = '/';
|
|
16
16
|
}
|
|
17
|
-
else if (
|
|
18
|
-
|
|
17
|
+
else if (service.path.substring(service.path.length - 1) !== '/') {
|
|
18
|
+
service.path = service.path + '/';
|
|
19
19
|
}
|
|
20
|
-
if (
|
|
21
|
-
|
|
20
|
+
if (service.name === undefined) {
|
|
21
|
+
service.name = constants_1.DEFAULT_DATASOURCE_NAME;
|
|
22
22
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
23
|
+
if (service.model === undefined) {
|
|
24
|
+
service.model = ''; // Default UI5 model
|
|
25
25
|
}
|
|
26
26
|
// enhance preview settings with service configuration
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
|
|
27
|
+
service.previewSettings = service.previewSettings || {};
|
|
28
|
+
service.previewSettings.path =
|
|
29
|
+
service.previewSettings.path || `/${((_a = service.path) === null || _a === void 0 ? void 0 : _a.split('/').filter((s) => s !== '')[0]) || ''}`;
|
|
30
|
+
service.previewSettings.url = service.previewSettings.url || service.url || 'http://localhost';
|
|
31
|
+
if (service.client && !service.previewSettings.client) {
|
|
32
|
+
service.previewSettings.client = service.client;
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
|
|
34
|
+
if (service.destination && !service.previewSettings.destination) {
|
|
35
|
+
service.previewSettings.destination = service.destination.name;
|
|
36
|
+
if (service.destination.instance) {
|
|
37
|
+
service.previewSettings.destinationInstance = service.destination.instance;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAEtD;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAEtD;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,OAAqB;;IAC7C,mBAAmB;IACnB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;KACtB;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAChE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;KACrC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,IAAI,GAAG,mCAAuB,CAAC;KAC1C;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC7B,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,oBAAoB;KAC3C;IAED,sDAAsD;IACtD,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACxD,OAAO,CAAC,eAAe,CAAC,IAAI;QACxB,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAI,EAAE,EAAE,CAAC;IAC5G,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;QACnD,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;KACnD;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE;QAC7D,OAAO,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/D,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,OAAO,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC9E;KACJ;AACL,CAAC;AA7BD,kCA6BC"}
|
package/dist/data/index.d.ts
CHANGED
package/dist/data/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
package/dist/data/index.js
CHANGED
|
@@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./defaults"), exports);
|
|
14
|
+
__exportStar(require("./annotations"), exports);
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/data/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B;AAC3B,gDAA8B"}
|
package/dist/i18n.d.ts
CHANGED
package/dist/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMxC;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9C;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEzD"}
|
package/dist/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sDAA8B;AAC9B,mHAAyE;AAEzE,MAAM,EAAE,GAAG,sBAAsB,CAAC;AAElC;;GAEG;AACH,SAAsB,QAAQ;;QAC1B,MAAM,iBAAO,CAAC,IAAI,CAAC;YACf,SAAS,EAAE;gBACP,EAAE,EAAE;oBACA,CAAC,EAAE,CAAC,EAAE,wCAAY;iBACrB;aACJ;YACD,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,CAAC,EAAE,CAAC;SACX,CAAC,CAAC;IACP,CAAC;CAAA;AAZD,4BAYC;AAED;;;;;;GAMG;AACH,SAAgB,CAAC,CAAC,GAAW,EAAE,OAAkB;IAC7C,OAAO,iBAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAFD,cAEC;AAED,QAAQ,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Editor } from 'mem-fs-editor';
|
|
1
|
+
import type { Editor } from 'mem-fs-editor';
|
|
2
2
|
import { OdataService, OdataVersion } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Writes the odata service related file updates to an existing UI5 project specified by the base path.
|
|
5
5
|
*
|
|
6
6
|
*
|
|
7
7
|
* @param {string} basePath - the root path of an existing UI5 application
|
|
8
|
-
* @param {OdataService}
|
|
8
|
+
* @param {OdataService} service - the OData service instance
|
|
9
9
|
* @param {Editor} [fs] - the memfs editor instance
|
|
10
10
|
* @throws {Error} - if required UI5 project files are not found
|
|
11
11
|
* @returns {Promise<Editor>} the updated memfs editor instance
|
|
12
12
|
*/
|
|
13
|
-
declare function generate(basePath: string,
|
|
13
|
+
declare function generate(basePath: string, service: OdataService, fs?: Editor): Promise<Editor>;
|
|
14
14
|
export { generate, OdataVersion, OdataService };
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQ5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiBrD;;;;;;;;;GASG;AACH,iBAAe,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyF7F;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -41,19 +41,19 @@ function validateBasePath(basePath, fs) {
|
|
|
41
41
|
*
|
|
42
42
|
*
|
|
43
43
|
* @param {string} basePath - the root path of an existing UI5 application
|
|
44
|
-
* @param {OdataService}
|
|
44
|
+
* @param {OdataService} service - the OData service instance
|
|
45
45
|
* @param {Editor} [fs] - the memfs editor instance
|
|
46
46
|
* @throws {Error} - if required UI5 project files are not found
|
|
47
47
|
* @returns {Promise<Editor>} the updated memfs editor instance
|
|
48
48
|
*/
|
|
49
|
-
function generate(basePath,
|
|
49
|
+
function generate(basePath, service, fs) {
|
|
50
50
|
var _a, _b;
|
|
51
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
52
|
if (!fs) {
|
|
53
53
|
fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
|
|
54
54
|
}
|
|
55
55
|
validateBasePath(basePath, fs);
|
|
56
|
-
(0, data_1.enhanceData)(
|
|
56
|
+
(0, data_1.enhanceData)(service);
|
|
57
57
|
// merge content into existing files
|
|
58
58
|
const templateRoot = (0, path_1.join)(__dirname, '..', 'templates');
|
|
59
59
|
const extRoot = (0, path_1.join)(templateRoot, 'extend');
|
|
@@ -68,17 +68,17 @@ function generate(basePath, data, fs) {
|
|
|
68
68
|
throw new Error((0, i18n_1.t)('error.requiredProjectPropertyNotFound', { property: `'${appProp}'.id`, path: manifestPath }));
|
|
69
69
|
}
|
|
70
70
|
const manifestJsonExt = fs.read((0, path_1.join)(extRoot, `manifest.json`));
|
|
71
|
-
fs.extendJSON(manifestPath, JSON.parse((0, ejs_1.render)(manifestJsonExt,
|
|
71
|
+
fs.extendJSON(manifestPath, JSON.parse((0, ejs_1.render)(manifestJsonExt, service)));
|
|
72
72
|
// ui5.yaml
|
|
73
73
|
const ui5ConfigPath = (0, path_1.join)(basePath, 'ui5.yaml');
|
|
74
74
|
const ui5Config = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5ConfigPath));
|
|
75
|
-
ui5Config.addBackendToFioriToolsProxydMiddleware(
|
|
75
|
+
ui5Config.addBackendToFioriToolsProxydMiddleware(service.previewSettings);
|
|
76
76
|
// ui5-local.yaml
|
|
77
77
|
const ui5LocalConfigPath = (0, path_1.join)(basePath, 'ui5-local.yaml');
|
|
78
78
|
const ui5LocalConfig = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5LocalConfigPath));
|
|
79
|
-
ui5LocalConfig.addFioriToolsProxydMiddleware({ backend: [
|
|
79
|
+
ui5LocalConfig.addFioriToolsProxydMiddleware({ backend: [service.previewSettings] });
|
|
80
80
|
// Add mockserver entries
|
|
81
|
-
if (
|
|
81
|
+
if (service.metadata) {
|
|
82
82
|
// package.json updates
|
|
83
83
|
const mockDevDeps = {
|
|
84
84
|
devDependencies: {
|
|
@@ -93,18 +93,23 @@ function generate(basePath, data, fs) {
|
|
|
93
93
|
fs.writeJSON(packagePath, packageJson);
|
|
94
94
|
// copy existing `ui5.yaml` as starting point for ui5-mock.yaml
|
|
95
95
|
const ui5MockConfig = yield ui5_config_1.UI5Config.newInstance(ui5Config.toString());
|
|
96
|
-
ui5MockConfig.addMockServerMiddleware(
|
|
96
|
+
ui5MockConfig.addMockServerMiddleware(service.path);
|
|
97
97
|
fs.write((0, path_1.join)(basePath, 'ui5-mock.yaml'), ui5MockConfig.toString());
|
|
98
98
|
// also add mockserver middleware to ui5-local.yaml
|
|
99
|
-
ui5LocalConfig.addMockServerMiddleware(
|
|
99
|
+
ui5LocalConfig.addMockServerMiddleware(service.path);
|
|
100
100
|
// create local copy of metadata and annotations
|
|
101
|
-
fs.write((0, path_1.join)(basePath, 'webapp', 'localService', 'metadata.xml'), (0, prettify_xml_1.default)(
|
|
101
|
+
fs.write((0, path_1.join)(basePath, 'webapp', 'localService', 'metadata.xml'), (0, prettify_xml_1.default)(service.metadata, { indent: 4 }));
|
|
102
|
+
// Adds local annotations to datasources section of manifest.json and writes the annotations file
|
|
103
|
+
if (service.localAnnotationsName) {
|
|
104
|
+
const namespaces = (0, data_1.getAnnotationNamespaces)(service);
|
|
105
|
+
fs.copyTpl((0, path_1.join)(templateRoot, 'add', 'annotation.xml'), (0, path_1.join)(basePath, 'webapp', 'annotations', `${service.localAnnotationsName}.xml`), Object.assign(Object.assign({}, service), { namespaces }));
|
|
106
|
+
}
|
|
102
107
|
}
|
|
103
108
|
// write yamls to disk
|
|
104
109
|
fs.write(ui5ConfigPath, ui5Config.toString());
|
|
105
110
|
fs.write(ui5LocalConfigPath, ui5LocalConfig.toString());
|
|
106
|
-
if ((_b =
|
|
107
|
-
fs.write((0, path_1.join)(basePath, 'webapp', 'localService', `${
|
|
111
|
+
if ((_b = service.annotations) === null || _b === void 0 ? void 0 : _b.xml) {
|
|
112
|
+
fs.write((0, path_1.join)(basePath, 'webapp', 'localService', `${service.annotations.technicalName}.xml`), (0, prettify_xml_1.default)(service.annotations.xml, { indent: 4 }));
|
|
108
113
|
}
|
|
109
114
|
return fs;
|
|
110
115
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAA4B;AAC5B,mCAAiD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"error": {
|
|
3
3
|
"requiredProjectFileNotFound": "Invalid project structure. Cannot find required file {{-path}}",
|
|
4
|
-
"requiredProjectPropertyNotFound": "Required project property: {{-property}} was not found in file: {{-path}}"
|
|
4
|
+
"requiredProjectPropertyNotFound": "Required project property: {{-property}} was not found in file: {{-path}}",
|
|
5
|
+
"unparseableXML": "Unparseable XML was specified: {{-error}}"
|
|
5
6
|
}
|
|
6
7
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { ProxyBackend } from '@sap-ux/ui5-config';
|
|
1
|
+
import type { ProxyBackend } from '@sap-ux/ui5-config';
|
|
2
2
|
export declare enum OdataVersion {
|
|
3
3
|
v2 = "2",
|
|
4
4
|
v4 = "4"
|
|
5
5
|
}
|
|
6
|
+
export interface NamespaceAlias {
|
|
7
|
+
namespace: string;
|
|
8
|
+
alias: string;
|
|
9
|
+
}
|
|
6
10
|
export interface OdataService {
|
|
7
11
|
url?: string;
|
|
8
12
|
client?: string;
|
|
@@ -19,6 +23,7 @@ export interface OdataService {
|
|
|
19
23
|
technicalName: string;
|
|
20
24
|
xml: string;
|
|
21
25
|
};
|
|
26
|
+
localAnnotationsName?: string;
|
|
22
27
|
previewSettings?: Partial<ProxyBackend>;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,oBAAY,YAAY;IACpB,EAAE,MAAM;IACR,EAAE,MAAM;CACX;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C"}
|
package/package.json
CHANGED
|
@@ -1,43 +1,45 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
2
|
+
"name": "@sap-ux/odata-service-writer",
|
|
3
|
+
"version": "0.11.2",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"LICENSE",
|
|
8
|
+
"dist",
|
|
9
|
+
"templates"
|
|
10
|
+
],
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"ejs": "3.1.6",
|
|
13
|
+
"i18next": "20.3.2",
|
|
14
|
+
"mem-fs": "2.1.0",
|
|
15
|
+
"mem-fs-editor": "9.0.0",
|
|
16
|
+
"@sap-ux/ui5-config": "0.12.1",
|
|
17
|
+
"prettify-xml": "1.2.0",
|
|
18
|
+
"fast-xml-parser": "4.0.1"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@types/ejs": "3.1.0",
|
|
22
|
+
"@types/fs-extra": "9.0.13",
|
|
23
|
+
"@types/mem-fs-editor": "7.0.0",
|
|
24
|
+
"fs-extra": "10.0.0",
|
|
25
|
+
"lodash": "4.17.21"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"pnpm": ">=6.26.1",
|
|
29
|
+
"node": ">=12.22.5 < 13.0.0 || >= 14.16.0 < 15.0.0 || >=16.1.0 < 17.0.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "pnpm clean && tsc",
|
|
33
|
+
"clean": "rimraf dist test/test-output coverage",
|
|
34
|
+
"format": "prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",
|
|
35
|
+
"lint": "eslint . --ext .ts",
|
|
36
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
37
|
+
"test": "jest --ci --forceExit --detectOpenHandles --colors",
|
|
38
|
+
"test-u": "jest --ci --forceExit --detectOpenHandles --colors -u",
|
|
39
|
+
"test:local": "node -r ts-node/register test/index.ts",
|
|
40
|
+
"watch": "tsc --watch",
|
|
41
|
+
"link": "pnpm link --global",
|
|
42
|
+
"unlink": "pnpm unlink --global"
|
|
43
|
+
},
|
|
44
|
+
"readme": "# @sap-ux/odata-service-writer\n\nWrites the odata service related file updates to an existing UI5 project specified by the base path.\n\n\n## Installation\nNpm\n`npm install --save @sap-ux/odata-service-writer`\n\nYarn\n`yarn add @sap-ux/odata-service-writer`\n\nPnpm\n`pnpm add @sap-ux/odata-service-writer`\n\n## Usage\n\n```Typescript\nimport { OdataVersion, OdataService, generate } from '@sap-ux/odata-service-writer';\nimport { create, Editor } from 'mem-fs-editor';\nimport { create as createStorage } from 'mem-fs';\n\n...\n\nfs = create(createStorage()); // Or use fs from Yeoman\n\n const config: OdataService = {\n url: 'http://localhost',\n path: '/sap/odata/testme',\n version: OdataVersion.v4,\n destination: {\n name: 'test'\n }\n };\nconst testDir = '/tmp';\n\nawait generate(testDir, config, fs);\n \n```\n\n## Keywords\nSAP Fiori Freestyle\n"
|
|
45
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
|
|
2
|
+
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
|
|
3
|
+
<edmx:Include Namespace="com.sap.vocabularies.Common.v1" Alias="Common"/>
|
|
4
|
+
</edmx:Reference>
|
|
5
|
+
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
|
|
6
|
+
<edmx:Include Namespace="com.sap.vocabularies.UI.v1" Alias="UI"/>
|
|
7
|
+
</edmx:Reference>
|
|
8
|
+
<edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Communication.xml">
|
|
9
|
+
<edmx:Include Namespace="com.sap.vocabularies.Communication.v1" Alias="Communication"/>
|
|
10
|
+
</edmx:Reference>
|
|
11
|
+
<edmx:Reference Uri="<%- path %>$metadata"><% namespaces.forEach(function(namespace){ %>
|
|
12
|
+
<edmx:Include Namespace="<%- namespace.namespace %>"<% if (namespace.alias) { %> Alias="<%- namespace.alias %>"<% } %>/><% }); %>
|
|
13
|
+
</edmx:Reference>
|
|
14
|
+
<edmx:DataServices>
|
|
15
|
+
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="local">
|
|
16
|
+
</Schema>
|
|
17
|
+
</edmx:DataServices>
|
|
18
|
+
</edmx:Edmx>
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
"type": "OData",
|
|
7
7
|
"settings": {
|
|
8
8
|
"annotations": [<%if (locals.annotations && annotations.technicalName) {%>
|
|
9
|
-
|
|
9
|
+
"<%- annotations.technicalName %>"<% if (locals.localAnnotationsName) {%>,<%}%><% } %><% if (locals.localAnnotationsName) { %>
|
|
10
|
+
"<%- localAnnotationsName %>"<% } %>
|
|
10
11
|
],
|
|
11
12
|
"localUri": "localService/metadata.xml"<%if (version === '4') {%>,
|
|
12
13
|
"odataVersion": "4.0"<% } %><%if (version === '2') {%>,
|
|
@@ -14,12 +15,19 @@
|
|
|
14
15
|
}
|
|
15
16
|
}<%if (locals.annotations && annotations.technicalName) {%>,
|
|
16
17
|
"<%- annotations.technicalName %>": {
|
|
17
|
-
"uri": "/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Annotations(TechnicalName='<%- annotations.technicalName %>',Version='0001')/$value/",
|
|
18
|
+
"uri": "/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Annotations(TechnicalName='<%- encodeURIComponent(annotations.technicalName) %>',Version='0001')/$value/",
|
|
18
19
|
"type": "ODataAnnotation",
|
|
19
20
|
"settings": {
|
|
20
21
|
"localUri": "localService/<%- annotations.technicalName %>.xml"
|
|
21
22
|
}
|
|
22
|
-
}<% }
|
|
23
|
+
}<% } %><% if (locals.localAnnotationsName) { %>,
|
|
24
|
+
"<%- localAnnotationsName %>": {
|
|
25
|
+
"type": "ODataAnnotation",
|
|
26
|
+
"uri": "annotations/<%- localAnnotationsName %>.xml",
|
|
27
|
+
"settings": {
|
|
28
|
+
"localUri": "annotations/<%- localAnnotationsName %>.xml"
|
|
29
|
+
}
|
|
30
|
+
} <% } %>
|
|
23
31
|
}
|
|
24
32
|
},
|
|
25
33
|
"sap.ui5": {
|
package/CHANGELOG.md
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# @sap-ux/odata-service-writer
|
|
2
|
-
|
|
3
|
-
## 0.10.2
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- Updated dependencies [04e4f35]
|
|
8
|
-
- @sap-ux/ui5-config@0.11.1
|
|
9
|
-
|
|
10
|
-
## 0.10.1
|
|
11
|
-
|
|
12
|
-
### Patch Changes
|
|
13
|
-
|
|
14
|
-
- Updated dependencies [3783887]
|
|
15
|
-
- @sap-ux/ui5-config@0.11.0
|
|
16
|
-
|
|
17
|
-
## 0.10.0
|
|
18
|
-
|
|
19
|
-
### Minor Changes
|
|
20
|
-
|
|
21
|
-
- a9ef807: Reorganized how different middlewares are added to the ui5\*.yaml files
|
|
22
|
-
|
|
23
|
-
## 0.9.8
|
|
24
|
-
|
|
25
|
-
### Patch Changes
|
|
26
|
-
|
|
27
|
-
- ccff534: Add inline schema in ui5\*.yaml files for yaml-language-server
|
|
28
|
-
|
|
29
|
-
## 0.9.7
|
|
30
|
-
|
|
31
|
-
### Patch Changes
|
|
32
|
-
|
|
33
|
-
- b7ee596: port tool-suite change - add delay to appreload middleware
|
|
34
|
-
- Updated dependencies [b7ee596]
|
|
35
|
-
- @sap-ux/ui5-config@0.10.3
|
|
36
|
-
|
|
37
|
-
## 0.9.6
|
|
38
|
-
|
|
39
|
-
### Patch Changes
|
|
40
|
-
|
|
41
|
-
- 8de261b: Update npm dep and devDeps
|
|
42
|
-
- Updated dependencies [8de261b]
|
|
43
|
-
- @sap-ux/ui5-config@0.10.2
|
|
44
|
-
|
|
45
|
-
## 0.9.5
|
|
46
|
-
|
|
47
|
-
### Patch Changes
|
|
48
|
-
|
|
49
|
-
- a7670a0: Update ui5 verison handling for ui5.yaml. Allow setting view name in basic template, enhancements to yaml lib.
|
|
50
|
-
- Updated dependencies [a7670a0]
|
|
51
|
-
- @sap-ux/ui5-config@0.10.1
|
|
52
|
-
|
|
53
|
-
## 0.9.4
|
|
54
|
-
|
|
55
|
-
### Patch Changes
|
|
56
|
-
|
|
57
|
-
- d37c8bd: Added support for selecting a custom view name for Fiori freestyle - Basic template
|
|
58
|
-
- Updated dependencies [d37c8bd]
|
|
59
|
-
- @sap-ux/ui5-config@0.10.0
|
|
60
|
-
|
|
61
|
-
## 0.9.3
|
|
62
|
-
|
|
63
|
-
### Patch Changes
|
|
64
|
-
|
|
65
|
-
- 6888c5b: Add Readme for modules, add deploy script FF template, engines.node update to lts and small clean-up
|
|
66
|
-
- Updated dependencies [6888c5b]
|
|
67
|
-
- @sap-ux/ui5-config@0.9.3
|
|
68
|
-
|
|
69
|
-
## 0.9.2
|
|
70
|
-
|
|
71
|
-
### Patch Changes
|
|
72
|
-
|
|
73
|
-
- a16d4e7: fix versions in modules for patch instead of minor
|
|
74
|
-
- Updated dependencies [a16d4e7]
|
|
75
|
-
- @sap-ux/ui5-config@0.9.2
|
|
76
|
-
|
|
77
|
-
## 0.10.0
|
|
78
|
-
|
|
79
|
-
### Minor Changes
|
|
80
|
-
|
|
81
|
-
- cd119ea: Fix missing client in fiori proxy config #138
|
|
82
|
-
|
|
83
|
-
### Patch Changes
|
|
84
|
-
|
|
85
|
-
- Updated dependencies [cd119ea]
|
|
86
|
-
- @sap-ux/ui5-config@0.10.0
|
|
87
|
-
|
|
88
|
-
## 0.9.1
|
|
89
|
-
|
|
90
|
-
### Patch Changes
|
|
91
|
-
|
|
92
|
-
- f6e1223: Dummy update to test changesets and pipeline
|
|
93
|
-
- Updated dependencies [f6e1223]
|
|
94
|
-
- @sap-ux/ui5-config@0.9.1
|