This is an automated email from the ASF dual-hosted git repository. bdelacretaz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit b095fe73610176e8998e7a8e69b871698f5a0109 Author: Bertrand Delacretaz <[email protected]> AuthorDate: Fri Jul 26 11:14:41 2019 +0200 Better method names --- serverless-microsling/lib/openwhisk-renderer.js | 3 ++- serverless-microsling/lib/render.js | 18 +++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/serverless-microsling/lib/openwhisk-renderer.js b/serverless-microsling/lib/openwhisk-renderer.js index 21ba43d..f58a32e 100644 --- a/serverless-microsling/lib/openwhisk-renderer.js +++ b/serverless-microsling/lib/openwhisk-renderer.js @@ -51,7 +51,7 @@ const render = (resource, action) => { const renderer = { contentType: 'text/html', - appliesTo : async (resourceType, extension) => { + getRendererInfo : async (resourceType, extension) => { return getAction(resourceType, extension) }, render : (resource, action) => { @@ -59,6 +59,7 @@ const render = (resource, action) => { }, } +// For testing as a standalone OpenWhisk action function main () { return new Promise(async resolve => { const resource = { diff --git a/serverless-microsling/lib/render.js b/serverless-microsling/lib/render.js index eee7098..73df80b 100644 --- a/serverless-microsling/lib/render.js +++ b/serverless-microsling/lib/render.js @@ -22,7 +22,7 @@ const defaultTextRenderer = { contentType: 'text/plain', - appliesTo : (resourceType, extension) => { + getRendererInfo : (resourceType, extension) => { return extension == 'txt'; }, render : (resource) => { @@ -32,7 +32,7 @@ const defaultTextRenderer = { const defaultJsonRenderer = { contentType: 'application/json', - appliesTo : (resourceType, extension) => { + getRendererInfo : (resourceType, extension) => { return extension == 'json'; }, render : (resource) => { @@ -42,7 +42,7 @@ const defaultJsonRenderer = { const defaultHtmlRenderer = { contentType: 'text/html', - appliesTo : (resourceType, extension) => { + getRendererInfo : (resourceType, extension) => { return extension == 'html'; }, render : (resource) => { @@ -69,16 +69,16 @@ const renderers = [ defaultJsonRenderer ]; -async function getRendererInfo(resourceType, extension) { +async function selectRendererInfo(resourceType, extension) { return new Promise(async resolve => { let i; let resolved; for(i in renderers) { - const applyContext = await renderers[i].appliesTo(resourceType, extension); - if(applyContext) { + const rendererInfo = await renderers[i].getRendererInfo(resourceType, extension); + if(rendererInfo) { resolve({ 'renderer': renderers[i], - 'applyContext': applyContext, + 'rendererInfo': rendererInfo, }); resolved = true; break; @@ -97,14 +97,14 @@ async function render(context) { if(context.debug) { console.log(`rendering for resourceType ${resourceType} extension ${extension}`); } - const rendererInfo = await getRendererInfo(resourceType, extension); + const rendererInfo = await selectRendererInfo(resourceType, extension); if(context.debug) { console.log(rendererInfo); } if(!rendererInfo) { throw Error(`Renderer not found for ${resourceType} extension ${extension}`); } - const rendered = await rendererInfo.renderer.render(resource, rendererInfo.applyContext); + const rendered = await rendererInfo.renderer.render(resource, rendererInfo.rendererInfo); if(!rendered.output) { throw Error('Renderer generated no output'); }
