From 351c2aeadc5311149b5d0db649f18fc96e25a043 Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Sun, 17 Jul 2016 01:23:22 +0200 Subject: [PATCH] first working version --- .gitignore | 2 +- dist/index.d.ts | 1 + dist/index.js | 31 +++++++++++++++++++++++++++++++ dist/npmextra.paths.d.ts | 3 +++ dist/npmextra.paths.js | 8 ++++++++ dist/npmextra.plugins.d.ts | 5 +++++ dist/npmextra.plugins.js | 7 +++++++ package.json | 13 ++++++++++++- test/npmextra.json | 5 +++++ test/test.d.ts | 2 ++ test/test.js | 12 ++++++++++++ test/test.ts | 12 ++++++++++++ ts/index.ts | 27 +++++++++++++++++++++++++++ ts/npmextra.paths.ts | 8 ++++++++ ts/npmextra.plugins.ts | 5 +++++ 15 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/npmextra.paths.d.ts create mode 100644 dist/npmextra.paths.js create mode 100644 dist/npmextra.plugins.d.ts create mode 100644 dist/npmextra.plugins.js create mode 100644 test/npmextra.json create mode 100644 test/test.d.ts create mode 100644 test/test.js create mode 100644 test/test.ts create mode 100644 ts/index.ts create mode 100644 ts/npmextra.paths.ts create mode 100644 ts/npmextra.plugins.ts diff --git a/.gitignore b/.gitignore index 89dff23..2f0dc55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ node_modules/ coverage/ -docs/ \ No newline at end of file +docs/ diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..1bf9b15 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1 @@ +export declare let dataFor: (toolNameArg: string, cwdArg?: string) => any; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..ccbb984 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,31 @@ +"use strict"; +const plugins = require("./npmextra.plugins"); +const paths = require("./npmextra.paths"); +let allData; +exports.dataFor = (toolNameArg, cwdArg) => { + if (typeof allData == "undefined") { + let lookupPath; + if (cwdArg) { + lookupPath = plugins.path.join(cwdArg, "npmextra.json"); + } + else { + lookupPath = paths.configFile; + } + ; + allData = plugins.smartfile.fs.toObjectSync(plugins.path.join(lookupPath)); + } + ; + if (toolNameArg) { + if (allData[toolNameArg]) { + return allData[toolNameArg]; + } + else { + plugins.beautylog.error(`There is no data for ${toolNameArg}`); + return undefined; + } + } + else { + return allData; + } +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sb0JBQ3pCLENBQUMsQ0FENEM7QUFDN0MsTUFBWSxLQUFLLFdBQU0sa0JBQWtCLENBQUMsQ0FBQTtBQUMxQyxJQUFJLE9BQU8sQ0FBQztBQUVELGVBQU8sR0FBRyxDQUFDLFdBQWtCLEVBQUMsTUFBYztJQUNuRCxFQUFFLENBQUEsQ0FBQyxPQUFPLE9BQU8sSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQzlCLElBQUksVUFBVSxDQUFDO1FBQ2YsRUFBRSxDQUFBLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztZQUNQLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDaEMsQ0FBQztJQUNOLENBQUM7SUFBQSxDQUFDO0lBQ0YsRUFBRSxDQUFBLENBQUMsV0FBVyxDQUFDLENBQUEsQ0FBQztRQUNaLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUMvRCxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ25CLENBQUM7QUFDTCxDQUFDLENBQUEifQ== \ No newline at end of file diff --git a/dist/npmextra.paths.d.ts b/dist/npmextra.paths.d.ts new file mode 100644 index 0000000..e1de09b --- /dev/null +++ b/dist/npmextra.paths.d.ts @@ -0,0 +1,3 @@ +export declare let cwd: string; +export declare let packageDir: string; +export declare let configFile: string; diff --git a/dist/npmextra.paths.js b/dist/npmextra.paths.js new file mode 100644 index 0000000..cd5da11 --- /dev/null +++ b/dist/npmextra.paths.js @@ -0,0 +1,8 @@ +"use strict"; +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 diff --git a/dist/npmextra.plugins.d.ts b/dist/npmextra.plugins.d.ts new file mode 100644 index 0000000..7d533da --- /dev/null +++ b/dist/npmextra.plugins.d.ts @@ -0,0 +1,5 @@ +import "typings-global"; +export import beautylog = require("beautylog"); +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 new file mode 100644 index 0000000..97e0a58 --- /dev/null +++ b/dist/npmextra.plugins.js @@ -0,0 +1,7 @@ +"use strict"; +require("typings-global"); +exports.beautylog = require("beautylog"); +exports.path = require("path"); +exports.smartfile = require("smartfile"); +exports.q = require("q"); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWV4dHJhLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUNWLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsWUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsU0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDIn0= \ No newline at end of file diff --git a/package.json b/package.json index b565168..13c935f 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,16 @@ "bugs": { "url": "https://gitlab.com/pushrocks/npmextra/issues" }, - "homepage": "https://gitlab.com/pushrocks/npmextra#README" + "homepage": "https://gitlab.com/pushrocks/npmextra#README", + "dependencies": { + "@types/q": "0.0.27", + "beautylog": "^5.0.14", + "q": "^1.4.1", + "smartfile": "^4.0.10", + "typings-global": "^1.0.6" + }, + "devDependencies": { + "should": "^9.0.2", + "typings-test": "^1.0.1" + } } diff --git a/test/npmextra.json b/test/npmextra.json new file mode 100644 index 0000000..031ef8e --- /dev/null +++ b/test/npmextra.json @@ -0,0 +1,5 @@ +{ + "testTool":{ + "testValue":2 + } +} \ No newline at end of file diff --git a/test/test.d.ts b/test/test.d.ts new file mode 100644 index 0000000..b973566 --- /dev/null +++ b/test/test.d.ts @@ -0,0 +1,2 @@ +import "typings-test"; +import "should"; diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..537739d --- /dev/null +++ b/test/test.js @@ -0,0 +1,12 @@ +"use strict"; +require("typings-test"); +const path = require("path"); +require("should"); +const npmExtra = require("../dist/index"); +describe("npmextra", function () { + it("should read a config file", function () { + let testData = npmExtra.dataFor("testTool", path.join(process.cwd(), "test/")); + console.log(testData); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUVoQixNQUFPLFFBQVEsV0FBVyxlQUFlLENBQUMsQ0FBQztBQUUzQyxRQUFRLENBQUMsVUFBVSxFQUFDO0lBQ2hCLEVBQUUsQ0FBQywyQkFBMkIsRUFBQztRQUMzQixJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9 \ No newline at end of file diff --git a/test/test.ts b/test/test.ts new file mode 100644 index 0000000..8d397b3 --- /dev/null +++ b/test/test.ts @@ -0,0 +1,12 @@ +import "typings-test"; +import path = require("path"); +import "should"; + +import npmExtra = require("../dist/index"); + +describe("npmextra",function(){ + it("should read a config file",function(){ + let testData = npmExtra.dataFor("testTool",path.join(process.cwd(),"test/")); + console.log(testData); + }); +}); \ No newline at end of file diff --git a/ts/index.ts b/ts/index.ts new file mode 100644 index 0000000..7e51eea --- /dev/null +++ b/ts/index.ts @@ -0,0 +1,27 @@ +import * as plugins from "./npmextra.plugins" +import * as paths from "./npmextra.paths"; +let allData; + +export let dataFor = (toolNameArg:string,cwdArg?:string) => { + if(typeof allData == "undefined"){ + let lookupPath; + if(cwdArg){ + lookupPath = plugins.path.join(cwdArg,"npmextra.json"); + } else { + lookupPath = paths.configFile; + }; + allData = plugins.smartfile.fs.toObjectSync( + plugins.path.join(lookupPath) + ); + }; + if(toolNameArg){ + if(allData[toolNameArg]){ + return allData[toolNameArg]; + } else { + plugins.beautylog.error(`There is no data for ${toolNameArg}`); + return undefined; + } + } else { + return allData; + } +} \ No newline at end of file diff --git a/ts/npmextra.paths.ts b/ts/npmextra.paths.ts new file mode 100644 index 0000000..851e1e1 --- /dev/null +++ b/ts/npmextra.paths.ts @@ -0,0 +1,8 @@ +import * as plugins from "./npmextra.plugins"; + +// directories +export let cwd = process.cwd(); +export let packageDir = plugins.path.join(__dirname,"../"); + +// +export let configFile = plugins.path.join(cwd,"npmextra.json"); diff --git a/ts/npmextra.plugins.ts b/ts/npmextra.plugins.ts new file mode 100644 index 0000000..7d533da --- /dev/null +++ b/ts/npmextra.plugins.ts @@ -0,0 +1,5 @@ +import "typings-global"; +export import beautylog = require("beautylog"); +export import path = require("path"); +export import smartfile = require("smartfile"); +export import q = require("q");