igniteui-typedoc-theme
Version:
infragistics theme for typedoc API documentation
110 lines (109 loc) • 4.5 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getConfigData = exports.stringify = exports.wbr = exports.renderFlags = exports.renderTypeParametersSignature = exports.classNames = exports.join = exports.hasTypeParameters = void 0;
const path = __importStar(require("path"));
const fs = __importStar(require("fs"));
const typedoc_1 = require("typedoc");
function hasTypeParameters(reflection) {
if (reflection instanceof typedoc_1.DeclarationReflection || reflection instanceof typedoc_1.SignatureReflection) {
return reflection.typeParameters != null;
}
return false;
}
exports.hasTypeParameters = hasTypeParameters;
function join(joiner, list, cb) {
const result = [];
for (const item of list) {
if (result.length > 0) {
result.push(joiner);
}
result.push(cb(item));
}
return typedoc_1.JSX.createElement(typedoc_1.JSX.Fragment, null, result);
}
exports.join = join;
function classNames(names) {
return Object.entries(names)
.filter(([, include]) => include)
.map(([key]) => key)
.join(" ");
}
exports.classNames = classNames;
function renderTypeParametersSignature(typeParameters) {
return (typedoc_1.JSX.createElement(typedoc_1.JSX.Fragment, null, !!typeParameters && typeParameters.length > 0 && (typedoc_1.JSX.createElement(typedoc_1.JSX.Fragment, null,
typedoc_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "<"),
join(typedoc_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, ", "), typeParameters, (item) => (typedoc_1.JSX.createElement("span", { class: "tsd-signature-type", "data-tsd-kind": item.kindString }, item.name))),
typedoc_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, ">")))));
}
exports.renderTypeParametersSignature = renderTypeParametersSignature;
function renderFlags(flags) {
return (typedoc_1.JSX.createElement(typedoc_1.JSX.Fragment, null, flags.map((item) => (typedoc_1.JSX.createElement(typedoc_1.JSX.Fragment, null,
typedoc_1.JSX.createElement("span", { class: "tsd-flag ts-flag" + item }, item),
" ")))));
}
exports.renderFlags = renderFlags;
/**
* Insert word break tags ``<wbr>`` into the given string.
*
* Breaks the given string at ``_``, ``-`` and capital letters.
*
* @param str The string that should be split.
* @return The original string containing ``<wbr>`` tags where possible.
*/
function wbr(str) {
const ret = [];
const re = /[\s\S]*?(?:([^_-][_-])(?=[^_-])|([^A-Z])(?=[A-Z][^A-Z]))/g;
let match;
let i = 0;
while ((match = re.exec(str))) {
ret.push(match[0]);
ret.push(typedoc_1.JSX.createElement("wbr", null));
i += match[0].length;
}
ret.push(str.slice(i));
return ret;
}
exports.wbr = wbr;
function stringify(data) {
if (typeof data === "bigint") {
return data.toString() + "n";
}
return JSON.stringify(data);
}
exports.stringify = stringify;
function getConfigData(context, prop) {
const fileName = 'config.json';
const normalizedPath = path.join(__dirname, '..', fileName);
const config = JSON.parse(fs.readFileSync(normalizedPath, 'utf8'));
const lang = 'en';
let data;
if (config && lang && process.env.NODE_ENV) {
data = config[lang][process.env.NODE_ENV.trim()];
}
const res = data ? data[prop] : '';
return res;
}
exports.getConfigData = getConfigData;