necessary 15.0.7 → 15.0.8

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/README.md CHANGED
@@ -395,7 +395,7 @@ const filePath = "/etc/var/public/name.html",
395
395
  args = {
396
396
  name,
397
397
  age
398
- }
398
+ },
399
399
  parsedContent = parseFile(filePath, args);
400
400
  ```
401
401
 
@@ -404,8 +404,8 @@ const filePath = "/etc/var/public/name.html",
404
404
  ```
405
405
  const content = `
406
406
 
407
- name: <strong>${name}</strong><br/>
408
- age: <strong>${age}</strong><br/>
407
+ name: <strong>\${name}</strong><br/>
408
+ age: <strong>\${age}</strong><br/>
409
409
 
410
410
  `,
411
411
  name = "Joe Bloggs",
@@ -413,10 +413,33 @@ const content = `
413
413
  args = {
414
414
  name,
415
415
  age
416
- }
416
+ },
417
417
  parsedContent = parseContent(content, args);
418
418
  ```
419
419
 
420
+ Note that the dollar signs are escaped here.
421
+ Alternatively you can dispense with them altogether and pass in a different regular expression:
422
+
423
+ ```
424
+ const content = `
425
+
426
+ name: <strong>{name}</strong><br/>
427
+ age: <strong>{age}</strong><br/>
428
+
429
+ `,
430
+ name = "Joe Bloggs",
431
+ age = 99,
432
+ args = {
433
+ name,
434
+ age
435
+ },
436
+ regularExpression = /{(.+?)}/g,
437
+ parsedContent = parseContent(content, args, regularExpression);
438
+ ```
439
+
440
+ You can of course choose any token format you like if you provide the requisite regular expression to match it.
441
+ The `parseLine()` and `parseFile()` functions also behave in this way.
442
+
420
443
  * The `parseLine()` function takes a single line of content as the first argument:
421
444
 
422
445
  ```
@@ -426,7 +449,7 @@ const line = "${name}, aged ${age}.",
426
449
  args = {
427
450
  name,
428
451
  age
429
- }
452
+ },
430
453
  parsedLine = parseLine(line, args); // returns 'Joe Bloggs, aged 99.'
431
454
  ```
432
455
 
@@ -24,17 +24,21 @@ _export(exports, {
24
24
  });
25
25
  var _fileSystem = require("../utilities/fileSystem");
26
26
  var _constants = require("../constants");
