1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
-
- module.exports = (string, count = 1, options) => {
- options = {
- indent: ' ',
- includeEmptyLines: false,
- ...options
- };
-
- if (typeof string !== 'string') {
- throw new TypeError(
- `Expected \`input\` to be a \`string\`, got \`${typeof string}\``
- );
- }
-
- if (typeof count !== 'number') {
- throw new TypeError(
- `Expected \`count\` to be a \`number\`, got \`${typeof count}\``
- );
- }
-
- if (typeof options.indent !== 'string') {
- throw new TypeError(
- `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\``
- );
- }
-
- if (count === 0) {
- return string;
- }
-
- const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm;
-
- return string.replace(regex, options.indent.repeat(count));
- };
|