Comparing version 5.0.0-rc7 to 5.0.0-rc8
@@ -27,37 +27,37 @@ 'use strict'; | ||
exports.register = function (server, pluginOptions) { | ||
exports.plugin = { | ||
once: true, | ||
pkg: require('../package.json'), | ||
server.decorate('server', 'views', function (options) { | ||
register: function (server, pluginOptions) { | ||
Hoek.assert(options, 'Missing views options'); | ||
this.realm.plugins.vision = this.realm.plugins.vision || {}; | ||
Hoek.assert(!this.realm.plugins.vision.manager, 'Cannot set views manager more than once'); | ||
server.decorate('server', 'views', function (options) { | ||
if (!options.relativeTo && | ||
this.realm.settings.files.relativeTo) { | ||
Hoek.assert(options, 'Missing views options'); | ||
this.realm.plugins.vision = this.realm.plugins.vision || {}; | ||
Hoek.assert(!this.realm.plugins.vision.manager, 'Cannot set views manager more than once'); | ||
options = Hoek.shallow(options); | ||
options.relativeTo = this.realm.settings.files.relativeTo; | ||
} | ||
if (!options.relativeTo && | ||
this.realm.settings.files.relativeTo) { | ||
const manager = new Manager(options); | ||
this.realm.plugins.vision.manager = manager; | ||
return manager; | ||
}); | ||
options = Hoek.shallow(options); | ||
options.relativeTo = this.realm.settings.files.relativeTo; | ||
} | ||
server.decorate('server', 'render', internals.render); | ||
server.decorate('request', 'render', internals.render); | ||
server.decorate('handler', 'view', internals.handler); | ||
const manager = new Manager(options); | ||
this.realm.plugins.vision.manager = manager; | ||
return manager; | ||
}); | ||
server.decorate('toolkit', 'view', function (template, context, options) { | ||
server.decorate('server', 'render', internals.render); | ||
server.decorate('request', 'render', internals.render); | ||
server.decorate('handler', 'view', internals.handler); | ||
const realm = (this.realm.plugins.vision || this.request.server.realm.plugins.vision || {}); | ||
Hoek.assert(realm.manager, 'Cannot render view without a views manager configured'); | ||
return this.response(realm.manager._response(template, context, options, this.request)); | ||
}); | ||
}; | ||
server.decorate('toolkit', 'view', function (template, context, options) { | ||
exports.register.attributes = { | ||
once: true, | ||
pkg: require('../package.json') | ||
const realm = (this.realm.plugins.vision || this.request.server.realm.plugins.vision || {}); | ||
Hoek.assert(realm.manager, 'Cannot render view without a views manager configured'); | ||
return this.response(realm.manager._response(template, context, options, this.request)); | ||
}); | ||
} | ||
}; | ||
@@ -64,0 +64,0 @@ |
{ | ||
"name": "vision", | ||
"description": "Templates rendering plugin support for hapi.js", | ||
"version": "5.0.0-rc7", | ||
"version": "5.0.0-rc8", | ||
"repository": "git://github.com/hapijs/vision", | ||
@@ -23,3 +23,3 @@ "main": "lib/index.js", | ||
"peerDependencies": { | ||
"hapi": "17.0.0-rc7" | ||
"hapi": "17.0.0-rc8" | ||
}, | ||
@@ -32,3 +32,3 @@ "devDependencies": { | ||
"handlebars": "4.x.x", | ||
"hapi": "17.0.0-rc7", | ||
"hapi": "17.0.0-rc8", | ||
"hapi-react-views": "6.x.x", | ||
@@ -35,0 +35,0 @@ "pug": ">=2.0.0-beta6", |
@@ -268,15 +268,15 @@ 'use strict'; | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
register: async function (server, options) { | ||
const rendered = await server.render('test', { message: 'steve' }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
}; | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
test.attributes = { | ||
name: 'test' | ||
const rendered = await server.render('test', { message: 'steve' }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
} | ||
}; | ||
@@ -294,10 +294,10 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
const rendered = await server.render('test', { message: 'steve' }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
}; | ||
register: async function (server, options) { | ||
test.attributes = { | ||
name: 'test' | ||
const rendered = await server.render('test', { message: 'steve' }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
} | ||
}; | ||
@@ -320,14 +320,14 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.views({ | ||
engines: { 'html': Handlebars } | ||
}); | ||
register: async function (server, options) { | ||
const rendered = await server.render('test', { message: 'steve' }, { relativeTo: Path.join(__dirname, '/templates/plugin') }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
}; | ||
server.views({ | ||
engines: { 'html': Handlebars } | ||
}); | ||
test.attributes = { | ||
name: 'test' | ||
const rendered = await server.render('test', { message: 'steve' }, { relativeTo: Path.join(__dirname, '/templates/plugin') }); | ||
server.route({ path: '/view', method: 'GET', handler: () => rendered }); | ||
} | ||
}; | ||
@@ -353,18 +353,18 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
register: async function (server, options) { | ||
server.route({ | ||
method: 'GET', | ||
path: '/view', | ||
handler: (request) => request.render('test', { message: 'steve' }) | ||
}); | ||
}; | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
test.attributes = { | ||
name: 'test' | ||
server.route({ | ||
method: 'GET', | ||
path: '/view', | ||
handler: (request) => request.render('test', { message: 'steve' }) | ||
}); | ||
} | ||
}; | ||
@@ -422,9 +422,9 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
await server.render('test', { message: 'steve' }); | ||
}; | ||
register: async function (server, options) { | ||
test.attributes = { | ||
name: 'test' | ||
await server.render('test', { message: 'steve' }); | ||
} | ||
}; | ||
@@ -442,30 +442,30 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.path(__dirname); | ||
register: async function (server, options) { | ||
const views = { | ||
engines: { 'html': Handlebars }, | ||
path: './templates/plugin' | ||
}; | ||
server.path(__dirname); | ||
server.views(views); | ||
const views = { | ||
engines: { 'html': Handlebars }, | ||
path: './templates/plugin' | ||
}; | ||
if (Object.keys(views).length !== 2) { | ||
throw new Error('plugin.view() modified options'); | ||
} | ||
server.views(views); | ||
server.route({ path: '/view', method: 'GET', handler: (request, reply) => reply.view('test', { message: options.message }) }); | ||
server.ext('onRequest', (request, reply) => { | ||
if (request.path === '/ext') { | ||
return reply.view('test', { message: 'grabbed' }).takeover(); | ||
if (Object.keys(views).length !== 2) { | ||
throw new Error('plugin.view() modified options'); | ||
} | ||
return reply.continue; | ||
}); | ||
}; | ||
server.route({ path: '/view', method: 'GET', handler: (request, reply) => reply.view('test', { message: options.message }) }); | ||
server.ext('onRequest', (request, reply) => { | ||
test.attributes = { | ||
name: 'test' | ||
if (request.path === '/ext') { | ||
return reply.view('test', { message: 'grabbed' }).takeover(); | ||
} | ||
return reply.continue; | ||
}); | ||
} | ||
}; | ||
@@ -475,3 +475,3 @@ | ||
await server.register(Vision); | ||
await server.register({ register: test, options: { message: 'viewing it' } }); | ||
await server.register({ plugin: test, options: { message: 'viewing it' } }); | ||
@@ -487,14 +487,14 @@ const res1 = await server.inject('/view'); | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
register: async function (server, options) { | ||
server.route({ path: '/view', method: 'GET', handler: (request, reply) => reply.view('test', { message: 'steve' }) }); | ||
}; | ||
server.views({ | ||
engines: { 'html': Handlebars }, | ||
relativeTo: Path.join(__dirname, '/templates/plugin') | ||
}); | ||
test.attributes = { | ||
name: 'test' | ||
server.route({ path: '/view', method: 'GET', handler: (request, reply) => reply.view('test', { message: 'steve' }) }); | ||
} | ||
}; | ||
@@ -512,13 +512,13 @@ | ||
const test = async function (server, options) { | ||
const test = { | ||
name: 'test', | ||
server.route({ | ||
path: '/view', | ||
method: 'GET', | ||
handler: (request, reply) => reply.view('test', { message: options.message }) | ||
}); | ||
}; | ||
register: async function (server, options) { | ||
test.attributes = { | ||
name: 'test' | ||
server.route({ | ||
path: '/view', | ||
method: 'GET', | ||
handler: (request, reply) => reply.view('test', { message: options.message }) | ||
}); | ||
} | ||
}; | ||
@@ -538,3 +538,3 @@ | ||
await server.register({ register: test, options: { message: 'viewing it' } }); | ||
await server.register({ plugin: test, options: { message: 'viewing it' } }); | ||
const res = await server.inject('/view'); | ||
@@ -593,15 +593,20 @@ expect(res.result).to.equal('<h1>viewing it</h1>'); | ||
const one = function (server, options) { | ||
const one = { | ||
name: 'one', | ||
return server.register(Vision); | ||
register: function (server, options) { | ||
return server.register(Vision); | ||
} | ||
}; | ||
const two = function (server, options) { | ||
const two = { | ||
name: 'two', | ||
return server.register(Vision); | ||
register: function (server, options) { | ||
return server.register(Vision); | ||
} | ||
}; | ||
one.attributes = { name: 'one' }; | ||
two.attributes = { name: 'two' }; | ||
const server = new Hapi.Server(); | ||
@@ -608,0 +613,0 @@ await server.register([one, two]); |
165634
3216