27
- function parseFile(filePath, args, regex) {
28
- var content = (0, _fileSystem.readFile)(filePath), parsedContent = parseContent(content, args, regex);
27
+ var _characters = require("../characters");
28
+ var defaultRegularExpression = /\${(.+?)}/g;
29
+ function parseFile(filePath, args) {
30
+ var regularExpression = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultRegularExpression;
31
+ var content = (0, _fileSystem.readFile)(filePath), parsedContent = parseContent(content, args, regularExpression);
29
32
  return parsedContent;
30
33
  }
31
- function parseContent(content, args, regex) {
32
- var lines = content.split("\n"), parsedLines = parseLines(lines, args, regex), parsedContent = parsedLines.join("\n");
34
+ function parseContent(content, args) {
35
+ var regularExpression = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultRegularExpression;
36
+ var lines = content.split(_characters.NEW_LINE_CHARACTER), parsedLines = parseLines(lines, args, regularExpression), parsedContent = parsedLines.join(_characters.NEW_LINE_CHARACTER);
33
37
  return parsedContent;
34
38
  }
35
39
  function parseLine(line, args) {
36
- var regex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : /\${(.+?)}/g;
37
- var parsedLine = line.replace(regex, function(match, token) {
40
+ var regularExpression = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultRegularExpression;
41
+ var parsedLine = line.replace(regularExpression, function(match, token) {
38
42
  var parsedToken = parseToken(token, args);
39
43
  return parsedToken;
40
44
  });
@@ -45,9 +49,9 @@ var _default = {
45
49
  parseContent: parseContent,
46
50
  parseLine: parseLine
47
51
  };
48
- function parseLines(lines, args, regex) {
52
+ function parseLines(lines, args, regularExpression) {
49
53
  var parsedLines = lines.map(function(line) {
50
- var parsedLine = parseLine(line, args, regex);
54
+ var parsedLine = parseLine(line, args, regularExpression);
51
55
  return parsedLine;
52
56
  });
53
57
  return parsedLines;
@@ -60,4 +64,4 @@ function parseToken(token, args) {
60
64
  return parsedToken;
61
65
  }
62
66
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVtcGxhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlU3lzdGVtXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZpbGUoZmlsZVBhdGgsIGFyZ3MsIHJlZ2V4KSB7XG4gIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZShmaWxlUGF0aCksXG4gICAgICAgIHBhcnNlZENvbnRlbnQgPSBwYXJzZUNvbnRlbnQoY29udGVudCwgYXJncywgcmVnZXgpO1xuXG4gIHJldHVybiBwYXJzZWRDb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb250ZW50KGNvbnRlbnQsIGFyZ3MsIHJlZ2V4KSB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKSxcbiAgICAgICAgcGFyc2VkTGluZXMgPSBwYXJzZUxpbmVzKGxpbmVzLCBhcmdzLCByZWdleCksXG4gICAgICAgIHBhcnNlZENvbnRlbnQgPSBwYXJzZWRMaW5lcy5qb2luKFwiXFxuXCIpO1xuXG4gIHJldHVybiBwYXJzZWRDb250ZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMaW5lKGxpbmUsIGFyZ3MsIHJlZ2V4ID0gL1xcJHsoLis/KX0vZykge1xuICBjb25zdCBwYXJzZWRMaW5lID0gbGluZS5yZXBsYWNlKHJlZ2V4LCAobWF0Y2gsIHRva2VuKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkVG9rZW4gPSBwYXJzZVRva2VuKHRva2VuLCBhcmdzKTtcblxuICAgIHJldHVybiBwYXJzZWRUb2tlbjtcbiAgfSk7XG5cbiAgcmV0dXJuIHBhcnNlZExpbmU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcGFyc2VGaWxlLFxuICBwYXJzZUNvbnRlbnQsXG4gIHBhcnNlTGluZVxufTtcblxuZnVuY3Rpb24gcGFyc2VMaW5lcyhsaW5lcywgYXJncywgcmVnZXgpIHtcbiAgY29uc3QgcGFyc2VkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IHtcbiAgICBjb25zdCBwYXJzZWRMaW5lID0gcGFyc2VMaW5lKGxpbmUsIGFyZ3MsIHJlZ2V4KTtcblxuICAgIHJldHVybiBwYXJzZWRMaW5lO1xuICB9KTtcblxuICByZXR1cm4gcGFyc2VkTGluZXM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVG9rZW4odG9rZW4sIGFyZ3MpIHtcbiAgbGV0IHBhcnNlZFRva2VuID0gRU1QVFlfU1RSSU5HO1xuXG4gIGlmIChhcmdzLmhhc093blByb3BlcnR5KHRva2VuKSkge1xuICAgIHBhcnNlZFRva2VuID0gYXJnc1t0b2tlbl07XG4gIH1cblxuICByZXR1cm4gcGFyc2VkVG9rZW47XG59XG4iXSwibmFtZXMiOlsicGFyc2VDb250ZW50IiwicGFyc2VGaWxlIiwicGFyc2VMaW5lIiwiZmlsZVBhdGgiLCJhcmdzIiwicmVnZXgiLCJjb250ZW50IiwicmVhZEZpbGUiLCJwYXJzZWRDb250ZW50IiwibGluZXMiLCJzcGxpdCIsInBhcnNlZExpbmVzIiwicGFyc2VMaW5lcyIsImpvaW4iLCJsaW5lIiwicGFyc2VkTGluZSIsInJlcGxhY2UiLCJtYXRjaCIsInRva2VuIiwicGFyc2VkVG9rZW4iLCJwYXJzZVRva2VuIiwibWFwIiwiRU1QVFlfU1RSSU5HIiwiaGFzT3duUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQThCQTtlQUFBOztRQWxCZ0JBO2VBQUFBOztRQVBBQztlQUFBQTs7UUFlQUM7ZUFBQUE7OzswQkFsQlM7eUJBQ0k7QUFFdEIsU0FBU0QsVUFBVUUsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLEtBQUs7SUFDN0MsSUFBTUMsVUFBVUMsSUFBQUEsb0JBQVEsRUFBQ0osV0FDbkJLLGdCQUFnQlIsYUFBYU0sU0FBU0YsTUFBTUM7SUFFbEQsT0FBT0c7QUFDVDtBQUVPLFNBQVNSLGFBQWFNLE9BQU8sRUFBRUYsSUFBSSxFQUFFQyxLQUFLO0lBQy9DLElBQU1JLFFBQVFILFFBQVFJLEtBQUssQ0FBQyxPQUN0QkMsY0FBY0MsV0FBV0gsT0FBT0wsTUFBTUMsUUFDdENHLGdCQUFnQkcsWUFBWUUsSUFBSSxDQUFDO0lBRXZDLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTTixVQUFVWSxJQUFJLEVBQUVWLElBQUk7UUFBRUMsUUFBQUEsaUVBQVE7SUFDNUMsSUFBTVUsYUFBYUQsS0FBS0UsT0FBTyxDQUFDWCxPQUFPLFNBQUNZLE9BQU9DO1FBQzdDLElBQU1DLGNBQWNDLFdBQVdGLE9BQU9kO1FBRXRDLE9BQU9lO0lBQ1Q7SUFFQSxPQUFPSjtBQUNUO0lBRUEsV0FBZTtJQUNiZCxXQUFBQTtJQUNBRCxjQUFBQTtJQUNBRSxXQUFBQTtBQUNGO0FBRUEsU0FBU1UsV0FBV0gsS0FBSyxFQUFFTCxJQUFJLEVBQUVDLEtBQUs7SUFDcEMsSUFBTU0sY0FBY0YsTUFBTVksR0FBRyxDQUFDLFNBQUNQO1FBQzdCLElBQU1DLGFBQWFiLFVBQVVZLE1BQU1WLE1BQU1DO1FBRXpDLE9BQU9VO0lBQ1Q7SUFFQSxPQUFPSjtBQUNUO0FBRUEsU0FBU1MsV0FBV0YsS0FBSyxFQUFFZCxJQUFJO0lBQzdCLElBQUllLGNBQWNHLHVCQUFZO0lBRTlCLElBQUlsQixLQUFLbUIsY0FBYyxDQUFDTCxRQUFRO1FBQzlCQyxjQUFjZixJQUFJLENBQUNjLE1BQU07SUFDM0I7SUFFQSxPQUFPQztBQUNUIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdGVtcGxhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9maWxlU3lzdGVtXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBORVdfTElORV9DSEFSQUNURVIgfSBmcm9tIFwiLi4vY2hhcmFjdGVyc1wiO1xuXG5jb25zdCBkZWZhdWx0UmVndWxhckV4cHJlc3Npb24gPSAvXFwkeyguKz8pfS9nO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGaWxlKGZpbGVQYXRoLCBhcmdzLCByZWd1bGFyRXhwcmVzc2lvbiA9IGRlZmF1bHRSZWd1bGFyRXhwcmVzc2lvbikge1xuICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGUoZmlsZVBhdGgpLFxuICAgICAgICBwYXJzZWRDb250ZW50ID0gcGFyc2VDb250ZW50KGNvbnRlbnQsIGFyZ3MsIHJlZ3VsYXJFeHByZXNzaW9uKTtcblxuICByZXR1cm4gcGFyc2VkQ29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29udGVudChjb250ZW50LCBhcmdzLCByZWd1bGFyRXhwcmVzc2lvbiA9IGRlZmF1bHRSZWd1bGFyRXhwcmVzc2lvbikge1xuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoTkVXX0xJTkVfQ0hBUkFDVEVSKSxcbiAgICAgICAgcGFyc2VkTGluZXMgPSBwYXJzZUxpbmVzKGxpbmVzLCBhcmdzLCByZWd1bGFyRXhwcmVzc2lvbiksXG4gICAgICAgIHBhcnNlZENvbnRlbnQgPSBwYXJzZWRMaW5lcy5qb2luKE5FV19MSU5FX0NIQVJBQ1RFUik7XG5cbiAgcmV0dXJuIHBhcnNlZENvbnRlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUxpbmUobGluZSwgYXJncywgcmVndWxhckV4cHJlc3Npb24gPSBkZWZhdWx0UmVndWxhckV4cHJlc3Npb24pIHtcbiAgY29uc3QgcGFyc2VkTGluZSA9IGxpbmUucmVwbGFjZShyZWd1bGFyRXhwcmVzc2lvbiwgKG1hdGNoLCB0b2tlbikgPT4ge1xuICAgIGNvbnN0IHBhcnNlZFRva2VuID0gcGFyc2VUb2tlbih0b2tlbiwgYXJncyk7XG5cbiAgICByZXR1cm4gcGFyc2VkVG9rZW47XG4gIH0pO1xuXG4gIHJldHVybiBwYXJzZWRMaW5lO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhcnNlRmlsZSxcbiAgcGFyc2VDb250ZW50LFxuICBwYXJzZUxpbmVcbn07XG5cbmZ1bmN0aW9uIHBhcnNlTGluZXMobGluZXMsIGFyZ3MsIHJlZ3VsYXJFeHByZXNzaW9uKSB7XG4gIGNvbnN0IHBhcnNlZExpbmVzID0gbGluZXMubWFwKChsaW5lKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkTGluZSA9IHBhcnNlTGluZShsaW5lLCBhcmdzLCByZWd1bGFyRXhwcmVzc2lvbik7XG5cbiAgICByZXR1cm4gcGFyc2VkTGluZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHBhcnNlZExpbmVzO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRva2VuKHRva2VuLCBhcmdzKSB7XG4gIGxldCBwYXJzZWRUb2tlbiA9IEVNUFRZX1NUUklORztcblxuICBpZiAoYXJncy5oYXNPd25Qcm9wZXJ0eSh0b2tlbikpIHtcbiAgICBwYXJzZWRUb2tlbiA9IGFyZ3NbdG9rZW5dO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZFRva2VuO1xufVxuIl0sIm5hbWVzIjpbInBhcnNlQ29udGVudCIsInBhcnNlRmlsZSIsInBhcnNlTGluZSIsImRlZmF1bHRSZWd1bGFyRXhwcmVzc2lvbiIsImZpbGVQYXRoIiwiYXJncyIsInJlZ3VsYXJFeHByZXNzaW9uIiwiY29udGVudCIsInJlYWRGaWxlIiwicGFyc2VkQ29udGVudCIsImxpbmVzIiwic3BsaXQiLCJORVdfTElORV9DSEFSQUNURVIiLCJwYXJzZWRMaW5lcyIsInBhcnNlTGluZXMiLCJqb2luIiwibGluZSIsInBhcnNlZExpbmUiLCJyZXBsYWNlIiwibWF0Y2giLCJ0b2tlbiIsInBhcnNlZFRva2VuIiwicGFyc2VUb2tlbiIsIm1hcCIsIkVNUFRZX1NUUklORyIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFpQ0E7ZUFBQTs7UUFsQmdCQTtlQUFBQTs7UUFQQUM7ZUFBQUE7O1FBZUFDO2VBQUFBOzs7MEJBckJTO3lCQUNJOzBCQUNNO0FBRW5DLElBQU1DLDJCQUEyQjtBQUUxQixTQUFTRixVQUFVRyxRQUFRLEVBQUVDLElBQUk7UUFBRUMsb0JBQUFBLGlFQUFvQkg7SUFDNUQsSUFBTUksVUFBVUMsSUFBQUEsb0JBQVEsRUFBQ0osV0FDbkJLLGdCQUFnQlQsYUFBYU8sU0FBU0YsTUFBTUM7SUFFbEQsT0FBT0c7QUFDVDtBQUVPLFNBQVNULGFBQWFPLE9BQU8sRUFBRUYsSUFBSTtRQUFFQyxvQkFBQUEsaUVBQW9CSDtJQUM5RCxJQUFNTyxRQUFRSCxRQUFRSSxLQUFLLENBQUNDLDhCQUFrQixHQUN4Q0MsY0FBY0MsV0FBV0osT0FBT0wsTUFBTUMsb0JBQ3RDRyxnQkFBZ0JJLFlBQVlFLElBQUksQ0FBQ0gsOEJBQWtCO0lBRXpELE9BQU9IO0FBQ1Q7QUFFTyxTQUFTUCxVQUFVYyxJQUFJLEVBQUVYLElBQUk7UUFBRUMsb0JBQUFBLGlFQUFvQkg7SUFDeEQsSUFBTWMsYUFBYUQsS0FBS0UsT0FBTyxDQUFDWixtQkFBbUIsU0FBQ2EsT0FBT0M7UUFDekQsSUFBTUMsY0FBY0MsV0FBV0YsT0FBT2Y7UUFFdEMsT0FBT2dCO0lBQ1Q7SUFFQSxPQUFPSjtBQUNUO0lBRUEsV0FBZTtJQUNiaEIsV0FBQUE7SUFDQUQsY0FBQUE7SUFDQUUsV0FBQUE7QUFDRjtBQUVBLFNBQVNZLFdBQVdKLEtBQUssRUFBRUwsSUFBSSxFQUFFQyxpQkFBaUI7SUFDaEQsSUFBTU8sY0FBY0gsTUFBTWEsR0FBRyxDQUFDLFNBQUNQO1FBQzdCLElBQU1DLGFBQWFmLFVBQVVjLE1BQU1YLE1BQU1DO1FBRXpDLE9BQU9XO0lBQ1Q7SUFFQSxPQUFPSjtBQUNUO0FBRUEsU0FBU1MsV0FBV0YsS0FBSyxFQUFFZixJQUFJO0lBQzdCLElBQUlnQixjQUFjRyx1QkFBWTtJQUU5QixJQUFJbkIsS0FBS29CLGNBQWMsQ0FBQ0wsUUFBUTtRQUM5QkMsY0FBY2hCLElBQUksQ0FBQ2UsTUFBTTtJQUMzQjtJQUVBLE9BQU9DO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necessary",
3
3
  "author": "James Smith",
4
- "version": "15.0.7",
4
+ "version": "15.0.8",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/necessary",
7
7
  "description": "A collection of utility functions.",
@@ -2,24 +2,27 @@
2
2
 
3
3
  import { readFile } from "../utilities/fileSystem";
4
4
  import { EMPTY_STRING } from "../constants";
5
+ import { NEW_LINE_CHARACTER } from "../characters";
5
6
 
6
- export function parseFile(filePath, args, regex) {
7
+ const defaultRegularExpression = /\${(.+?)}/g;
8
+
9
+ export function parseFile(filePath, args, regularExpression = defaultRegularExpression) {
7
10
  const content = readFile(filePath),
8
- parsedContent = parseContent(content, args, regex);
11
+ parsedContent = parseContent(content, args, regularExpression);
9
12
 
10
13
  return parsedContent;
11
14
  }
12
15
 
13
- export function parseContent(content, args, regex) {
14
- const lines = content.split("\n"),
15
- parsedLines = parseLines(lines, args, regex),
16
- parsedContent = parsedLines.join("\n");
16
+ export function parseContent(content, args, regularExpression = defaultRegularExpression) {
17
+ const lines = content.split(NEW_LINE_CHARACTER),
18
+ parsedLines = parseLines(lines, args, regularExpression),
19
+ parsedContent = parsedLines.join(NEW_LINE_CHARACTER);
17
20
 
18
21
  return parsedContent;
19
22
  }
20
23
 
21
- export function parseLine(line, args, regex = /\${(.+?)}/g) {
22
- const parsedLine = line.replace(regex, (match, token) => {
24
+ export function parseLine(line, args, regularExpression = defaultRegularExpression) {
25
+ const parsedLine = line.replace(regularExpression, (match, token) => {
23
26
  const parsedToken = parseToken(token, args);
24
27
 
25
28
  return parsedToken;
@@ -34,9 +37,9 @@ export default {
34
37
  parseLine
35
38
  };
36
39
 
37
- function parseLines(lines, args, regex) {
40
+ function parseLines(lines, args, regularExpression) {
38
41
  const parsedLines = lines.map((line) => {
39
- const parsedLine = parseLine(line, args, regex);
42
+ const parsedLine = parseLine(line, args, regularExpression);
40
43
 
41
44
  return parsedLine;
42
45
  });