wkillerud / scss-sassdoc-parser

If you're looking for just the parser from SassDoc, this is it. TypeScript included.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

scss-sassdoc-parser

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.

Usage

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();

Parse using paths

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"]);

Output

The result from the parse function is an array of ParseResult (type definitions). Check out the snapshot tests for some example outputs.

About

If you're looking for just the parser from SassDoc, this is it. TypeScript included.

License:MIT License


Languages

Language:TypeScript 98.1%Language:JavaScript 1.0%Language:Shell 0.7%Language:SCSS 0.2%