@curvenote/cli
Version:
CLI Client library for Curvenote
42 lines (41 loc) • 1.51 kB
JavaScript
import inquirer from 'inquirer';
import path from 'node:path';
import { writeFileToFolder } from 'myst-cli-utils';
import { OxaTransformer, transformOxalinkStore } from '../transforms/links.js';
export function resolvePath(optionalPath, filename) {
if (optionalPath)
return path.join(optionalPath, filename);
if (path.isAbsolute(filename))
return filename;
return path.join('.', filename);
}
export function versionIdToURL(versionId) {
return `/blocks/${versionId.project}/${versionId.block}/versions/${versionId.version}`;
}
export async function confirmOrExit(message, opts) {
if (opts === null || opts === void 0 ? void 0 : opts.yes)
return;
const question = await inquirer.prompt([
{
name: 'confirm',
message,
type: 'confirm',
default: false,
},
]);
if (!question.confirm) {
process.exit();
}
}
/** Add oxa link transformers to options */
export function addOxaTransformersToOpts(session, opts) {
var _a, _b;
return {
...opts,
extraLinkTransformers: [...((_a = opts.extraLinkTransformers) !== null && _a !== void 0 ? _a : []), new OxaTransformer(session)],
extraTransforms: [...((_b = opts.extraTransforms) !== null && _b !== void 0 ? _b : []), transformOxalinkStore],
};
}
export function writeJsonLogs(session, name, logData) {
writeFileToFolder(path.join(session.buildPath(), 'logs', name), JSON.stringify(logData, null, 2));
}