abdk-mustache-js 1.0.1 → 1.0.3

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
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.0.3] — 2026-04-11
11
+
12
+ ### Fixed
13
+
14
+ - `renderCompiledAsync` / `renderAsync`: `wrapView` was calling async view
15
+ functions **eagerly** at wrap time and returning `null` directly to
16
+ Mustache.js instead of returning a callable wrapper function. As a result,
17
+ every async function in the view was always rendered as an empty string,
18
+ regardless of its resolved value, and every async function — including unused
19
+ ones — was invoked unconditionally. `wrapView` now returns a proper wrapper
20
+ function registered in `wrappedValues`; the underlying async function is only
21
+ called when Mustache.js actually invokes it during rendering.
22
+
23
+ ---
24
+
25
+ ## [1.0.2] — 2026-04-11
26
+
27
+ ### Fixed
28
+
29
+ - `renderCompiledAsync` / `renderAsync`: `wrapView` now tracks already-wrapped
30
+ objects and arrays via a `wrappedValues` map, preventing infinite recursion
31
+ when the view contains circular references.
32
+ - `renderCompiledAsync` / `renderAsync`: `pendingValues` and `wrappedValues`
33
+ maps are now cleared after each render iteration, preventing stale cached
34
+ function results from carrying over into subsequent passes.
35
+
36
+ ---
37
+
10
38
  ## [1.0.1] — 2026-04-11
11
39
 
12
40
  ### Fixed
@@ -42,5 +70,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
42
70
  - Zero runtime dependencies
43
71
  - TypeScript declarations included
44
72
 
73
+ [1.0.2]: https://github.com/abdk-consulting/abdk-mustache-js/releases/tag/v1.0.2
45
74
  [1.0.1]: https://github.com/abdk-consulting/abdk-mustache-js/releases/tag/v1.0.1
46
75
  [1.0.0]: https://github.com/abdk-consulting/abdk-mustache-js/releases/tag/v1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,GAAG,EAAE,EACX,QAAQ,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,EAC9C,MAAM,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CAAA;CAAE,EACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,CAAC;AAEhD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA0I1D;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAO,EACnD,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,MAAM,CAER;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACzC,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,MAAM,CAYR;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAAO,EAClE,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,OAAO,CAAC,MAAM,CAAC,CAiEjB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;CAAO,EACnE,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,OAAO,CAAC,MAAM,CAAC,CAUjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,GAAG,EAAE,EACX,QAAQ,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,EAC9C,MAAM,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CAAA;CAAE,EACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,CAAC;AAEhD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA0I1D;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAO,EACnD,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,MAAM,CAER;AAED,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,EACzC,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,MAAM,CAYR;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAAO,EAClE,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,OAAO,CAAC,MAAM,CAAC,CAiFjB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,QAAQ,GAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;CAAO,EACnE,MAAM,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAmB,GAC9C,OAAO,CAAC,MAAM,CAAC,CAUjB"}
package/dist/index.js CHANGED
@@ -220,30 +220,47 @@ function render(template, view, partials = {}, escape = escapeHTML) {
220
220
  }
221
221
  function renderCompiledAsync(template_1, view_1) {
222
222
  return __awaiter(this, arguments, void 0, function* (template, view, partials = {}, escape = escapeHTML) {
223
+ const wrappedValues = new Map();
223
224
  const values = new Map();
224
225
  const pendingValues = new Map();
225
226
  const wrapView = (view) => {
226
- if (Array.isArray(view))
227
- return view.map(wrapView);
228
- else if (view && typeof view === "object")
229
- return Object.fromEntries(Object.entries(view).map(([key, value]) => [key, wrapView(value)]));
227
+ if (wrappedValues.has(view))
228
+ return wrappedValues.get(view);
229
+ else if (Array.isArray(view)) {
230
+ const wrappedArray = [];
231
+ wrappedValues.set(view, wrappedArray);
232
+ for (const item of view)
233
+ wrappedArray.push(wrapView(item));
234
+ return wrappedArray;
235
+ }
236
+ else if (view && typeof view === "object") {
237
+ const wrappedObject = {};
238
+ wrappedValues.set(view, wrappedObject);
239
+ for (const key of Object.keys(view))
240
+ wrappedObject[key] = wrapView(view[key]);
241
+ return wrappedObject;
242
+ }
230
243
  else if (typeof view === "function") {
231
- if (values.has(view))
232
- return wrapView(values.get(view));
233
- else if (pendingValues.has(view))
234
- return null;
235
- else {
236
- const promise = Promise.resolve(view());
237
- pendingValues.set(view, promise);
238
- promise.then(value => {
239
- values.set(view, value);
240
- pendingValues.delete(view);
241
- }).catch(() => {
242
- // Rejection is handled by Promise.all in the render loop;
243
- // suppress the unhandled rejection on this detached chain.
244
- });
245
- return values.has(view) ? wrapView(values.get(view)) : null;
246
- }
244
+ const wrappedFunction = () => {
245
+ if (values.has(view))
246
+ return wrapView(values.get(view));
247
+ else if (pendingValues.has(view))
248
+ return null;
249
+ else {
250
+ const promise = Promise.resolve(view());
251
+ pendingValues.set(view, promise);
252
+ promise.then(value => {
253
+ values.set(view, value);
254
+ pendingValues.delete(view);
255
+ }).catch(() => {
256
+ // Rejection is handled by Promise.all in the render loop;
257
+ // suppress the unhandled rejection on this detached chain.
258
+ });
259
+ return values.has(view) ? wrapView(values.get(view)) : null;
260
+ }
261
+ };
262
+ wrappedValues.set(view, wrappedFunction);
263
+ return wrappedFunction;
247
264
  }
248
265
  else
249
266
  return view;
@@ -282,6 +299,8 @@ function renderCompiledAsync(template_1, view_1) {
282
299
  ...pendingValues.values(),
283
300
  ...Object.values(pendingPartials)
284
301
  ]);
302
+ pendingValues.clear();
303
+ wrappedValues.clear();
285
304
  }
286
305
  });
287
306
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abdk-mustache-js",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Mustache Template Engine for JavaScript by ABDK Consulting",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -214,29 +214,43 @@ export async function renderCompiledAsync(
214
214
  partials: { [name: string]: () => Promise<CompiledTemplate> } = {},
215
215
  escape: (string: string) => string = escapeHTML
216
216
  ): Promise<string> {
217
+ const wrappedValues = new Map<any, any>();
217
218
  const values = new Map<Function, any>();
218
219
  const pendingValues = new Map<Function, Promise<any>>();
219
220
 
220
221
  const wrapView = (view: any): any => {
221
- if (Array.isArray(view)) return view.map(wrapView);
222
- else if (view && typeof view === "object")
223
- return Object.fromEntries(Object.entries(view).map(([key, value]) =>
224
- [key, wrapView(value)]));
225
- else if (typeof view === "function") {
226
- if (values.has(view)) return wrapView(values.get(view));
227
- else if (pendingValues.has(view)) return null;
228
- else {
229
- const promise = Promise.resolve(view());
230
- pendingValues.set(view, promise);
231
- promise.then(value => {
232
- values.set(view, value);
233
- pendingValues.delete(view);
234
- }).catch(() => {
235
- // Rejection is handled by Promise.all in the render loop;
236
- // suppress the unhandled rejection on this detached chain.
237
- });
238
- return values.has(view) ? wrapView(values.get(view)) : null;
239
- }
222
+ if (wrappedValues.has(view)) return wrappedValues.get(view);
223
+ else if (Array.isArray(view)) {
224
+ const wrappedArray = [] as any[];
225
+ wrappedValues.set(view, wrappedArray);
226
+ for (const item of view) wrappedArray.push(wrapView(item));
227
+ return wrappedArray;
228
+ }
229
+ else if (view && typeof view === "object") {
230
+ const wrappedObject = {} as any;
231
+ wrappedValues.set(view, wrappedObject);
232
+ for (const key of Object.keys(view))
233
+ wrappedObject[key] = wrapView(view[key]);
234
+ return wrappedObject;
235
+ } else if (typeof view === "function") {
236
+ const wrappedFunction = () => {
237
+ if (values.has(view)) return wrapView(values.get(view));
238
+ else if (pendingValues.has(view)) return null;
239
+ else {
240
+ const promise = Promise.resolve(view());
241
+ pendingValues.set(view, promise);
242
+ promise.then(value => {
243
+ values.set(view, value);
244
+ pendingValues.delete(view);
245
+ }).catch(() => {
246
+ // Rejection is handled by Promise.all in the render loop;
247
+ // suppress the unhandled rejection on this detached chain.
248
+ });
249
+ return values.has(view) ? wrapView(values.get(view)) : null;
250
+ }
251
+ };
252
+ wrappedValues.set(view, wrappedFunction);
253
+ return wrappedFunction;
240
254
  } else return view;
241
255
  };
242
256
 
@@ -277,6 +291,8 @@ export async function renderCompiledAsync(
277
291
  ...pendingValues.values(),
278
292
  ...Object.values(pendingPartials)
279
293
  ]);
294
+ pendingValues.clear();
295
+ wrappedValues.clear();
280
296
  }
281
297
  }
282
298