[stat-mode] add typings (#18907)

This commit is contained in:
Dimitri Benin
2017-08-14 10:10:18 -07:00
committed by Mohamed Hegazy
parent 3b62816f0e
commit 6bfa5328c8
4 changed files with 136 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
// Type definitions for stat-mode 0.2
// Project: https://github.com/TooTallNate/stat-mode
// Definitions by: BendingBender <https://github.com/BendingBender>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export = Mode;
declare class Mode {
owner: Mode.Permissions;
group: Mode.Permissions;
others: Mode.Permissions;
setuid: boolean;
setgid: boolean;
sticky: boolean;
constructor(stat: {mode: number});
isBlockDevice(isBlockDevice?: boolean): boolean;
isCharacterDevice(isCharacterDevice?: boolean): boolean;
isDirectory(isDirectory?: boolean): boolean;
isFIFO(isFIFO?: boolean): boolean;
isFile(isFile?: boolean): boolean;
isSocket(isSocket?: boolean): boolean;
isSymbolicLink(isSymbolicLink?: boolean): boolean;
valueOf(): number;
toOctal(): string;
}
declare namespace Mode {
interface Permissions {
read: boolean;
write: boolean;
execute: boolean;
}
}
+80
View File
@@ -0,0 +1,80 @@
/// <reference types="node" />
import fs = require('fs');
import Mode = require('stat-mode');
fs.stat('/bin/echo', (err, stat) => {
if (err) throw err;
const mode = new Mode(stat);
// $ExpectType Mode
mode;
// $ExpectType boolean
mode.isDirectory();
mode.isDirectory(false);
// $ExpectType boolean
mode.isFIFO();
mode.isFIFO(false);
// $ExpectType boolean
mode.isFile();
mode.isFile(false);
// $ExpectType boolean
mode.isBlockDevice();
mode.isBlockDevice(false);
// $ExpectType boolean
mode.isCharacterDevice();
mode.isCharacterDevice(false);
// $ExpectType boolean
mode.isSocket();
mode.isSocket(false);
// $ExpectType boolean
mode.isSymbolicLink();
mode.isSymbolicLink(false);
// $ExpectType Permissions
mode.owner;
// $ExpectType boolean
mode.owner.read;
// $ExpectType boolean
mode.owner.write;
// $ExpectType boolean
mode.owner.execute;
// $ExpectType Permissions
mode.group;
// $ExpectType boolean
mode.group.read;
// $ExpectType boolean
mode.group.write;
// $ExpectType boolean
mode.group.execute;
// $ExpectType Permissions
mode.others;
// $ExpectType boolean
mode.others.read;
// $ExpectType boolean
mode.others.write;
// $ExpectType boolean
mode.others.execute;
// $ExpectType boolean
mode.setuid;
// $ExpectType boolean
mode.setgid;
// $ExpectType boolean
mode.sticky;
// $ExpectType number
mode.valueOf();
mode.toString();
// $ExpectType string
mode.toOctal();
});
+22
View File
@@ -0,0 +1,22 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"stat-mode-tests.ts"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }