@mojir/lits 1.2.2-alpha.2 → 1.2.2-alpha.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/dist/index.js CHANGED
@@ -2866,7 +2866,7 @@ var mathNormalExpression = {
2866
2866
  },
2867
2867
  };
2868
2868
 
2869
- var version = "1.2.2-alpha.2";
2869
+ var version = "1.2.2-alpha.3";
2870
2870
 
2871
2871
  var uuidTemplate = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
2872
2872
  var xyRegexp = /[xy]/g;
@@ -8053,6 +8053,12 @@ function assertNewLineToken(token) {
8053
8053
  throw new LitsError("Expected newline token, got ".concat(token === null || token === void 0 ? void 0 : token.t, "."));
8054
8054
  }
8055
8055
 
8056
+ function transformTokens(tokenStram, transformer) {
8057
+ return __assign(__assign({}, tokenStram), { tokens: tokenStram.tokens.map(function (token) {
8058
+ return __assign(__assign({}, token), { v: transformer(token.v) });
8059
+ }) });
8060
+ }
8061
+
8056
8062
  var UnparseOptions = /** @class */ (function () {
8057
8063
  function UnparseOptions(unparse, lineLength, col, inlined, locked) {
8058
8064
  if (col === void 0) { col = 0; }
@@ -8571,6 +8577,51 @@ function unparseAst(ast, lineLength) {
8571
8577
  return result.trim();
8572
8578
  }
8573
8579
 
8580
+ function isNoSpaceNeededBefore(token) {
8581
+ switch (token.t) {
8582
+ case exports.TokenType.Bracket:
8583
+ return [')', ']'].includes(token.v);
8584
+ case exports.TokenType.CollectionAccessor:
8585
+ return true;
8586
+ case exports.TokenType.NewLine:
8587
+ return true;
8588
+ default:
8589
+ return false;
8590
+ }
8591
+ }
8592
+ function isNoSpaceNeededAfter(token) {
8593
+ switch (token.t) {
8594
+ case exports.TokenType.Bracket:
8595
+ return ['(', '['].includes(token.v);
8596
+ case exports.TokenType.CollectionAccessor:
8597
+ return true;
8598
+ case exports.TokenType.FnShorthand:
8599
+ return true;
8600
+ case exports.TokenType.NewLine:
8601
+ return true;
8602
+ case exports.TokenType.RegexpShorthand:
8603
+ return true;
8604
+ default:
8605
+ return false;
8606
+ }
8607
+ }
8608
+ function untokenize(tokenStream) {
8609
+ var lastToken;
8610
+ return tokenStream.tokens.reduce(function (acc, token) {
8611
+ var joiner = !lastToken || isNoSpaceNeededAfter(lastToken) || isNoSpaceNeededBefore(token) ? '' : ' ';
8612
+ lastToken = token;
8613
+ return "".concat(acc).concat(joiner).concat(untokenizeToken(token));
8614
+ }, '');
8615
+ }
8616
+ function untokenizeToken(token) {
8617
+ switch (token.t) {
8618
+ case exports.TokenType.String:
8619
+ return "\"".concat(token.v, "\"");
8620
+ default:
8621
+ return token.v;
8622
+ }
8623
+ }
8624
+
8574
8625
  var Cache = /** @class */ (function () {
8575
8626
  function Cache(maxSize) {
8576
8627
  this.cache = {};
@@ -8702,6 +8753,12 @@ var Lits = /** @class */ (function () {
8702
8753
  var contextStack = createContextStack(params);
8703
8754
  return evaluate(ast, contextStack);
8704
8755
  };
8756
+ Lits.prototype.transform = function (tokenStream, transformer) {
8757
+ return transformTokens(tokenStream, transformer);
8758
+ };
8759
+ Lits.prototype.untokenize = function (tokenStream) {
8760
+ return untokenize(tokenStream);
8761
+ };
8705
8762
  Lits.prototype.apply = function (fn, fnParams, params) {
8706
8763
  var _a;
8707
8764
  if (params === void 0) { params = {}; }