vue2/packages/vue-server-renderer/index.js

29 lines
740 B
JavaScript
Raw Normal View History

var createRenderer = require('./create-renderer')
var Module = require('./module')
2016-04-27 01:29:27 +08:00
2016-06-25 12:05:39 +08:00
function runAsNewModule (code) {
var path = '__app__'
var m = new Module(path, null, true /* isBundle */)
2016-06-25 12:05:39 +08:00
m.load(path)
m._compile(code, path)
return Object.prototype.hasOwnProperty.call(m.exports, 'default')
? m.exports.default
: m.exports
2016-06-08 09:53:43 +08:00
}
2016-06-25 12:05:39 +08:00
exports.createRenderer = createRenderer
2016-06-08 09:53:43 +08:00
2016-06-25 12:05:39 +08:00
exports.createBundleRenderer = function (code, options) {
var renderer = createRenderer(options)
2016-06-08 09:53:43 +08:00
return {
renderToString: function (cb) {
var app = runAsNewModule(code)
2016-06-25 12:05:39 +08:00
renderer.renderToString(app, cb)
2016-06-08 09:53:43 +08:00
},
renderToStream: function () {
var app = runAsNewModule(code)
2016-06-25 12:05:39 +08:00
return renderer.renderToStream(app)
2016-04-27 01:29:27 +08:00
}
}
}