UNPKG

graphqldoc

Version:
57 lines (56 loc) 2.27 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const marked = require("marked"); const slug = require("slug"); const plugin_1 = require("./plugin"); function slugTemplate() { return function (text, render) { return slug(render(text)).toLowerCase(); }; } exports.slugTemplate = slugTemplate; function createData(projectPackage, graphqldocPackage, plugins, type) { return __awaiter(this, void 0, void 0, function* () { const name = type && type.name; const [headers, navigations, documents] = yield Promise.all([ plugin_1.Plugin.collectHeaders(plugins, name), plugin_1.Plugin.collectNavigations(plugins, name), plugin_1.Plugin.collectDocuments(plugins, name), ]); const packageTitle = projectPackage.graphqldoc.title; let tabTitle = 'GraphQL Schema Documentation'; let headerTitle = tabTitle; if (name && packageTitle) { tabTitle = `${name} | ${projectPackage.graphqldoc.title}`; headerTitle = name; } else if (name || packageTitle) { tabTitle = name || packageTitle; headerTitle = tabTitle; } const description = type ? marked(type.description || '') : projectPackage.description; return { tabTitle, headerTitle, type, description, headers: headers.join(''), navigations, documents, projectPackage, graphqldocPackage, slug: slugTemplate }; }); } exports.createData = createData;