@evlop/commons 1.0.255 → 1.0.257
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/src/data-sources/collection.d.ts.map +1 -1
- package/dist/src/data-sources/collection.js +2 -0
- package/dist/src/data-sources/collection.js.map +1 -1
- package/dist/src/data-sources/collectionRecord.d.ts.map +1 -1
- package/dist/src/data-sources/collectionRecord.js +2 -0
- package/dist/src/data-sources/collectionRecord.js.map +1 -1
- package/dist/src/edl/parser.d.ts.map +1 -1
- package/dist/src/edl/parser.js +43 -9
- package/dist/src/edl/parser.js.map +1 -1
- package/dist/src/edl/parser.test.d.ts +2 -0
- package/dist/src/edl/parser.test.d.ts.map +1 -0
- package/dist/src/edl/parser.test.js +222 -0
- package/dist/src/edl/parser.test.js.map +1 -0
- package/dist/src/helpers/pathHelper.d.ts.map +1 -1
- package/dist/src/helpers/pathHelper.js +7 -7
- package/dist/src/helpers/pathHelper.js.map +1 -1
- package/dist/src/helpers/pathhelper.test.js +6 -6
- package/dist/src/helpers/pathhelper.test.js.map +1 -1
- package/package.json +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/data-sources/collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAwC,MAAM,aAAa,CAAC;AAchF,QAAA,MAAM,oBAAoB,EAAE,
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/data-sources/collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAwC,MAAM,aAAa,CAAC;AAchF,QAAA,MAAM,oBAAoB,EAAE,WAmC3B,CAAA;AA6CD,eAAe,oBAAoB,CAAC"}
|
@@ -16,6 +16,8 @@ function _getModel(collectionName, dispatch) {
|
|
16
16
|
const getModel = lodash_1.memoize(_getModel);
|
17
17
|
const collectionDataSource = async (options, { dispatch }) => {
|
18
18
|
const { key, sourceId, collectionName = sourceId, params: requestOptions } = options;
|
19
|
+
if (!collectionName)
|
20
|
+
return;
|
19
21
|
let reqOptions = {};
|
20
22
|
if (requestOptions) {
|
21
23
|
if (typeof requestOptions === 'string') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/data-sources/collection.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/data-sources/collection.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collectionRecord.d.ts","sourceRoot":"","sources":["../../../src/data-sources/collectionRecord.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAA8C,MAAM,aAAa,CAAC;AAYtF,QAAA,MAAM,0BAA0B,EAAE,
|
1
|
+
{"version":3,"file":"collectionRecord.d.ts","sourceRoot":"","sources":["../../../src/data-sources/collectionRecord.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAA8C,MAAM,aAAa,CAAC;AAYtF,QAAA,MAAM,0BAA0B,EAAE,WASjC,CAAA;AAyBD,eAAe,0BAA0B,CAAC"}
|
@@ -16,6 +16,8 @@ function _getModel(collectionName, dispatch) {
|
|
16
16
|
const getModel = lodash_1.memoize(_getModel);
|
17
17
|
const collectionRecordDataSource = async (options, { dispatch }) => {
|
18
18
|
const { collectionName, id, recordId = id, populate } = options;
|
19
|
+
if (!collectionName || !recordId)
|
20
|
+
return;
|
19
21
|
const { response } = await dispatch(reducers_1.collectionGetRecord(collectionName, recordId, populate));
|
20
22
|
const _Model = getModel(collectionName, dispatch);
|
21
23
|
return response ? new _Model(response) : null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collectionRecord.js","sourceRoot":"","sources":["../../../src/data-sources/collectionRecord.ts"],"names":[],"mappings":";;AAAA,mCAAiC;AACjC,+BAAoC;AACpC,wCAAmC;AACnC,4CAAyD;AACzD,0CAAsF;AAGtF,SAAS,SAAS,CAAE,cAAsB,EAAE,QAAkB;IAC1D,IAAG,CAAC,cAAc;QAAE,OAAO,eAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"collectionRecord.js","sourceRoot":"","sources":["../../../src/data-sources/collectionRecord.ts"],"names":[],"mappings":";;AAAA,mCAAiC;AACjC,+BAAoC;AACpC,wCAAmC;AACnC,4CAAyD;AACzD,0CAAsF;AAGtF,SAAS,SAAS,CAAE,cAAsB,EAAE,QAAkB;IAC1D,IAAG,CAAC,cAAc;QAAE,OAAO,eAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,gCAAqB,CAAC,cAAc,CAAC,CAAC,CAAA;IAC7D,IAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,eAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,QAAQ,GAAG,gBAAO,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,0BAA0B,GAAgB,KAAK,EAAE,OAAO,EAAE,EAAC,QAAQ,EAAC,EAAC,EAAE;IACzE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEhE,IAAG,CAAC,cAAc,IAAI,CAAC,QAAQ;QAAE,OAAO;IAExC,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,QAAQ,CAAC,8BAAmB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC,CAAA;AAGD,0BAA0B,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAC7D,0BAA0B,CAAC,UAAU,GAAG,kBAAkB,CAAC;AAC3D,0BAA0B,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC3C,0BAA0B,CAAC,oBAAoB,GAAG;IAC9C,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAC;IACxF,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAC;IACxF,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAC;CAClG,CAAC;AACF,0BAA0B,CAAC,aAAa,GAAG;IACvC,cAAc,EAAE,EAAE;CACrB,CAAC;AACF,0BAA0B,CAAC,YAAY,GAAG,CAAC,OAAO,EAAC,EAAE;IACjD,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEhE,OAAO,SAAM,CAAC;QACV,cAAc;QACd,QAAQ;QACR,QAAQ;KACX,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,qCAAyB,CAAC,CAAA;AAC3C,CAAC,CAAC;AAGF,kBAAe,0BAA0B,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":"AAqHA,iBAAS,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,SAiIlE;AAGD,eAAe,QAAQ,CAAC"}
|
package/dist/src/edl/parser.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const lodash_1 = require("lodash");
|
4
|
+
const he_1 = require("he");
|
4
5
|
const inbuiltVariables = ['context', 'data', 'setRuntimeData', 'setState', 'setStates', 'state', 'dispatchAction', 'createAction'];
|
5
6
|
// Regex to match expressions in EDL
|
6
7
|
const expressionRegex = /{(\((?:(?!\)\}).)*\)|[^{}]*)}/g;
|
@@ -13,12 +14,33 @@ const attributeRegex = /([a-zA-Z0-9_\-\.\:]+)=("[^"]*"|'[^']*'|`[^`]*`|\{\{(?:(?
|
|
13
14
|
// Regex to split the JSX string into tokens using opening or closing tag regex pattern
|
14
15
|
const openingOrClosingTagRegex = /(<(?:\/)?(?:[a-zA-Z0-9_]+)(?:(?:\s+[a-zA-Z0-9_\-\.\:]+=(?:"[^"]*"|'[^']*'|`[^`]*`|\{\{(?:(?!\}\}).)*\}\}|\{\[(?:(?!\]\}).)*\]\}|\{\((?:(?!\)\}).)*\)\}|\{[^\}]*\}))*)\s*(?:\/)?>)/s;
|
15
16
|
const TemplateCompiler = {
|
17
|
+
breakTemplateStringToExpressionsAndStaticString: (templateString) => {
|
18
|
+
const parts = [];
|
19
|
+
const regex = new RegExp(expressionRegex);
|
20
|
+
let match;
|
21
|
+
let lastIndex = 0;
|
22
|
+
while ((match = regex.exec(templateString)) !== null) {
|
23
|
+
const startIndex = match.index;
|
24
|
+
const endIndex = startIndex + match[0].length;
|
25
|
+
if (startIndex > lastIndex) {
|
26
|
+
parts.push({ startIndex, endIndex, type: 'string', value: templateString.slice(lastIndex, startIndex) });
|
27
|
+
}
|
28
|
+
parts.push({ startIndex, endIndex, type: 'expression', value: match[1] });
|
29
|
+
lastIndex = endIndex;
|
30
|
+
}
|
31
|
+
if (lastIndex < templateString.length) {
|
32
|
+
parts.push({ startIndex: lastIndex, endIndex: templateString.length, type: 'string', value: templateString.slice(lastIndex) });
|
33
|
+
}
|
34
|
+
return parts;
|
35
|
+
},
|
16
36
|
compileStringTemplate: (variables) => {
|
17
37
|
const variableNamesString = `{ ${variables.join(', ')} }`;
|
18
|
-
return templateString => {
|
38
|
+
return (templateString) => {
|
19
39
|
try {
|
20
40
|
// replace all the {expression} with ${ expression } and wrap the whole template in a function
|
21
41
|
const processedTemplate = templateString.replace(expressionRegex, "${ $1 }");
|
42
|
+
if (processedTemplate === templateString)
|
43
|
+
return templateString;
|
22
44
|
return new Function(variableNamesString, `return \`${processedTemplate}\`;`);
|
23
45
|
}
|
24
46
|
catch (e) { }
|
@@ -37,6 +59,13 @@ const TemplateCompiler = {
|
|
37
59
|
function generateUniqueId() {
|
38
60
|
return lodash_1.random(1000, 9999999999).toString(36);
|
39
61
|
}
|
62
|
+
function removeUnnecessaryWhitespace(htmlString) {
|
63
|
+
return htmlString
|
64
|
+
.replace(/>\s*\n\s*/g, '>') // Remove whitespace/newline between closing bracket and content
|
65
|
+
.replace(/\s*\n\s*</g, '<') // Remove whitespace/newline between opening bracket and content
|
66
|
+
.replace(/\s*\n\s*/g, ' ') // Remove whitespace from start and end of each line
|
67
|
+
.trim(); // Trim leading and trailing whitespaces
|
68
|
+
}
|
40
69
|
const scriptTagRegex = /<(Script)([^>]*?)>(.*?)<\/\1>/gs;
|
41
70
|
const variableDeclarationRegex = /(const|var|let)\s+(\$[a-zA-Z0-9_]+)/g;
|
42
71
|
function extractScriptsAndVariables(inputString) {
|
@@ -66,17 +95,20 @@ function extractAsVariables(inputString) {
|
|
66
95
|
// This function takes a JSX string as input and returns an array of objects representing the parsed JSX structure.
|
67
96
|
function parseEDL(edlString, additionalVariables) {
|
68
97
|
// separate the scripts and extract variables from the edl string
|
69
|
-
const { cleanedString:
|
98
|
+
const { cleanedString: edlStringWithCodeRemovedFromScript, scriptsById, variables: scriptVariables } = extractScriptsAndVariables(edlString);
|
99
|
+
// remove unnecessary whitespace from the edl string, after code has been removed from the script tags
|
100
|
+
const edlStringWithCodeRemovedFromScriptAndWhitespaceRemoved = removeUnnecessaryWhitespace(edlStringWithCodeRemovedFromScript);
|
70
101
|
// Extract :as variables and include them in the union
|
71
|
-
const asVariables = extractAsVariables(
|
102
|
+
const asVariables = extractAsVariables(edlStringWithCodeRemovedFromScriptAndWhitespaceRemoved);
|
72
103
|
const variables = lodash_1.union(inbuiltVariables, Array.from(additionalVariables), scriptVariables, asVariables);
|
73
104
|
const compileStringTemplate = TemplateCompiler.compileStringTemplate(variables);
|
74
105
|
const compileExpression = TemplateCompiler.compileExpression(variables);
|
106
|
+
const breakTemplateStringToExpressionsAndStaticString = TemplateCompiler.breakTemplateStringToExpressionsAndStaticString;
|
75
107
|
// Initialize an empty array to store the final JSX objects
|
76
108
|
const jsxObjects = [];
|
77
109
|
// Initialize an empty stack to keep track of the nested JSX elements
|
78
110
|
const jsxStack = [];
|
79
|
-
String(
|
111
|
+
String(edlStringWithCodeRemovedFromScript).split(openingOrClosingTagRegex).forEach(token => {
|
80
112
|
// If the token is an empty string, skip it
|
81
113
|
if (token.trim() === '') {
|
82
114
|
return;
|
@@ -84,12 +116,12 @@ function parseEDL(edlString, additionalVariables) {
|
|
84
116
|
// If the token is not an opening or closing JSX tag, treat it as plain text
|
85
117
|
if (token[0] !== '<') {
|
86
118
|
const parentNode = jsxStack[jsxStack.length - 1];
|
87
|
-
const
|
119
|
+
const parts = breakTemplateStringToExpressionsAndStaticString(he_1.decode(token)).map(({ type, value }) => type == 'expression' ? compileExpression(value) : value);
|
88
120
|
if (parentNode) {
|
89
|
-
parentNode.children.push(
|
121
|
+
parentNode.children.push(...parts);
|
90
122
|
}
|
91
123
|
else {
|
92
|
-
jsxObjects.push(
|
124
|
+
jsxObjects.push(...parts);
|
93
125
|
}
|
94
126
|
return;
|
95
127
|
}
|
@@ -137,8 +169,10 @@ function parseEDL(edlString, additionalVariables) {
|
|
137
169
|
lodash_1.set(staticProps, attributeName, value);
|
138
170
|
}
|
139
171
|
}
|
140
|
-
// Get the shared prop names between static and variable props
|
141
|
-
const sharedPropNames =
|
172
|
+
// Get the shared prop names between static and variable props, ensuring uniqueness
|
173
|
+
const sharedPropNames = Array.from(new Set(Object.keys(variableProps)
|
174
|
+
.map(key => lodash_1.toPath(key)[0])
|
175
|
+
.filter(key => staticProps[key])));
|
142
176
|
// Create a new JSX element object with the tag name, properties, and an empty children array
|
143
177
|
const newElement = { _id: generateUniqueId(), tag: tagName, staticProps, variableProps, children: [], sharedPropNames };
|
144
178
|
// If the tag is a Script tag, replace it with a UseEffect tag, and convert code to UseEffect function
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":";;AAAA,
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../src/edl/parser.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,222 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const parser_1 = __importDefault(require("./parser"));
|
7
|
+
const chai_1 = require("chai");
|
8
|
+
describe('parseEDL', () => {
|
9
|
+
it('should parse an EDL string with a single tag and no props', () => {
|
10
|
+
const edlString = '<div></div>';
|
11
|
+
const result = parser_1.default(edlString, new Set());
|
12
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
13
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
14
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({});
|
15
|
+
chai_1.expect(result[0].variableProps).to.deep.equal({});
|
16
|
+
chai_1.expect(result[0].children).to.deep.equal([]);
|
17
|
+
});
|
18
|
+
it('should parse an EDL string with a single tag and static props', () => {
|
19
|
+
const edlString = '<div class="container" id="main"></div>';
|
20
|
+
const result = parser_1.default(edlString, new Set());
|
21
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
22
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
23
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ className: 'container', id: 'main' });
|
24
|
+
chai_1.expect(result[0].variableProps).to.deep.equal({});
|
25
|
+
chai_1.expect(result[0].children).to.deep.equal([]);
|
26
|
+
});
|
27
|
+
it('should parse an EDL string with inline expression interpolation', () => {
|
28
|
+
const edlString = '<Text>Hello {user.name}!</Text>';
|
29
|
+
const result = parser_1.default(edlString, new Set(['user']));
|
30
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
31
|
+
chai_1.expect(result[0].tag).to.equal('Text');
|
32
|
+
chai_1.expect(result[0].children).to.be.an('array').with.lengthOf(3);
|
33
|
+
chai_1.expect(result[0].children[0]).to.equal('Hello ');
|
34
|
+
chai_1.expect(result[0].children[1]).to.be.a('function'); // The interpolated expression
|
35
|
+
chai_1.expect(result[0].children[2]).to.equal('!');
|
36
|
+
});
|
37
|
+
it('should parse an EDL string with nested tags', () => {
|
38
|
+
const edlString = '<div><span>Hello World</span></div>';
|
39
|
+
const result = parser_1.default(edlString, new Set());
|
40
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
41
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
42
|
+
chai_1.expect(result[0].children).to.be.an('array').with.lengthOf(1);
|
43
|
+
chai_1.expect(result[0].children[0].tag).to.equal('span');
|
44
|
+
chai_1.expect(result[0].children[0].children).to.deep.equal(['Hello World']);
|
45
|
+
});
|
46
|
+
it('should parse an EDL string with dynamic props', () => {
|
47
|
+
const edlString = '<input type="text" value={state.value} />';
|
48
|
+
const additionalVariables = new Set(['state']);
|
49
|
+
const result = parser_1.default(edlString, additionalVariables);
|
50
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
51
|
+
chai_1.expect(result[0].tag).to.equal('input');
|
52
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ type: 'text' });
|
53
|
+
chai_1.expect(result[0].variableProps).to.have.property('value');
|
54
|
+
chai_1.expect(result[0].variableProps.value).to.be.a('function');
|
55
|
+
});
|
56
|
+
it('should parse an EDL string with a script tag and extract variables', () => {
|
57
|
+
const edlString = `<Script>
|
58
|
+
const $var1 = 42;
|
59
|
+
let $var2 = "";
|
60
|
+
</Script>`;
|
61
|
+
const result = parser_1.default(edlString, new Set());
|
62
|
+
console.log(result);
|
63
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
64
|
+
chai_1.expect(result[0].tag).to.equal('Script');
|
65
|
+
chai_1.expect(result[0].variableProps).to.have.property(':function');
|
66
|
+
chai_1.expect(result[0].variableProps[':function']).to.be.a('function');
|
67
|
+
});
|
68
|
+
it('should handle self-closing tags', () => {
|
69
|
+
const edlString = '<img src="image.png" />';
|
70
|
+
const result = parser_1.default(edlString, new Set());
|
71
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
72
|
+
chai_1.expect(result[0].tag).to.equal('img');
|
73
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ src: 'image.png' });
|
74
|
+
});
|
75
|
+
it('should parse an EDL string with both static and dynamic props', () => {
|
76
|
+
const edlString = '<button class="btn" onClick={handleClick}>Click Me</button>';
|
77
|
+
const additionalVariables = new Set(['handleClick']);
|
78
|
+
const result = parser_1.default(edlString, additionalVariables);
|
79
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
80
|
+
chai_1.expect(result[0].tag).to.equal('button');
|
81
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ className: 'btn' });
|
82
|
+
chai_1.expect(result[0].variableProps).to.have.property('onClick');
|
83
|
+
chai_1.expect(result[0].variableProps.onClick).to.be.a('function');
|
84
|
+
chai_1.expect(result[0].children).to.deep.equal(['Click Me']);
|
85
|
+
});
|
86
|
+
it('should parse an EDL string with mixed content (text and elements)', () => {
|
87
|
+
const edlString = '<div>Text before <span>inline text</span> and after</div>';
|
88
|
+
const result = parser_1.default(edlString, new Set());
|
89
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
90
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
91
|
+
chai_1.expect(result[0].children).to.be.an('array').with.lengthOf(3);
|
92
|
+
chai_1.expect(result[0].children[0]).to.equal('Text before ');
|
93
|
+
chai_1.expect(result[0].children[1].tag).to.equal('span');
|
94
|
+
chai_1.expect(result[0].children[1].children).to.deep.equal(['inline text']);
|
95
|
+
chai_1.expect(result[0].children[2]).to.equal(' and after');
|
96
|
+
});
|
97
|
+
it('should identify shared props when they modify different object properties', () => {
|
98
|
+
const edlString = '<div style.color="red" style.width={width}></div>';
|
99
|
+
const result = parser_1.default(edlString, new Set(['width']));
|
100
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
101
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
102
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
103
|
+
style: { color: 'red' }
|
104
|
+
});
|
105
|
+
chai_1.expect(result[0].variableProps).to.have.property('style.width');
|
106
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal(['style']);
|
107
|
+
});
|
108
|
+
it('should handle multiple shared object properties', () => {
|
109
|
+
const edlString = '<div style.color="red" style.width={width} style.height="100px" style.margin={margin}></div>';
|
110
|
+
const result = parser_1.default(edlString, new Set(['width', 'margin']));
|
111
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
112
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
113
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
114
|
+
style: {
|
115
|
+
color: 'red',
|
116
|
+
height: '100px'
|
117
|
+
}
|
118
|
+
});
|
119
|
+
chai_1.expect(result[0].variableProps).to.have.keys('style.width', 'style.margin');
|
120
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal(['style']);
|
121
|
+
});
|
122
|
+
it('should handle mixed shared object properties and regular props', () => {
|
123
|
+
const edlString = '<div class="container" style.color="red" style.width={width} onClick={handleClick}></div>';
|
124
|
+
const result = parser_1.default(edlString, new Set(['width', 'handleClick']));
|
125
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
126
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
127
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
128
|
+
className: 'container',
|
129
|
+
style: { color: 'red' }
|
130
|
+
});
|
131
|
+
chai_1.expect(result[0].variableProps).to.have.keys('style.width', 'onClick');
|
132
|
+
console.log(result[0].sharedPropNames);
|
133
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal(['style']);
|
134
|
+
});
|
135
|
+
it('should not mark props as shared when only static object properties exist', () => {
|
136
|
+
const edlString = '<div style.color="red" style.width="100px"></div>';
|
137
|
+
const result = parser_1.default(edlString, new Set());
|
138
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
139
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
140
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
141
|
+
style: {
|
142
|
+
color: 'red',
|
143
|
+
width: '100px'
|
144
|
+
}
|
145
|
+
});
|
146
|
+
chai_1.expect(result[0].variableProps).to.deep.equal({});
|
147
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal([]);
|
148
|
+
});
|
149
|
+
it('should not mark props as shared when only dynamic object properties exist', () => {
|
150
|
+
const edlString = '<div style.color={color} style.width={width}></div>';
|
151
|
+
const result = parser_1.default(edlString, new Set(['color', 'width']));
|
152
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
153
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
154
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({});
|
155
|
+
chai_1.expect(result[0].variableProps).to.have.keys('style.color', 'style.width');
|
156
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal([]);
|
157
|
+
});
|
158
|
+
it('should parse an EDL string with static props only', () => {
|
159
|
+
const edlString = '<div class="container" id="main"></div>';
|
160
|
+
const result = parser_1.default(edlString, new Set());
|
161
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
162
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
163
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ className: 'container', id: 'main' });
|
164
|
+
chai_1.expect(result[0].variableProps).to.deep.equal({});
|
165
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal([]);
|
166
|
+
});
|
167
|
+
it('should parse an EDL string with dynamic props only', () => {
|
168
|
+
const edlString = '<input value={state.value} onChange={handleChange} />';
|
169
|
+
const additionalVariables = new Set(['state', 'handleChange']);
|
170
|
+
const result = parser_1.default(edlString, additionalVariables);
|
171
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
172
|
+
chai_1.expect(result[0].tag).to.equal('input');
|
173
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({});
|
174
|
+
chai_1.expect(result[0].variableProps).to.have.all.keys('value', 'onChange');
|
175
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal([]);
|
176
|
+
});
|
177
|
+
it('should parse an EDL string with both static and dynamic props (not shared)', () => {
|
178
|
+
const edlString = '<button class="btn" onClick={handleClick}>Click Me</button>';
|
179
|
+
const additionalVariables = new Set(['handleClick']);
|
180
|
+
const result = parser_1.default(edlString, additionalVariables);
|
181
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
182
|
+
chai_1.expect(result[0].tag).to.equal('button');
|
183
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ className: 'btn' });
|
184
|
+
chai_1.expect(result[0].variableProps).to.have.property('onClick');
|
185
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal([]);
|
186
|
+
chai_1.expect(result[0].children).to.deep.equal(['Click Me']);
|
187
|
+
});
|
188
|
+
it('should identify single shared prop correctly', () => {
|
189
|
+
const edlString = '<div class="static-class" class={dynamicClass}></div>';
|
190
|
+
const result = parser_1.default(edlString, new Set(['dynamicClass']));
|
191
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
192
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
193
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({ className: 'static-class' });
|
194
|
+
chai_1.expect(result[0].variableProps).to.have.property('className');
|
195
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal(['className']);
|
196
|
+
});
|
197
|
+
it('should handle multiple shared props correctly', () => {
|
198
|
+
const edlString = '<div id="static-id" class="static-class" id={dynamicId} class={dynamicClass}></div>';
|
199
|
+
const result = parser_1.default(edlString, new Set(['dynamicId', 'dynamicClass']));
|
200
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
201
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
202
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
203
|
+
id: 'static-id',
|
204
|
+
className: 'static-class'
|
205
|
+
});
|
206
|
+
chai_1.expect(result[0].variableProps).to.have.keys('id', 'className');
|
207
|
+
chai_1.expect(result[0].sharedPropNames).to.have.members(['id', 'className']);
|
208
|
+
});
|
209
|
+
it('should handle mixed shared and non-shared props', () => {
|
210
|
+
const edlString = '<div id="static-id" class="static-class" id={dynamicId} onClick={handleClick}></div>';
|
211
|
+
const result = parser_1.default(edlString, new Set(['dynamicId', 'handleClick']));
|
212
|
+
chai_1.expect(result).to.be.an('array').with.lengthOf(1);
|
213
|
+
chai_1.expect(result[0].tag).to.equal('div');
|
214
|
+
chai_1.expect(result[0].staticProps).to.deep.equal({
|
215
|
+
id: 'static-id',
|
216
|
+
className: 'static-class'
|
217
|
+
});
|
218
|
+
chai_1.expect(result[0].variableProps).to.have.keys('id', 'onClick');
|
219
|
+
chai_1.expect(result[0].sharedPropNames).to.deep.equal(['id']);
|
220
|
+
});
|
221
|
+
});
|
222
|
+
//# sourceMappingURL=parser.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../src/edl/parser.test.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pathHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/pathHelper.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,
|
1
|
+
{"version":3,"file":"pathHelper.d.ts","sourceRoot":"","sources":["../../../src/helpers/pathHelper.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UA2B7D"}
|
@@ -9,16 +9,16 @@ function generatePath(pathTemplate, params) {
|
|
9
9
|
if (!pathTemplate || !params)
|
10
10
|
return pathTemplate;
|
11
11
|
const paramsCopy = { ...params };
|
12
|
-
// Replace placeholders in the path
|
13
|
-
let path = String(pathTemplate).replace(
|
14
|
-
const paramKey = match.substring(
|
12
|
+
// Replace placeholders in the path, now handling optional params (with ?)
|
13
|
+
let path = String(pathTemplate).replace(/\/:\w+\??/g, (match) => {
|
14
|
+
const paramKey = match.substring(2).replace('?', ''); // Remove '/:' prefix and optional '?'
|
15
15
|
if (paramsCopy[paramKey] !== undefined) {
|
16
16
|
const value = paramsCopy[paramKey];
|
17
|
-
delete paramsCopy[paramKey];
|
18
|
-
return encodeURIComponent(value);
|
17
|
+
delete paramsCopy[paramKey];
|
18
|
+
return '/' + encodeURIComponent(value);
|
19
19
|
}
|
20
|
-
return match;
|
21
|
-
});
|
20
|
+
return match.endsWith('?') ? '' : match; // Remove optional params if not provided
|
21
|
+
}) || '/';
|
22
22
|
// Use query-string to stringify the remaining params from the copy
|
23
23
|
const query = query_string_1.default.stringify(paramsCopy);
|
24
24
|
// Append query string if it's not empty
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pathHelper.js","sourceRoot":"","sources":["../../../src/helpers/pathHelper.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAEvC,SAAgB,YAAY,CAAC,YAAoB,EAAE,MAAW;IAE1D,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAElD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjC,
|
1
|
+
{"version":3,"file":"pathHelper.js","sourceRoot":"","sources":["../../../src/helpers/pathHelper.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAEvC,SAAgB,YAAY,CAAC,YAAoB,EAAE,MAAW;IAE1D,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAElD,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjC,0EAA0E;IAC1E,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;QAC5F,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACpC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,OAAO,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC1C;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC;IACtF,CAAC,CAAC,IAAI,GAAG,CAAC;IAGV,mEAAmE;IACnE,MAAM,KAAK,GAAG,sBAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEhD,wCAAwC;IACxC,IAAI,KAAK,EAAE;QACP,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;KACvB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AA3BD,oCA2BC"}
|
@@ -2,25 +2,25 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const chai_1 = require("chai");
|
4
4
|
const pathHelper_1 = require("./pathHelper");
|
5
|
-
describe('Test
|
5
|
+
describe('Test path generator', function () {
|
6
6
|
it('should replace params and append query string', () => {
|
7
|
-
const result = pathHelper_1.generatePath("/users/:id?/edit
|
7
|
+
const result = pathHelper_1.generatePath("/users/:id?/edit", { id: "42", a: 1 });
|
8
8
|
chai_1.expect(result).to.equal("/users/42/edit?a=1");
|
9
9
|
});
|
10
10
|
it('should handle optional path segments', () => {
|
11
|
-
const result = pathHelper_1.generatePath("/users/:id?/edit
|
11
|
+
const result = pathHelper_1.generatePath("/users/:id?/edit", { a: 1 });
|
12
12
|
chai_1.expect(result).to.equal("/users/edit?a=1");
|
13
13
|
});
|
14
14
|
it('should handle missing optional params', () => {
|
15
|
-
const result = pathHelper_1.generatePath("/users/:id?/edit
|
15
|
+
const result = pathHelper_1.generatePath("/users/:id?/edit", {});
|
16
16
|
chai_1.expect(result).to.equal("/users/edit");
|
17
17
|
});
|
18
18
|
it('should URL encode params', () => {
|
19
|
-
const result = pathHelper_1.generatePath("/users/:id
|
19
|
+
const result = pathHelper_1.generatePath("/users/:id", { id: "hello world" });
|
20
20
|
chai_1.expect(result).to.equal("/users/hello%20world");
|
21
21
|
});
|
22
22
|
it('should URL encode query string', () => {
|
23
|
-
const result = pathHelper_1.generatePath("/users/:id
|
23
|
+
const result = pathHelper_1.generatePath("/users/:id", { id: "42", a: "hello world" });
|
24
24
|
chai_1.expect(result).to.equal("/users/42?a=hello%20world");
|
25
25
|
});
|
26
26
|
it('should return root path when all path segments are optional and missing', () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"pathhelper.test.js","sourceRoot":"","sources":["../../../src/helpers/pathhelper.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,6CAA4C;AAE5C,QAAQ,CAAC,
|
1
|
+
{"version":3,"file":"pathhelper.test.js","sourceRoot":"","sources":["../../../src/helpers/pathhelper.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,6CAA4C;AAE5C,QAAQ,CAAC,qBAAqB,EAAE;IAC5B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,yBAAY,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,yBAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1D,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,yBAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpD,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,yBAAY,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACjE,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,yBAAY,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAC1E,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,yBAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChD,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,yBAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACnD,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@evlop/commons",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.257",
|
4
4
|
"description": "",
|
5
5
|
"main": "dist/main.js",
|
6
6
|
"peerDependencies": {
|
@@ -16,6 +16,7 @@
|
|
16
16
|
"dependencies": {
|
17
17
|
"axios-retry": "^3.3.1",
|
18
18
|
"events": "^3.3.0",
|
19
|
+
"he": "^1.2.0",
|
19
20
|
"moment": "^2.29.1"
|
20
21
|
},
|
21
22
|
"scripts": {
|