From 52f06482723e74809fedd73b84a9100147cffb6a Mon Sep 17 00:00:00 2001 From: Carlos Precioso Date: Sun, 9 Dec 2018 12:53:53 +0100 Subject: [PATCH] Add sindresorhus__slugify --- types/sindresorhus__slugify/index.d.ts | 42 +++++++++++++++++++ .../sindresorhus__slugify-tests.ts | 29 +++++++++++++ types/sindresorhus__slugify/tsconfig.json | 19 +++++++++ types/sindresorhus__slugify/tslint.json | 1 + 4 files changed, 91 insertions(+) create mode 100644 types/sindresorhus__slugify/index.d.ts create mode 100644 types/sindresorhus__slugify/sindresorhus__slugify-tests.ts create mode 100644 types/sindresorhus__slugify/tsconfig.json create mode 100644 types/sindresorhus__slugify/tslint.json diff --git a/types/sindresorhus__slugify/index.d.ts b/types/sindresorhus__slugify/index.d.ts new file mode 100644 index 0000000000..2bce172863 --- /dev/null +++ b/types/sindresorhus__slugify/index.d.ts @@ -0,0 +1,42 @@ +// Type definitions for @sindresorhus/slugify 0.6 +// Project: https://github.com/sindesorhus/slugify +// Definitions by: Carlos Precioso +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace slugify { + interface Options { + /** + * @default "-" + */ + separator?: string; + + /** + * Make the slug lowercase. + * @default true + */ + lowercase?: boolean; + + /** + * Convert camelcase to separate words. Internally it does `fooBar` → `foo bar`. + * @default true + */ + decamelize?: boolean; + + /** + * Specifying this only replaces the default if you set an item with the same key, like &. + * The replacements are run on the original string before any other transformations. + * + * Add a leading and trailing space to the replacement to have it separated by dashes. + * + * @default [ ['&', ' and '], ['🦄', ' unicorn '], ['♥', ' love '] ] + */ + customReplacements?: ReadonlyArray<[string, string]>; + } +} + +/** + * Slugify a string + */ +declare function slugify(input: string, options?: slugify.Options): string; + +export = slugify; diff --git a/types/sindresorhus__slugify/sindresorhus__slugify-tests.ts b/types/sindresorhus__slugify/sindresorhus__slugify-tests.ts new file mode 100644 index 0000000000..50a45a2ba0 --- /dev/null +++ b/types/sindresorhus__slugify/sindresorhus__slugify-tests.ts @@ -0,0 +1,29 @@ +import slugify = require("@sindresorhus/slugify"); + +slugify("I ♥ Dogs"); + +slugify(" Déjà Vu! "); + +slugify("fooBar 123 $#%"); + +slugify("I ♥ 🦄 & 🐶", { customReplacements: [["🐶", "dog"]] }); + +slugify("BAR and baz"); + +slugify("BAR and baz", { separator: "_" }); + +slugify("Déjà Vu!"); + +slugify("Déjà Vu!", { lowercase: false }); + +slugify("fooBar"); + +slugify("fooBar", { decamelize: false }); + +slugify("Foo@unicorn", { + customReplacements: [["@", "at"]] +}); + +slugify("foo@unicorn", { + customReplacements: [["@", " at "]] +}); diff --git a/types/sindresorhus__slugify/tsconfig.json b/types/sindresorhus__slugify/tsconfig.json new file mode 100644 index 0000000000..24230965e5 --- /dev/null +++ b/types/sindresorhus__slugify/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@sindresorhus/slugify": ["sindresorhus__slugify"] + } + }, + "files": ["index.d.ts", "sindresorhus__slugify-tests.ts"] +} diff --git a/types/sindresorhus__slugify/tslint.json b/types/sindresorhus__slugify/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/sindresorhus__slugify/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }