fable 3.0.92 → 3.0.94
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/fable.compatible.js +97 -107
- package/dist/fable.compatible.min.js +2 -2
- package/dist/fable.compatible.min.js.map +1 -1
- package/dist/fable.js +96 -106
- package/dist/fable.min.js +2 -2
- package/dist/fable.min.js.map +1 -1
- package/package.json +1 -1
- package/source/services/Fable-Service-MetaTemplate/MetaTemplate-StringParser.js +51 -69
package/package.json
CHANGED
|
@@ -189,6 +189,52 @@ class StringParser
|
|
|
189
189
|
return false;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
+
executePatternAsync(pParserState, pData, fCallback)
|
|
193
|
+
{
|
|
194
|
+
// ... this is the end of a pattern, cut off the end tag and parse it.
|
|
195
|
+
// Trim the start and end tags off the output buffer now
|
|
196
|
+
if (pParserState.Pattern.isAsync && !pParserState.Pattern.isBoth)
|
|
197
|
+
{
|
|
198
|
+
// Run the function
|
|
199
|
+
return pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData,
|
|
200
|
+
(pError, pAsyncOutput) =>
|
|
201
|
+
{
|
|
202
|
+
if (pError)
|
|
203
|
+
{
|
|
204
|
+
console.log(`Precedent ERROR: Async template error happened parsing ${pParserState.Pattern.PatternStart} ... ${pParserState.Pattern.PatternEnd}: ${pError}`);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
pParserState.OutputBuffer = pAsyncOutput;
|
|
208
|
+
this.resetOutputBuffer(pParserState);
|
|
209
|
+
return setTimeout(fCallback, 0);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
else if (pParserState.Pattern.isAsync && pParserState.Pattern.isBoth)
|
|
213
|
+
{
|
|
214
|
+
// Run the function when both async and non async were provided with the pattern
|
|
215
|
+
return pParserState.Pattern.ParseAsync(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData,
|
|
216
|
+
(pError, pAsyncOutput) =>
|
|
217
|
+
{
|
|
218
|
+
if (pError)
|
|
219
|
+
{
|
|
220
|
+
console.log(`Precedent ERROR: Async template error happened parsing ${pParserState.Pattern.PatternStart} ... ${pParserState.Pattern.PatternEnd}: ${pError}`);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
pParserState.OutputBuffer = pAsyncOutput;
|
|
224
|
+
this.resetOutputBuffer(pParserState);
|
|
225
|
+
return setTimeout(fCallback, 0);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
else
|
|
229
|
+
{
|
|
230
|
+
// Run the t*mplate function
|
|
231
|
+
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData);
|
|
232
|
+
this.resetOutputBuffer(pParserState);
|
|
233
|
+
return setTimeout(fCallback, 0);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
|
|
192
238
|
/**
|
|
193
239
|
* Parse a character in the buffer.
|
|
194
240
|
* @method parseCharacter
|
|
@@ -218,47 +264,7 @@ class StringParser
|
|
|
218
264
|
// If this last character is the end of the pattern, parse it.
|
|
219
265
|
if (pParserState.Pattern.hasOwnProperty('Parse'))
|
|
220
266
|
{
|
|
221
|
-
|
|
222
|
-
// Trim the start and end tags off the output buffer now
|
|
223
|
-
if (pParserState.Pattern.isAsync && !pParserState.Pattern.isBoth)
|
|
224
|
-
{
|
|
225
|
-
// Run the function
|
|
226
|
-
return pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData,
|
|
227
|
-
(pError, pAsyncOutput) =>
|
|
228
|
-
{
|
|
229
|
-
if (pError)
|
|
230
|
-
{
|
|
231
|
-
console.log(`Precedent ERROR: Async template error happened parsing ${pParserState.Pattern.PatternStart} ... ${pParserState.Pattern.PatternEnd}: ${pError}`);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
pParserState.OutputBuffer = pAsyncOutput;
|
|
235
|
-
this.resetOutputBuffer(pParserState);
|
|
236
|
-
return fCallback();
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
else if (pParserState.Pattern.isAsync && pParserState.Pattern.isBoth)
|
|
240
|
-
{
|
|
241
|
-
// Run the function when both async and non async were provided with the pattern
|
|
242
|
-
return pParserState.Pattern.ParseAsync(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData,
|
|
243
|
-
(pError, pAsyncOutput) =>
|
|
244
|
-
{
|
|
245
|
-
if (pError)
|
|
246
|
-
{
|
|
247
|
-
console.log(`Precedent ERROR: Async template error happened parsing ${pParserState.Pattern.PatternStart} ... ${pParserState.Pattern.PatternEnd}: ${pError}`);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
pParserState.OutputBuffer = pAsyncOutput;
|
|
251
|
-
this.resetOutputBuffer(pParserState);
|
|
252
|
-
return fCallback();
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
else
|
|
256
|
-
{
|
|
257
|
-
// Run the t*mplate function
|
|
258
|
-
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData);
|
|
259
|
-
this.resetOutputBuffer(pParserState);
|
|
260
|
-
return fCallback();
|
|
261
|
-
}
|
|
267
|
+
return this.executePatternAsync(pParserState, pData, fCallback);
|
|
262
268
|
}
|
|
263
269
|
}
|
|
264
270
|
else if (pParserState.PatternStartNode.PatternEnd.hasOwnProperty(pCharacter))
|
|
@@ -292,31 +298,7 @@ class StringParser
|
|
|
292
298
|
// If this last character is the end of the pattern, parse it.
|
|
293
299
|
if (pParserState.Pattern.hasOwnProperty('Parse'))
|
|
294
300
|
{
|
|
295
|
-
|
|
296
|
-
// Trim the start and end tags off the output buffer now
|
|
297
|
-
if (pParserState.Pattern.isAsync)
|
|
298
|
-
{
|
|
299
|
-
// Run the function
|
|
300
|
-
return pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData,
|
|
301
|
-
(pError, pAsyncOutput) =>
|
|
302
|
-
{
|
|
303
|
-
if (pError)
|
|
304
|
-
{
|
|
305
|
-
console.log(`Precedent ERROR: Async template error happened parsing ${pParserState.Pattern.PatternStart} ... ${pParserState.Pattern.PatternEnd}: ${pError}`);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
pParserState.OutputBuffer = pAsyncOutput;
|
|
309
|
-
this.resetOutputBuffer(pParserState);
|
|
310
|
-
return fCallback();
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
else
|
|
314
|
-
{
|
|
315
|
-
// Run the t*mplate function
|
|
316
|
-
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStartString.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStartString.length+pParserState.Pattern.PatternEndString.length)), pData);
|
|
317
|
-
this.resetOutputBuffer(pParserState);
|
|
318
|
-
return fCallback();
|
|
319
|
-
}
|
|
301
|
+
return this.executePatternAsync(pParserState, pData, fCallback);
|
|
320
302
|
}
|
|
321
303
|
}
|
|
322
304
|
}
|
|
@@ -324,11 +306,10 @@ class StringParser
|
|
|
324
306
|
{
|
|
325
307
|
// We are in a pattern start but didn't match one; reset and start trying again from this character.
|
|
326
308
|
this.resetOutputBuffer(pParserState);
|
|
327
|
-
return fCallback();
|
|
328
309
|
}
|
|
329
310
|
}
|
|
330
311
|
// If we aren't in a pattern match or pattern, and this isn't the start of a new pattern (RAW mode)....
|
|
331
|
-
|
|
312
|
+
else
|
|
332
313
|
{
|
|
333
314
|
// This may be the start of a new pattern....
|
|
334
315
|
if (pParserState.ParseTree.hasOwnProperty(pCharacter))
|
|
@@ -344,7 +325,8 @@ class StringParser
|
|
|
344
325
|
this.appendOutputBuffer(pCharacter, pParserState);
|
|
345
326
|
}
|
|
346
327
|
}
|
|
347
|
-
|
|
328
|
+
// Without this, templates of all sizes work fine in node. They do not in the browser.
|
|
329
|
+
return setTimeout(fCallback, 0);
|
|
348
330
|
}
|
|
349
331
|
|
|
350
332
|
/**
|