UNPKG

think-template-art

Version:
67 lines (20 loc) 8.41 kB
'use strict';exports.__esModule = true;var _promise = require('babel-runtime/core-js/promise');var _promise2 = _interopRequireDefault(_promise);var _regenerator = require('babel-runtime/regenerator');var _regenerator2 = _interopRequireDefault(_regenerator);var _assign = require('babel-runtime/core-js/object/assign');var _assign2 = _interopRequireDefault(_assign);var _keys = require('babel-runtime/core-js/object/keys');var _keys2 = _interopRequireDefault(_keys);var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);var _inherits2 = require('babel-runtime/helpers/inherits');var _inherits3 = _interopRequireDefault(_inherits2); //判断模板文件是否存在 var fileExists = function () {var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(filePath) {return _regenerator2.default.wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:return _context2.abrupt('return', new _promise2.default(function (resolve, reject) { _fs2.default.exists(filePath, function (exists) { if (exists) { resolve(true); return; } resolve(false); }); }));case 1:case 'end':return _context2.stop();}}}, _callee2, this);}));return function fileExists(_x4) {return _ref2.apply(this, arguments);};}();var _artTemplate = require('art-template');var _artTemplate2 = _interopRequireDefault(_artTemplate);var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs);var _path = require('path');var _path2 = _interopRequireDefault(_path);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var Base = think.adapter('template', 'base');var _class = function (_Base) {(0, _inherits3.default)(_class, _Base);function _class() {(0, _classCallCheck3.default)(this, _class);return (0, _possibleConstructorReturn3.default)(this, _Base.apply(this, arguments));} /** * run * @param {String} templateFile [] * @param {Object} tVar [] * @param {Object} config [] * @return {Promise} [] */_class.prototype.run = function () {var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(templateFile, tVar, config) {var adapter, suffix, temp_path, helper_path, defaults, helpers, options;return _regenerator2.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:adapter = config.art || {};suffix = config.file_ext || ".art";temp_path = templateFile.split(suffix)[0];helper_path = config.helper_path || undefined; // 判断是否有helper函数并执行 _context.t0 = !helper_path;if (_context.t0) {_context.next = 9;break;}_context.next = 8;return fileExists(helper_path);case 8:_context.t0 = !_context.sent;case 9:if (!_context.t0) {_context.next = 11;break;}helper_path = '../template.helper.js';case 11:;defaults = _artTemplate2.default.defaults; //引入Helper helpers = require(helper_path);(0, _keys2.default)(helpers).forEach(function (key) {defaults.imports[key] = helpers[key];});options = defaults.$extend({ debug: process.env.NODE_ENV !== 'production' });options.filename = temp_path;options.extname = suffix;(0, _assign2.default)(options, adapter);return _context.abrupt('return', _artTemplate2.default.compile(options)(tVar));case 20:case 'end':return _context.stop();}}}, _callee, this);}));function run(_x, _x2, _x3) {return _ref.apply(this, arguments);}return run;}();return _class;}(Base);exports.default = _class;