@evlop/commons 1.0.256 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":"AAkFA,iBAAS,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,SAuHlE;AAGD,eAAe,QAAQ,CAAC"}
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"}
@@ -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: _edlString, scriptsById, variables: scriptVariables } = extractScriptsAndVariables(edlString);
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(edlString);
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(_edlString).split(openingOrClosingTagRegex).forEach(token => {
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 stringTemplate = compileStringTemplate(token.trim());
119
+ const parts = breakTemplateStringToExpressionsAndStaticString(he_1.decode(token)).map(({ type, value }) => type == 'expression' ? compileExpression(value) : value);
88
120
  if (parentNode) {
89
- parentNode.children.push(stringTemplate);
121
+ parentNode.children.push(...parts);
90
122
  }
91
123
  else {
92
- jsxObjects.push(stringTemplate);
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 = lodash_1.keys(variableProps).map(key => lodash_1.toPath(key)[0]).filter(key => staticProps[key]);
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":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/edl/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parser.test.d.ts.map
@@ -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,UA0B7D"}
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(/:\w+/g, (match) => {
14
- const paramKey = match.substring(1); // Remove the ':' prefix
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]; // Remove the param from the copy to avoid duplicating in the query string
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,mCAAmC;IACnC,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACpC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,0EAA0E;YACvG,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,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;AA1BD,oCA0BC"}
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 handlebar temaplates', function () {
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?", { id: "42", a: 1 });
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?", { a: 1 });
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?", { id: "hello world" });
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?", { id: "42", a: "hello world" });
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,2BAA2B,EAAE;IAClC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,yBAAY,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,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,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,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,mBAAmB,EAAE,EAAE,CAAC,CAAC;QACrD,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,aAAa,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAClE,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,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,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"}
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.256",
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": {