diff --git a/types/parse-filepath/index.d.ts b/types/parse-filepath/index.d.ts new file mode 100644 index 0000000000..93e35ecb6e --- /dev/null +++ b/types/parse-filepath/index.d.ts @@ -0,0 +1,69 @@ +// Type definitions for parse-filepath 1.0 +// Project: https://github.com/jonschlinkert/parse-filepath +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = parseFilepath; + +/** + * Pollyfill for node.js `path.parse()`, parses a filepath into an object. + * + * @param filepath + */ +declare function parseFilepath(filepath: string): parseFilepath.ParsedPath; + +declare namespace parseFilepath { + interface ParsedPath { + /** + * The root of the path such as `'/'` or `'c:\'` + */ + root: string; + /** + * The full directory path such as `'/home/user/dir'` or `'c:\path\dir'` + */ + dir: string; + /** + * The file name including extension (if any) such as `'index.html'` + */ + base: string; + /** + * The file extension (if any) such as `'.html'` + */ + ext: string; + /** + * The file name without extension (if any) such as `'index'` + */ + name: string; + + /** + * alias for `ext` + */ + extname: string; + /** + * alias for `base` + */ + basename: string; + /** + * alias for `dir` + */ + dirname: string; + /** + * alias for `name` + */ + stem: string; + + /** + * the original filepath + */ + path: string; + + /** + * fully resolved, absolute filepath + */ + absolute: string; + /** + * `true` if the given path is absolute + */ + isAbsolute: boolean; + } +} diff --git a/types/parse-filepath/parse-filepath-tests.ts b/types/parse-filepath/parse-filepath-tests.ts new file mode 100644 index 0000000000..d961e42109 --- /dev/null +++ b/types/parse-filepath/parse-filepath-tests.ts @@ -0,0 +1,16 @@ +import parsePath = require('parse-filepath'); + +const parsedPath = parsePath('foo/bar/baz/index.js'); + +parsedPath.absolute; // $ExpectType string +parsedPath.base; // $ExpectType string +parsedPath.basename; // $ExpectType string +parsedPath.dir; // $ExpectType string +parsedPath.dirname; // $ExpectType string +parsedPath.ext; // $ExpectType string +parsedPath.extname; // $ExpectType string +parsedPath.isAbsolute; // $ExpectType boolean +parsedPath.name; // $ExpectType string +parsedPath.path; // $ExpectType string +parsedPath.root; // $ExpectType string +parsedPath.stem; // $ExpectType string diff --git a/types/parse-filepath/tsconfig.json b/types/parse-filepath/tsconfig.json new file mode 100644 index 0000000000..f142ec49cf --- /dev/null +++ b/types/parse-filepath/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "parse-filepath-tests.ts" + ] +} diff --git a/types/parse-filepath/tslint.json b/types/parse-filepath/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/parse-filepath/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }