Skip to main content

Quick Start: Blaze Renderer

Register eSheet Renderer as a Blaze template. React is bundled inside @esheet/renderer-blaze — no separate React install needed in your Meteor app.

Install

npm install @esheet/renderer-blaze

If your app imports core types such as FormDefinition directly, also add @esheet/core as a dependency.

Register the Blaze Template

import { registerBlazeTemplate } from '@esheet/renderer-blaze';

const registered = registerBlazeTemplate();

if (!registered) {
throw new Error(
'Failed to register Blaze template: required globals are missing.'
);
}

By default, registerBlazeTemplate() creates the template as Template.esheetRenderer.

Use a Custom Template Name

const registered = registerBlazeTemplate('esheetRendererSurvey');

if (!registered) {
throw new Error('Failed to register Blaze template');
}

This registers Template.esheetRendererSurvey.

Access Responses in the Template Instance

After render, the instance exposes:

  • this.getResponse()
  • this.getValidResponse()

Example pattern:

Template.esheetRenderer.onRendered(function () {
const result = this.getValidResponse?.();

if (!result) {
console.warn('Renderer not ready yet');
return;
}

if (result.errors.length > 0) {
console.warn('Validation errors:', result.errors);
return;
}

console.log('Valid response:', result.response);
});

Troubleshooting

registerBlazeTemplate() returns false when the required Blaze globals are not present at call time:

Missing globalMeaning
TemplateBlaze not loaded yet
BlazeBlaze not loaded yet
HTMLBlaze not loaded yet

Call registerBlazeTemplate() after Blaze has fully initialized (e.g. in a Meteor startup callback).