@peter.naydenov/morph 3.0.1 → 3.1.0

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/Changelog.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
 
4
4
 
5
+ ### 3.1.0 (2025-08-19)
6
+ - [x] Helper named argument 'full'. Gives access to full template data. Use it create mixed conditions among many different parameters, not only the iteration data;
7
+
8
+
9
+
5
10
  ### 3.0.1 ( 2025-06-14)
6
11
  - [x] Fix: Bad full render after call of snippets;
7
12
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@peter.naydenov/morph",
3
3
  "description": "Template engine",
4
- "version": "3.0.1",
4
+ "version": "3.1.0",
5
5
  "license": "MIT",
6
6
  "author": "Peter Naydenov",
7
7
  "main": "./src/main.js",
@@ -27,13 +27,13 @@
27
27
  "@peter.naydenov/walk": "^5.0.1"
28
28
  },
29
29
  "devDependencies": {
30
- "@rollup/plugin-commonjs": "^28.0.3",
30
+ "@rollup/plugin-commonjs": "^28.0.6",
31
31
  "@rollup/plugin-node-resolve": "^16.0.1",
32
32
  "@rollup/plugin-terser": "^0.4.4",
33
33
  "c8": "^10.1.3",
34
- "chai": "5.2.0",
35
- "mocha": "11.6.0",
36
- "rollup": "^4.43.0"
34
+ "chai": "5.3.1",
35
+ "mocha": "11.7.1",
36
+ "rollup": "^4.46.3"
37
37
  },
38
38
  "repository": {
39
39
  "type": "git",
@@ -186,7 +186,7 @@ function build ( tpl, extra=false, buildDependencies={} ) {
186
186
  theData.forEach ( (d,i) => {
187
187
  if ( d == null ) return
188
188
  const dType = _defineDataType ( d )
189
- const routeName = helpers[name]( {data:d, ...extendArguments});
189
+ const routeName = helpers[name]( {data:d, ...extendArguments, full: theData });
190
190
  if ( routeName == null ) return
191
191
  if ( dType === 'object' ) theData[i]['text'] = render ( d, routeName, helpers, deps )
192
192
  else theData[i] = render ( d, routeName, helpers, deps )
@@ -206,16 +206,16 @@ function build ( tpl, extra=false, buildDependencies={} ) {
206
206
  case 'data':
207
207
  switch ( dataType ) {
208
208
  case 'array':
209
- theData.forEach ( (d,i) => theData[i] = ( d instanceof Function ) ? helpers[name]({ data:d(), ...extendArguments }) : helpers[name]( {data:d, ...extendArguments} ) )
209
+ theData.forEach ( (d,i) => theData[i] = ( d instanceof Function ) ? helpers[name]({ data:d(), ...extendArguments, full: theData }) : helpers[name]( {data:d, ...extendArguments, full: theData}) )
210
210
  break
211
211
  case 'object':
212
- nestedData[level] = [helpers[name]( {data:theData,...extendArguments} )]
212
+ nestedData[level] = [helpers[name]( {data:theData,...extendArguments, full: theData } )]
213
213
  break
214
214
  case 'function':
215
- nestedData[level] = [helpers[name]( {data:theData(),...extendArguments} )]
215
+ nestedData[level] = [helpers[name]( {data:theData(),...extendArguments, full: theData } )]
216
216
  break
217
217
  case 'primitive':
218
- nestedData[level] = helpers[name]( {data:theData,...extendArguments} )
218
+ nestedData[level] = helpers[name]( {data:theData,...extendArguments, full: theData } )
219
219
  break
220
220
  } // switch dataType
221
221
 
@@ -227,7 +227,7 @@ function build ( tpl, extra=false, buildDependencies={} ) {
227
227
  if ( isRenderFunction ) theData.forEach ( (d,i) => {
228
228
  if ( d == null ) return
229
229
  const dType = _defineDataType ( d );
230
- const text = helpers[name]( {data:d, ...extendArguments });
230
+ const text = helpers[name]( {data:d, ...extendArguments, full: theData });
231
231
 
232
232
  if ( text == null ) theData[i] = null
233
233
  if ( dType === 'object' ) d['text'] = text
@@ -245,14 +245,14 @@ function build ( tpl, extra=false, buildDependencies={} ) {
245
245
  })
246
246
  break
247
247
  case 'function':
248
- nestedData[level] = helpers[name]( {data:theData(), ...extendArguments} )
248
+ nestedData[level] = helpers[name]( {data:theData(), ...extendArguments, full: theData} )
249
249
  break
250
250
  case 'primitive':
251
- if ( isRenderFunction ) nestedData[level] = helpers[name]({ data:theData, ...extendArguments} )
251
+ if ( isRenderFunction ) nestedData[level] = helpers[name]({ data:theData, ...extendArguments, full: theData} )
252
252
  else nestedData[level] = render ( theData, name, helpers, deps )
253
253
  break
254
254
  case 'object':
255
- if ( isRenderFunction ) nestedData[level][iData]['text'] = helpers[name]({ data:theData, ...extendArguments} )
255
+ if ( isRenderFunction ) nestedData[level][iData]['text'] = helpers[name]({ data:theData, ...extendArguments, full: theData })
256
256
  else {
257
257
  theData [ 'text' ] = render ( theData, name, helpers, deps )
258
258
  }
@@ -263,7 +263,7 @@ function build ( tpl, extra=false, buildDependencies={} ) {
263
263
  // TODO: Test extendedRender
264
264
  const isValid = typeof helpers[name] === 'function'; // Render could be a function and template.
265
265
  if ( isValid ) {
266
- nestedData[0].forEach ( (d,i) => nestedData[0][i] = helpers[name]( {data:d, ...extendArguments} ) )
266
+ nestedData[0].forEach ( (d,i) => nestedData[0][i] = helpers[name]({ data:d, ...extendArguments, full: theData }) )
267
267
  }
268
268
  else {
269
269
  // TODO: Error...