javascript.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = function (d, b) {
  4. extendStatics = Object.setPrototypeOf ||
  5. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  6. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  7. return extendStatics(d, b);
  8. };
  9. return function (d, b) {
  10. extendStatics(d, b);
  11. function __() { this.constructor = d; }
  12. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  13. };
  14. })();
  15. var __importDefault = (this && this.__importDefault) || function (mod) {
  16. return (mod && mod.__esModule) ? mod : { "default": mod };
  17. };
  18. Object.defineProperty(exports, "__esModule", { value: true });
  19. var js_eval_node_1 = __importDefault(require("./js-eval-node"));
  20. var dimension_1 = __importDefault(require("./dimension"));
  21. var quoted_1 = __importDefault(require("./quoted"));
  22. var anonymous_1 = __importDefault(require("./anonymous"));
  23. var JavaScript = /** @class */ (function (_super) {
  24. __extends(JavaScript, _super);
  25. function JavaScript(string, escaped, index, currentFileInfo) {
  26. var _this = _super.call(this) || this;
  27. _this.escaped = escaped;
  28. _this.expression = string;
  29. _this._index = index;
  30. _this._fileInfo = currentFileInfo;
  31. return _this;
  32. }
  33. JavaScript.prototype.eval = function (context) {
  34. var result = this.evaluateJavaScript(this.expression, context);
  35. var type = typeof result;
  36. if (type === 'number' && !isNaN(result)) {
  37. return new dimension_1.default(result);
  38. }
  39. else if (type === 'string') {
  40. return new quoted_1.default("\"" + result + "\"", result, this.escaped, this._index);
  41. }
  42. else if (Array.isArray(result)) {
  43. return new anonymous_1.default(result.join(', '));
  44. }
  45. else {
  46. return new anonymous_1.default(result);
  47. }
  48. };
  49. return JavaScript;
  50. }(js_eval_node_1.default));
  51. JavaScript.prototype.type = 'JavaScript';
  52. exports.default = JavaScript;
  53. //# sourceMappingURL=javascript.js.map