@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
47 lines (46 loc) • 2.04 kB
JavaScript
;
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);
}
}