summaryrefslogtreecommitdiff
path: root/node_modules/@sindresorhus/slugify/index.d.ts
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@sindresorhus/slugify/index.d.ts
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@sindresorhus/slugify/index.d.ts')
-rw-r--r--node_modules/@sindresorhus/slugify/index.d.ts246
1 files changed, 246 insertions, 0 deletions
diff --git a/node_modules/@sindresorhus/slugify/index.d.ts b/node_modules/@sindresorhus/slugify/index.d.ts
new file mode 100644
index 0000000..95f3612
--- /dev/null
+++ b/node_modules/@sindresorhus/slugify/index.d.ts
@@ -0,0 +1,246 @@
+export interface Options {
+ /**
+ @default '-'
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('BAR and baz');
+ //=> 'bar-and-baz'
+
+ slugify('BAR and baz', {separator: '_'});
+ //=> 'bar_and_baz'
+
+ slugify('BAR and baz', {separator: ''});
+ //=> 'barandbaz'
+ ```
+ */
+ readonly separator?: string;
+
+ /**
+ Make the slug lowercase.
+
+ @default true
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('Déjà Vu!');
+ //=> 'deja-vu'
+
+ slugify('Déjà Vu!', {lowercase: false});
+ //=> 'Deja-Vu'
+ ```
+ */
+ readonly lowercase?: boolean;
+
+ /**
+ Convert camelcase to separate words. Internally it does `fooBar` → `foo bar`.
+
+ @default true
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('fooBar');
+ //=> 'foo-bar'
+
+ slugify('fooBar', {decamelize: false});
+ //=> 'foobar'
+ ```
+ */
+ readonly decamelize?: boolean;
+
+ /**
+ Add your own custom replacements.
+
+ The replacements are run on the original string before any other transformations.
+
+ This only overrides a default replacement if you set an item with the same key, like `&`.
+
+ Add a leading and trailing space to the replacement to have it separated by dashes.
+
+ @default [ ['&', ' and '], ['🦄', ' unicorn '], ['♥', ' love '] ]
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('Foo@unicorn', {
+ customReplacements: [
+ ['@', 'at']
+ ]
+ });
+ //=> 'fooatunicorn'
+
+ slugify('foo@unicorn', {
+ customReplacements: [
+ ['@', ' at ']
+ ]
+ });
+ //=> 'foo-at-unicorn'
+
+ slugify('I love 🐶', {
+ customReplacements: [
+ ['🐶', 'dogs']
+ ]
+ });
+ //=> 'i-love-dogs'
+ ```
+ */
+ readonly customReplacements?: ReadonlyArray<[string, string]>;
+
+ /**
+ If your string starts with an underscore, it will be preserved in the slugified string.
+
+ Sometimes leading underscores are intentional, for example, filenames representing hidden paths on a website.
+
+ @default false
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('_foo_bar');
+ //=> 'foo-bar'
+
+ slugify('_foo_bar', {preserveLeadingUnderscore: true});
+ //=> '_foo-bar'
+ ```
+ */
+ readonly preserveLeadingUnderscore?: boolean;
+
+ /**
+ If your string ends with a dash, it will be preserved in the slugified string.
+
+ For example, using slugify on an input field would allow for validation while not preventing the user from writing a slug.
+
+ @default false
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('foo-bar-');
+ //=> 'foo-bar'
+
+ slugify('foo-bar-', {preserveTrailingDash: true});
+ //=> 'foo-bar-'
+ ```
+ */
+ readonly preserveTrailingDash?: boolean;
+
+ /**
+ Preserve certain characters.
+
+ It cannot contain the `separator`.
+
+ For example, if you want to slugify URLs, but preserve the HTML fragment `#` character, you could set `preserveCharacters: ['#']`.
+
+ @default []
+
+ @example
+ ```
+ import slugify from '@sindresorhus/slugify';
+
+ slugify('foo_bar#baz', {preserveCharacters: ['#']});
+ //=> 'foo-bar#baz'
+ ```
+ */
+ readonly preserveCharacters?: string[];
+}
+
+/**
+Slugify a string.
+
+@param string - String to slugify.
+
+@example
+```
+import slugify from '@sindresorhus/slugify';
+
+slugify('I ♥ Dogs');
+//=> 'i-love-dogs'
+
+slugify(' Déjà Vu! ');
+//=> 'deja-vu'
+
+slugify('fooBar 123 $#%');
+//=> 'foo-bar-123'
+
+slugify('я люблю единорогов');
+//=> 'ya-lyublyu-edinorogov'
+```
+*/
+export default function slugify(string: string, options?: Options): string;
+
+export interface CountableSlugify {
+ /**
+ Reset the counter.
+
+ @example
+ ```
+ import {slugifyWithCounter} from '@sindresorhus/slugify';
+
+ const slugify = slugifyWithCounter();
+
+ slugify('foo bar');
+ //=> 'foo-bar'
+
+ slugify('foo bar');
+ //=> 'foo-bar-2'
+
+ slugify.reset();
+
+ slugify('foo bar');
+ //=> 'foo-bar'
+ ```
+ */
+ reset: () => void;
+
+ /**
+ Returns a new instance of `slugify(string, options?)` with a counter to handle multiple occurrences of the same string.
+
+ @param string - String to slugify.
+
+ @example
+ ```
+ import {slugifyWithCounter} from '@sindresorhus/slugify';
+
+ const slugify = slugifyWithCounter();
+
+ slugify('foo bar');
+ //=> 'foo-bar'
+
+ slugify('foo bar');
+ //=> 'foo-bar-2'
+
+ slugify.reset();
+
+ slugify('foo bar');
+ //=> 'foo-bar'
+ ```
+
+ __Use case example of counter__
+
+ If, for example, you have a document with multiple sections where each subsection has an example.
+
+ ```
+ ## Section 1
+
+ ### Example
+
+ ## Section 2
+
+ ### Example
+ ```
+
+ You can then use `slugifyWithCounter()` to generate unique HTML `id`'s to ensure anchors will link to the right headline.
+ */
+ (string: string, options?: Options): string;
+}
+
+export function slugifyWithCounter(): CountableSlugify;