UNPKG

@openinc/parse-server-opendash

Version:
47 lines (46 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.importDocs = importDocs; require("dotenv/config"); const core_1 = require("../core"); const config_1 = require("../config"); const Converter_1 = require("../core/Converter"); const types_1 = require("../../../types"); const LinkResolver_1 = require("../services/LinkResolver"); const GITHUB_TOKEN = process.env.OI_DOCUMENTATION_GITHUB_ACCESS_TOKEN; async function importDocs() { try { if (!GITHUB_TOKEN) { throw new Error("Missing GitHub token - Please set OI_DOCUMENTATION_GITHUB_ACCESS_TOKEN environment variable"); } const importer = new core_1.DocumentationImporter(GITHUB_TOKEN); // Use the configuration helper to create import options const config = (0, config_1.createImportConfig)({ token: GITHUB_TOKEN, }); const userId = process.env.OI_DOCUMENTATION_USER_ID; const user = userId ? await new Parse.Query(Parse.User) .equalTo("objectId", userId) .include("tenant") .first({ useMasterKey: true }) : await new Parse.Query(Parse.User) .ascending("createdAt") .first({ useMasterKey: true }); const tenantId = process.env.OI_DOCUMENTATION_TENANT_ID; const tenant = tenantId ? new types_1.Tenant({ objectId: tenantId }) : user?.get("tenant"); const result = await importer.importFromRepository(config, user, tenant); if (result.metadata.skipped) return; // resolve links in all files and fetch their content into const linkResolver = new LinkResolver_1.LinkResolver(GITHUB_TOKEN, result.structure?.allFiles); await linkResolver.resolveLinks(user, tenant); if (result.structure) await new Converter_1.DocumentationConverter(result).convert(user, tenant); } catch (err) { console.error("Error importing documentation:", err); } }