fix(cli): don't wait for content loaded in bundled HTML

This commit is contained in:
Roman Hotsiy 2018-03-22 17:49:15 +02:00
parent d1d80422a4
commit d9ee2d0d89
No known key found for this signature in database
GPG Key ID: 5CB7B3ACABA57CB0

View File

@ -67,7 +67,7 @@ yargs
console.log(e.stack); console.log(e.stack);
} }
}, },
) )
.command( .command(
'bundle [spec]', 'bundle [spec]',
'bundle spec into zero-dependency HTML-file', 'bundle spec into zero-dependency HTML-file',
@ -112,7 +112,7 @@ yargs
console.log(e.message); console.log(e.message);
} }
}, },
) )
.demandCommand() .demandCommand()
.options('t', { .options('t', {
alias: 'template', alias: 'template',
@ -217,22 +217,22 @@ async function getPageHTML(
const template = compile(readFileSync(templateFileName).toString()); const template = compile(readFileSync(templateFileName).toString());
return template({ return template({
redocHTML: ` redocHTML: `
<div id="redoc">${(ssr && html) || ''}</div>
<script> <script>
${(ssr && `const __redoc_state = ${JSON.stringify(state)};`) || ''} ${(ssr && `const __redoc_state = ${JSON.stringify(state)};`) || ''}
document.addEventListener('DOMContentLoaded', function() {
var container = document.getElementById('redoc'); var container = document.getElementById('redoc');
Redoc.${ Redoc.${
ssr ssr
? 'hydrate(__redoc_state, container);' ? 'hydrate(__redoc_state, container);'
: `init("spec.json", ${JSON.stringify(redocOptions)}, container)` : `init("spec.json", ${JSON.stringify(redocOptions)}, container)`
}; };
});
</script> </script>`,
<div id="redoc">${(ssr && html) || ''}</div>`,
redocHead: ssr redocHead: ssr
? (cdn ? (cdn
? '<script src="https://unpkg.com/redoc@next/bundles/redoc.standalone.js"></script>' ? '<script src="https://unpkg.com/redoc@next/bundles/redoc.standalone.js"></script>'
: `<script>${redocStandaloneSrc}</script>`) + css : `<script>${redocStandaloneSrc}</script>`) + css
: '<script src="redoc.standalone.js"></script>', : '<script src="redoc.standalone.js"></script>',
title: title, title: title,
}); });