A more lightweight parser for SassDoc.
More or less a thin wrapper around scss-comment-parser
, but with all SassDoc annotations and TypeScript definitions built in.
import { parse } from "scss-sassdoc-parser";
async function doParse() {
const result = await parse(`
/// Keeps it secret
/// @output Sets display to hidden
@mixin _keep-it-secret {
display: hidden;
}
`);
doParse();
Or sync
import { parseSync } from "scss-sassdoc-parser";
const result = parseSync(`
/// Keeps it secret
/// @output Sets display to hidden
@mixin _keep-it-secret {
display: hidden;
}
`);
import fs from "node:fs/promises";
import { parse } from "scss-sassdoc-parser";
export async function doParse(path: string | string[]): Promise<ParseResult[]> {
const paths = Array.isArray(path) ? path : [path];
const result = await Promise.all(
paths.map(async (src) => {
const code = await fs.readFile(src, "utf-8");
return await parse(code);
}),
);
return result.flat();
}
const singlePathResult = await doParse("_helpers.scss");
const arrayOfPathsResult = await doParse(["_mixins.scss", "_functions.scss"]);
The result from the parse
function is an array of ParseResult
(type definitions). Check out the snapshot tests for some example outputs.