How to use redoc - 7 common examples

To help you get started, we’ve selected a few redoc examples, based on popular ways it is used in public projects.

github Redocly / redoc / cli / index.ts View on Github external
async function serve(port: number, pathToSpec: string, options: Options = {}) {
  let spec = await loadAndBundleSpec(pathToSpec);
  let pageHTML = await getPageHTML(spec, pathToSpec, options);

  const server = createServer((request, response) => {
    console.time('GET ' + request.url);
    if (request.url === '/redoc.standalone.js') {
      respondWithGzip(
        createReadStream(join(BUNDLES_DIR, 'redoc.standalone.js'), 'utf8'),
        request,
        response,
        {
          'Content-Type': 'application/javascript',
        },
      );
    } else if (request.url === '/') {
      respondWithGzip(pageHTML, request, response, {
        'Content-Type': 'text/html',
github Redocly / redoc / cli / index.ts View on Github external
const handlePath = async path => {
      try {
        spec = await loadAndBundleSpec(pathToSpec);
        pageHTML = await getPageHTML(spec, pathToSpec, options);
        log('Updated successfully');
      } catch (e) {
        console.error('Error while updating: ', e.message);
      }
    };
github Redocly / redoc / cli / index.ts View on Github external
async function bundle(pathToSpec, options: Options = {}) {
  const start = Date.now();
  const spec = await loadAndBundleSpec(pathToSpec);
  const pageHTML = await getPageHTML(spec, pathToSpec, { ...options, ssr: true });

  mkdirp.sync(dirname(options.output!));
  writeFileSync(options.output!, pageHTML);
  const sizeInKiB = Math.ceil(Buffer.byteLength(pageHTML) / 1024);
  const time = Date.now() - start;
  console.log(
    `\n🎉 bundled successfully in: ${options.output!} (${sizeInKiB} KiB) [⏱ ${time / 1000}s]`,
  );
}
github Redocly / redoc / cli / index.ts View on Github external
title,
    disableGoogleFont,
    templateFileName,
    templateOptions,
    redocOptions = {},
  }: Options,
) {
  let html;
  let css;
  let state;
  let redocStandaloneSrc;
  if (ssr) {
    console.log('Prerendering docs');

    const specUrl = redocOptions.specUrl || (isURL(pathToSpec) ? pathToSpec : undefined);
    const store = await createStore(spec, specUrl, redocOptions);
    const sheet = new ServerStyleSheet();
    html = renderToString(sheet.collectStyles(React.createElement(Redoc, { store })));
    css = sheet.getStyleTags();
    state = await store.toJS();

    if (!cdn) {
      redocStandaloneSrc = readFileSync(join(BUNDLES_DIR, 'redoc.standalone.js'));
    }
  }

  templateFileName = templateFileName ? templateFileName : join(__dirname, './template.hbs');
  const template = compile(readFileSync(templateFileName).toString());
  return template({
    redocHTML: `
    <div id="redoc">${(ssr && html) || ''}</div>
    <script>
github maasglobal / maas-tsp-api / utils / bundle-spec.js View on Github external
async function bundleSpec() {
  const dir = path.dirname(out);
  if (!fs.existsSync(dir)) {
    fs.mkdirSync(dir, { recursive: true });
  }
  const json = await loadAndBundleSpec(spec);
  fs.writeFileSync(out, JSON.stringify(json, null, 2));
}
github maasglobal / maas-tsp-api / src / index.js View on Github external
app.get('/specs/booking.json', async (req, res) =>
  loadAndBundleSpec('./specs/booking.yml').then(json => res.json(json))
);
github openpitrix / website / gatsby-node.js View on Github external
const genAllAPI = new Promise((resolve) => {
    const specJson=require('./api.swagger.json');
    createStore(specJson, './api.swagger.json', apiDocOptions).then(store=> {
      const sheet = new ServerStyleSheet();
      const html=renderToString(sheet.collectStyles(React.createElement(Redoc, {store})));
      const css=sheet.getStyleTags();

      store.toJS().then(state=> {
        createPage({
          path: `/api/`,
          component: path.resolve(`./src/templates/api.js`),
          context: {
            html,
            css,
            state
          },
        })

        resolve()

redoc

ReDoc

MIT
Latest version published 15 days ago

Package Health Score

91 / 100
Full package analysis

Similar packages