From 3b83cfaaac1284ebf79997637216d43596575f7e Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Fri, 16 Sep 2016 22:28:38 +0200 Subject: [PATCH] now adheres to standard js --- .gitignore | 3 +- README.md | 46 ++++++++++-- dist/index.d.ts | 13 +++- dist/index.js | 33 ++++++--- dist/npmextra.classes.keyValueStore.d.ts | 6 ++ dist/npmextra.classes.keyValueStore.js | 22 ++++++ dist/npmextra.paths.js | 10 +-- dist/npmextra.plugins.d.ts | 12 ++-- dist/npmextra.plugins.js | 14 ++-- ts/index.ts | 91 ++++++++++++++---------- ts/npmextra.classes.keyValueStore.ts | 18 +++-- ts/npmextra.paths.ts | 10 +-- ts/npmextra.plugins.ts | 12 ++-- tslint.json | 3 + 14 files changed, 196 insertions(+), 97 deletions(-) create mode 100644 dist/npmextra.classes.keyValueStore.d.ts create mode 100644 dist/npmextra.classes.keyValueStore.js create mode 100644 tslint.json diff --git a/.gitignore b/.gitignore index 2f0dc55..2669fbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ coverage/ -docs/ +pages/ +public/ diff --git a/README.md b/README.md index 60207af..00c0957 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,47 @@ # npmextra -do more with npm +do more with npm. npmextra is a hub for a series of js tools that help writing, documenting and maintaining npm modules. +## Availabililty +[![npm](https://push.rocks/assets/repo-button-npm.svg)](https://www.npmjs.com/package/npmpage) +[![git](https://push.rocks/assets/repo-button-git.svg)](https://gitlab.com/pushrocks/npmpage) +[![git](https://push.rocks/assets/repo-button-mirror.svg)](https://github.com/pushrocks/npmpage) +[![docs](https://push.rocks/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/npmpage/gitbook) + +## Status for master +[![build status](https://gitlab.com/pushrocks/npmpage/badges/master/build.svg)](https://gitlab.com/pushrocks/npmpage/commits/master) +[![coverage report](https://gitlab.com/pushrocks/npmpage/badges/master/coverage.svg)](https://gitlab.com/pushrocks/npmpage/commits/master) +[![Dependency Status](https://david-dm.org/pushrocks/npmpage.svg)](https://david-dm.org/pushrocks/npmpage) +[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/npmpage/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/npmpage/master/dependencies/npm) +[![bitHound Code](https://www.bithound.io/github/pushrocks/npmpage/badges/code.svg)](https://www.bithound.io/github/pushrocks/npmpage) +[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) +[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/) +[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) + ## Usage The main purpose of npmextra is to configure different tools using one npmextra.json. This way complex setups avaoid complexity through many configuration files. -```typescript -let npmextra = require("npmextra"); -npmextra.dataFor({ - toolName:"sometool", +npmextra.json +```json +{ + "sometool": { + "defaultKey1": "awesomeValueFromConfig" + } +} +``` -}); -``` \ No newline at end of file +```typescript +import * as npmextra from 'npmextra' + +npmextra.dataFor({ + toolName:'sometool', + defaultSettings: { // gets merged with whatever is in the configfile + defaultKey1: 'defaultValue1', // so this will get overwritten with "awesomeValueFromConfig" + defaultKey2: 'defaultValue2' // this one will pass through unaltered + }, + cwd?: string // lets you specifiy a custom current working directory to look for the npmextra.json +}) +``` + +[![npm](https://push.rocks/assets/repo-header.svg)](https://push.rocks) diff --git a/dist/index.d.ts b/dist/index.d.ts index ea935d6..84f1af8 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -3,5 +3,14 @@ export interface IDataFor { defaultSettings?: any; cwd?: string; } -export declare let dataFor: (optionsArg: IDataFor) => any; -export declare let configFilePresent: () => boolean; +/** + * gets you the configuration data for + * @executes SYNC + */ +export declare let dataFor: (optionsArg: IDataFor) => IOptions; +/** + * tells you if a configfile is present + */ +export declare let configFilePresent: (optionsArg: { + cwd?: string; +}) => boolean; diff --git a/dist/index.js b/dist/index.js index 72ba425..29de518 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,10 +1,14 @@ "use strict"; -const plugins = require("./npmextra.plugins"); -const paths = require("./npmextra.paths"); +const plugins = require('./npmextra.plugins'); +const paths = require('./npmextra.paths'); +/** + * gets you the configuration data for + * @executes SYNC + */ exports.dataFor = (optionsArg) => { // handle default settings - if (typeof optionsArg.toolName != undefined - && typeof optionsArg.defaultSettings != undefined) { + if (typeof optionsArg.toolName !== undefined + && typeof optionsArg.defaultSettings !== undefined) { let newDefaultOptions = {}; newDefaultOptions[optionsArg.toolName] = optionsArg.defaultSettings; optionsArg.defaultSettings = newDefaultOptions; @@ -13,7 +17,7 @@ exports.dataFor = (optionsArg) => { // set lookup path let lookupPath; if (optionsArg.cwd) { - lookupPath = plugins.path.join(optionsArg.cwd, "npmextra.json"); + lookupPath = plugins.path.join(optionsArg.cwd, 'npmextra.json'); } else { lookupPath = paths.configFile; @@ -29,7 +33,7 @@ exports.dataFor = (optionsArg) => { allData = {}; } ; - //assign all data + // assign all data allData = plugins.lodash.merge({}, optionsArg.defaultSettings, allData); if (optionsArg.toolName) { if (allData[optionsArg.toolName]) { @@ -44,7 +48,18 @@ exports.dataFor = (optionsArg) => { return allData; } }; -exports.configFilePresent = () => { - return plugins.smartfile.fs.fileExistsSync(paths.configFile); +/** + * tells you if a configfile is present + */ +exports.configFilePresent = (optionsArg) => { + let lookupPath; + if (optionsArg.cwd) { + lookupPath = plugins.path.join(optionsArg.cwd, 'npmextra.json'); + } + else { + lookupPath = paths.configFile; + } + ; + return plugins.smartfile.fs.fileExistsSync(lookupPath); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sb0JBQ3pCLENBQUMsQ0FENEM7QUFDN0MsTUFBWSxLQUFLLFdBQU0sa0JBQWtCLENBQUMsQ0FBQTtBQVEvQixlQUFPLEdBQUcsQ0FBQyxVQUFtQjtJQUVyQywwQkFBMEI7SUFDMUIsRUFBRSxDQUFBLENBQ0UsT0FBTyxVQUFVLENBQUMsUUFBUSxJQUFJLFNBQVM7V0FDcEMsT0FBTyxVQUFVLENBQUMsZUFBZSxJQUFJLFNBQzVDLENBQUMsQ0FBQSxDQUFDO1FBQ0UsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUM7UUFDcEUsVUFBVSxDQUFDLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztJQUNuRCxDQUFDO0lBQUEsQ0FBQztJQUVGLGtCQUFrQjtJQUNsQixJQUFJLFVBQWlCLENBQUM7SUFDdEIsRUFBRSxDQUFBLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUM7UUFDZixVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0lBQUEsQ0FBQztJQUVGLGNBQWM7SUFDZCxJQUFJLE9BQU8sQ0FBQztJQUNaLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDaEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsY0FBYyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQUEsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEUsRUFBRSxDQUFBLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBLENBQUM7UUFDcEIsRUFBRSxDQUFBLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVTLHlCQUFpQixHQUFHO0lBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sb0JBQ3pCLENBQUMsQ0FENEM7QUFDN0MsTUFBWSxLQUFLLFdBQU0sa0JBRXZCLENBQUMsQ0FGd0M7QUFRekM7OztHQUdHO0FBQ1EsZUFBTyxHQUFHLENBQVcsVUFBb0I7SUFFaEQsMEJBQTBCO0lBQzFCLEVBQUUsQ0FBQyxDQUNDLE9BQU8sVUFBVSxDQUFDLFFBQVEsS0FBSyxTQUFTO1dBQ3JDLE9BQU8sVUFBVSxDQUFDLGVBQWUsS0FBSyxTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNDLElBQUksaUJBQWlCLEdBQUcsRUFBRSxDQUFBO1FBQzFCLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFBO1FBQ25FLFVBQVUsQ0FBQyxlQUFlLEdBQUcsaUJBQWlCLENBQUE7SUFDbEQsQ0FBQztJQUFBLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsSUFBSSxVQUFrQixDQUFBO0lBQ3RCLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO0lBQ2pDLENBQUM7SUFBQSxDQUFDO0lBRUYsY0FBYztJQUNkLElBQUksT0FBTyxDQUFBO0lBQ1gsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxjQUFjLENBQUMsQ0FBQTtRQUNuRCxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBRUYsa0JBQWtCO0lBQ2xCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUMsVUFBVSxDQUFDLGVBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUNyRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN0QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDdEUsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLE9BQU8sQ0FBQTtJQUNsQixDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSx5QkFBaUIsR0FBRyxDQUFDLFVBQTBCO0lBQ3RELElBQUksVUFBa0IsQ0FBQTtJQUN0QixFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQixVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBQyxlQUFlLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUNqQyxDQUFDO0lBQUEsQ0FBQztJQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDMUQsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/dist/npmextra.classes.keyValueStore.d.ts b/dist/npmextra.classes.keyValueStore.d.ts new file mode 100644 index 0000000..730e078 --- /dev/null +++ b/dist/npmextra.classes.keyValueStore.d.ts @@ -0,0 +1,6 @@ +export declare type keyValueStoreTypes = 'path' | 'gitProject'; +export declare class KeyValueStore { + constructor(optionsArg: { + type: keyValueStoreTypes; + }); +} diff --git a/dist/npmextra.classes.keyValueStore.js b/dist/npmextra.classes.keyValueStore.js new file mode 100644 index 0000000..70b2495 --- /dev/null +++ b/dist/npmextra.classes.keyValueStore.js @@ -0,0 +1,22 @@ +"use strict"; +/** + * reads a keyValueFile from disk + */ +let kvRead = () => { +}; +/** + * writes a key value file to disk + */ +let kvWrite = () => { +}; +/** + * wipes a key value store from disk + */ +let kevWipe = () => { +}; +class KeyValueStore { + constructor(optionsArg) { + } +} +exports.KeyValueStore = KeyValueStore; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEuY2xhc3Nlcy5rZXlWYWx1ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtZXh0cmEuY2xhc3Nlcy5rZXlWYWx1ZVN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQTs7R0FFRztBQUNILElBQUksTUFBTSxHQUFHO0FBRWIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDSCxJQUFJLE9BQU8sR0FBRztBQUVkLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ0gsSUFBSSxPQUFPLEdBQUc7QUFFZCxDQUFDLENBQUE7QUFFRDtJQUNJLFlBQVksVUFFWDtJQUVELENBQUM7QUFDTCxDQUFDO0FBTlkscUJBQWEsZ0JBTXpCLENBQUEifQ== \ No newline at end of file diff --git a/dist/npmextra.paths.js b/dist/npmextra.paths.js index cd5da11..34b18e8 100644 --- a/dist/npmextra.paths.js +++ b/dist/npmextra.paths.js @@ -1,8 +1,8 @@ "use strict"; -const plugins = require("./npmextra.plugins"); +const plugins = require('./npmextra.plugins'); // directories exports.cwd = process.cwd(); -exports.packageDir = plugins.path.join(__dirname, "../"); -// -exports.configFile = plugins.path.join(exports.cwd, "npmextra.json"); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1leHRyYS5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUU5QyxjQUFjO0FBQ0gsV0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixrQkFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUUzRCxFQUFFO0FBQ1Msa0JBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFHLEVBQUMsZUFBZSxDQUFDLENBQUMifQ== \ No newline at end of file +exports.packageDir = plugins.path.join(__dirname, '../'); +// files +exports.configFile = plugins.path.join(exports.cwd, 'npmextra.json'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ucG1leHRyYS5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sb0JBR3pCLENBQUMsQ0FINEM7QUFFN0MsY0FBYztBQUNILFdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7QUFDbkIsa0JBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUMsS0FBSyxDQUFDLENBQUE7QUFFMUQsUUFBUTtBQUNHLGtCQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBRyxFQUFDLGVBQWUsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/dist/npmextra.plugins.d.ts b/dist/npmextra.plugins.d.ts index d143ea8..a610fce 100644 --- a/dist/npmextra.plugins.d.ts +++ b/dist/npmextra.plugins.d.ts @@ -1,6 +1,6 @@ -import "typings-global"; -export import beautylog = require("beautylog"); -export import lodash = require("lodash"); -export import path = require("path"); -export import smartfile = require("smartfile"); -export import q = require("q"); +import 'typings-global'; +export import beautylog = require('beautylog'); +export import lodash = require('lodash'); +export import path = require('path'); +export import smartfile = require('smartfile'); +export import q = require('q'); diff --git a/dist/npmextra.plugins.js b/dist/npmextra.plugins.js index ec62074..175fa5c 100644 --- a/dist/npmextra.plugins.js +++ b/dist/npmextra.plugins.js @@ -1,8 +1,8 @@ "use strict"; -require("typings-global"); -exports.beautylog = require("beautylog"); -exports.lodash = require("lodash"); -exports.path = require("path"); -exports.smartfile = require("smartfile"); -exports.q = require("q"); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWV4dHJhLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsY0FBTSxXQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQzNCLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyJ9 \ No newline at end of file +require('typings-global'); +exports.beautylog = require('beautylog'); +exports.lodash = require('lodash'); +exports.path = require('path'); +exports.smartfile = require('smartfile'); +exports.q = require('q'); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWV4dHJhLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQ1AsQ0FBQyxDQURzQjtBQUNULGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUE7QUFDaEMsY0FBTSxXQUFXLFFBQVEsQ0FBQyxDQUFBO0FBQzFCLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQTtBQUN0QixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFBO0FBQ2hDLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQSJ9 \ No newline at end of file diff --git a/ts/index.ts b/ts/index.ts index dcfa069..16232c9 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,55 +1,68 @@ -import * as plugins from "./npmextra.plugins" -import * as paths from "./npmextra.paths"; +import * as plugins from './npmextra.plugins' +import * as paths from './npmextra.paths' export interface IDataFor { - toolName:string; - defaultSettings?; - cwd?:string + toolName: string + defaultSettings? + cwd?: string } -export let dataFor = (optionsArg:IDataFor) => { - +/** + * gets you the configuration data for + * @executes SYNC + */ +export let dataFor = (optionsArg: IDataFor): IOptions => { + // handle default settings - if( - typeof optionsArg.toolName != undefined - && typeof optionsArg.defaultSettings != undefined - ){ - let newDefaultOptions = {}; - newDefaultOptions[optionsArg.toolName] = optionsArg.defaultSettings; - optionsArg.defaultSettings = newDefaultOptions; + if ( + typeof optionsArg.toolName !== undefined + && typeof optionsArg.defaultSettings !== undefined + ) { + let newDefaultOptions = {} + newDefaultOptions[optionsArg.toolName] = optionsArg.defaultSettings + optionsArg.defaultSettings = newDefaultOptions }; // set lookup path - let lookupPath:string; - if(optionsArg.cwd){ - lookupPath = plugins.path.join(optionsArg.cwd,"npmextra.json"); + let lookupPath: string + if (optionsArg.cwd) { + lookupPath = plugins.path.join(optionsArg.cwd,'npmextra.json') } else { - lookupPath = paths.configFile; - }; - - // get allData - let allData; - if(plugins.smartfile.fs.fileExistsSync(lookupPath)){ - allData = plugins.smartfile.fs.toObjectSync(lookupPath); - } else { - plugins.beautylog.warn(`${lookupPath} is missing!`); - allData = {}; + lookupPath = paths.configFile }; - //assign all data - allData = plugins.lodash.merge({},optionsArg.defaultSettings,allData); - if(optionsArg.toolName){ - if(allData[optionsArg.toolName]){ - return allData[optionsArg.toolName]; + // get allData + let allData + if (plugins.smartfile.fs.fileExistsSync(lookupPath)) { + allData = plugins.smartfile.fs.toObjectSync(lookupPath) + } else { + plugins.beautylog.warn(`${lookupPath} is missing!`) + allData = {} + }; + + // assign all data + allData = plugins.lodash.merge({},optionsArg.defaultSettings,allData) + if (optionsArg.toolName) { + if (allData[optionsArg.toolName]) { + return allData[optionsArg.toolName] } else { - plugins.beautylog.error(`There is no data for ${optionsArg.toolName}`); - return undefined; + plugins.beautylog.error(`There is no data for ${optionsArg.toolName}`) + return undefined } } else { - return allData; + return allData } -}; +} -export let configFilePresent = ():boolean => { - return plugins.smartfile.fs.fileExistsSync(paths.configFile); -} \ No newline at end of file +/** + * tells you if a configfile is present + */ +export let configFilePresent = (optionsArg: {cwd?: string}): boolean => { + let lookupPath: string + if (optionsArg.cwd) { + lookupPath = plugins.path.join(optionsArg.cwd,'npmextra.json') + } else { + lookupPath = paths.configFile + }; + return plugins.smartfile.fs.fileExistsSync(lookupPath) +} diff --git a/ts/npmextra.classes.keyValueStore.ts b/ts/npmextra.classes.keyValueStore.ts index 211e1fa..5461132 100644 --- a/ts/npmextra.classes.keyValueStore.ts +++ b/ts/npmextra.classes.keyValueStore.ts @@ -1,20 +1,20 @@ -import * as plugins from "./npmextra.plugins"; +import * as plugins from './npmextra.plugins' -type keyValueStoreTypes = "path" | "gitProject" +export type keyValueStoreTypes = 'path' | 'gitProject' /** * reads a keyValueFile from disk */ let kvRead = () => { -}; +} /** * writes a key value file to disk */ let kvWrite = () => { -}; +} /** * wipes a key value store from disk @@ -24,11 +24,9 @@ let kevWipe = () => { } export class KeyValueStore { - constructor(optionsArg:{ + constructor(optionsArg: { type: keyValueStoreTypes - }){ + }) { - }; - - -} \ No newline at end of file + } +} diff --git a/ts/npmextra.paths.ts b/ts/npmextra.paths.ts index 851e1e1..860ab1f 100644 --- a/ts/npmextra.paths.ts +++ b/ts/npmextra.paths.ts @@ -1,8 +1,8 @@ -import * as plugins from "./npmextra.plugins"; +import * as plugins from './npmextra.plugins' // directories -export let cwd = process.cwd(); -export let packageDir = plugins.path.join(__dirname,"../"); +export let cwd = process.cwd() +export let packageDir = plugins.path.join(__dirname,'../') -// -export let configFile = plugins.path.join(cwd,"npmextra.json"); +// files +export let configFile = plugins.path.join(cwd,'npmextra.json') diff --git a/ts/npmextra.plugins.ts b/ts/npmextra.plugins.ts index d143ea8..5209778 100644 --- a/ts/npmextra.plugins.ts +++ b/ts/npmextra.plugins.ts @@ -1,6 +1,6 @@ -import "typings-global"; -export import beautylog = require("beautylog"); -export import lodash = require("lodash"); -export import path = require("path"); -export import smartfile = require("smartfile"); -export import q = require("q"); +import 'typings-global' +export import beautylog = require('beautylog') +export import lodash = require('lodash') +export import path = require('path') +export import smartfile = require('smartfile') +export import q = require('q') diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..508bcac --- /dev/null +++ b/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "tslint-config-standard" +} \ No newline at end of file