@telefonica/markdown-confluence-sync
Version:
Creates/updates/deletes Confluence pages based on markdown files in a directory. Supports Mermaid diagrams and per-page configuration using frontmatter metadata. Works great with Docusaurus
31 lines (30 loc) • 1.09 kB
JavaScript
// SPDX-FileCopyrightText: 2024 Telefónica Innovación Digital
// SPDX-License-Identifier: Apache-2.0
import { SyncModes } from "@telefonica/confluence-sync";
import { MarkdownFlatDocuments } from "./DocusaurusFlatPages.js";
import { DocusaurusTreePages } from "./DocusaurusTreePages.js";
export const MarkdownDocumentsFactory = class MarkdownDocumentsFactory {
static fromMode(mode, options) {
if (!this._isValidMode(mode)) {
throw new Error(`"mode" option must be one of "tree", "flat" or "id"`);
}
if (this._isFlatMode(mode) || this._isIdMode(mode)) {
return new MarkdownFlatDocuments({
...options,
mode: mode,
});
}
return new DocusaurusTreePages(options);
}
static _isIdMode(mode) {
return mode === SyncModes.ID;
}
static _isFlatMode(mode) {
return mode === SyncModes.FLAT;
}
static _isValidMode(mode) {
return (mode === SyncModes.FLAT ||
mode === SyncModes.TREE ||
mode === SyncModes.ID);
}
};