javascript.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var tslib_1 = require("tslib");
  4. var js_eval_node_1 = tslib_1.__importDefault(require("./js-eval-node"));
  5. var dimension_1 = tslib_1.__importDefault(require("./dimension"));
  6. var quoted_1 = tslib_1.__importDefault(require("./quoted"));
  7. var anonymous_1 = tslib_1.__importDefault(require("./anonymous"));
  8. var JavaScript = function (string, escaped, index, currentFileInfo) {
  9. this.escaped = escaped;
  10. this.expression = string;
  11. this._index = index;
  12. this._fileInfo = currentFileInfo;
  13. };
  14. JavaScript.prototype = Object.assign(new js_eval_node_1.default(), {
  15. type: 'JavaScript',
  16. eval: function (context) {
  17. var result = this.evaluateJavaScript(this.expression, context);
  18. var type = typeof result;
  19. if (type === 'number' && !isNaN(result)) {
  20. return new dimension_1.default(result);
  21. }
  22. else if (type === 'string') {
  23. return new quoted_1.default("\"" + result + "\"", result, this.escaped, this._index);
  24. }
  25. else if (Array.isArray(result)) {
  26. return new anonymous_1.default(result.join(', '));
  27. }
  28. else {
  29. return new anonymous_1.default(result);
  30. }
  31. }
  32. });
  33. exports.default = JavaScript;
  34. //# sourceMappingURL=javascript.js.map