From a05eb94880de447b8a756a95bbe4beace1bc9328 Mon Sep 17 00:00:00 2001 From: Goldsmith42 Date: Thu, 27 Jul 2017 17:07:41 +0200 Subject: [PATCH] Added definition for properties-reader. (#18408) * Added definition for properties-reader. * Improved definition for properties-reader. * Removed object reference from properties-reader. --- types/properties-reader/index.d.ts | 26 +++++++++++++++++++ .../properties-reader-tests.ts | 25 ++++++++++++++++++ types/properties-reader/tsconfig.json | 22 ++++++++++++++++ types/properties-reader/tslint.json | 1 + 4 files changed, 74 insertions(+) create mode 100644 types/properties-reader/index.d.ts create mode 100644 types/properties-reader/properties-reader-tests.ts create mode 100644 types/properties-reader/tsconfig.json create mode 100644 types/properties-reader/tslint.json diff --git a/types/properties-reader/index.d.ts b/types/properties-reader/index.d.ts new file mode 100644 index 0000000000..9a76f16cc9 --- /dev/null +++ b/types/properties-reader/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for properties-reader 0.0 +// Project: https://github.com/steveukx/properties +// Definitions by: Zlatko Andonovski +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace PropertiesReader { + type Value = string|number|boolean; + + interface Reader { + get(propertyName: string): Value|null; + getRaw(propertyName: string): string|null; + path(): {}; + append(path: string): Reader; + read(properties: string): Reader; + set(propertyName: string, value: Value): Reader; + length: number; + each(iterator: (key: string, value: Value) => void): Reader; + each(iterator: (this: T, key: string, value: Value) => void, scope: T): Reader; + getAllProperties(): { [key: string]: Value; }; + clone(): Reader; + } +} + +declare function PropertiesReader(path: string): PropertiesReader.Reader; + +export = PropertiesReader; diff --git a/types/properties-reader/properties-reader-tests.ts b/types/properties-reader/properties-reader-tests.ts new file mode 100644 index 0000000000..309ba9cab2 --- /dev/null +++ b/types/properties-reader/properties-reader-tests.ts @@ -0,0 +1,25 @@ +// Trying some things from the official documentation: https://github.com/steveukx/properties/blob/master/README.md + +import PropertiesReader = require('properties-reader'); + +let properties = PropertiesReader('/path/to/properties.file'); +// Fully qualified name +let property = properties.get('some.property.name'); +// Yeah, so we have no way of doing this properly. +property = ( properties.path()).some.property.name; + +properties = properties.append('/another.file').append('/yet/another.file'); +properties = properties.read('some.property = Value \n another.property = Another Value'); +properties = properties.set('property.name', 'Property Value'); + +properties.get('main.some.thing') === 'foo'; +properties.get('blah.some.thing') === 'bar'; + +const propertiesCount: number = properties.length; +const raw: string|null = properties.getRaw('path.to.prop'); + +properties = properties.each((key, value) => {}); +properties = properties.each(function(key, value) { + this.x = 5; +}, { x: 3 }); +const value = properties.getAllProperties()["myKey"]; diff --git a/types/properties-reader/tsconfig.json b/types/properties-reader/tsconfig.json new file mode 100644 index 0000000000..12dabc301b --- /dev/null +++ b/types/properties-reader/tsconfig.json @@ -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", + "properties-reader-tests.ts" + ] +} diff --git a/types/properties-reader/tslint.json b/types/properties-reader/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/properties-reader/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }