@technobuddha/library
Version:
A large library of useful functions
18 lines • 1.38 kB
JavaScript
import { space } from "./unicode.js";
/**
* Determine the indentation level of text
* @param input - The indented text
* @param options - see {@link IndentOptions}
* @defaultValue indenter space
* @returns The minimum amount of indentation on each line
* @group String
* @category Analysis
*/
export function getIndent(input, { indenter = space } = {}) {
const matches = new RegExp(`^(${RegExp.escape(indenter)})+`, 'ugm').exec(input);
if (matches == null) {
return 0;
}
return Math.min(...matches.map((m) => m.length)) / indenter.length;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWluZGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nZXQtaW5kZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsR0FBRyxLQUFLLEtBQW9CLEVBQUU7SUFDL0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDckUsQ0FBQyJ9