add copy
This commit is contained in:
parent
0ad455a483
commit
641218e841
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,9 +1,12 @@
|
||||
node_modules/
|
||||
.settings/
|
||||
.idea/
|
||||
coverage/
|
||||
docs/
|
||||
|
||||
ts/*.js
|
||||
ts/*.js.map
|
||||
ts/typings/
|
||||
coverage/
|
||||
docs/
|
||||
|
||||
test/assets/
|
||||
|
||||
|
4
.npmignore
Normal file
4
.npmignore
Normal file
@ -0,0 +1,4 @@
|
||||
coverage/
|
||||
docs/
|
||||
test/
|
||||
ts/
|
@ -1,6 +1,11 @@
|
||||
# smartfile
|
||||
make files easily accessible for processing in javascript.
|
||||
|
||||
## Status
|
||||
[![Build Status](https://travis-ci.org/pushrocks/smartfile.svg?branch=master)](https://travis-ci.org/pushrocks/smartfile)
|
||||
[![bitHound Dependencies](https://www.bithound.io/github/pushrocks/smartfile/badges/dependencies.svg)](https://www.bithound.io/github/pushrocks/smartfile/master/dependencies/npm)
|
||||
[![bitHound Code](https://www.bithound.io/github/pushrocks/smartfile/badges/code.svg)](https://www.bithound.io/github/pushrocks/smartfile)
|
||||
|
||||
## Supported file types:
|
||||
* .yml .yaml
|
||||
* .json
|
||||
|
15
dist/index.js
vendored
Normal file
15
dist/index.js
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
"use strict";
|
||||
var SmartfileChecks = require("./smartfile.checks");
|
||||
var SmartfileSimple = require("./smartfile.simple");
|
||||
var smartfile = {
|
||||
copy: SmartfileSimple.copy,
|
||||
checks: SmartfileChecks,
|
||||
readFileToString: SmartfileSimple.readFileToString,
|
||||
readFileToObject: SmartfileSimple.readFileToObject,
|
||||
readFileToVinyl: SmartfileSimple.readFileToVinyl,
|
||||
requireReload: SmartfileSimple.requireReload
|
||||
};
|
||||
module.exports = smartfile;
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0Qzs7QUFHNUMsSUFBTyxlQUFlLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUN2RCxJQUFPLGVBQWUsV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBR3ZELElBQUksU0FBUyxHQUFPO0lBQ2hCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtJQUMxQixNQUFNLEVBQUUsZUFBZTtJQUN2QixnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCO0lBQ2xELGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxnQkFBZ0I7SUFDbEQsZUFBZSxFQUFFLGVBQWUsQ0FBQyxlQUFlO0lBQ2hELGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtDQUMvQyxDQUFDO0FBRUYsaUJBQVMsU0FBUyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5wbHVnaW5zXCIpO1xuaW1wb3J0IFNtYXJ0ZmlsZUNoZWNrcyA9IHJlcXVpcmUoXCIuL3NtYXJ0ZmlsZS5jaGVja3NcIik7XG5pbXBvcnQgU21hcnRmaWxlU2ltcGxlID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnNpbXBsZVwiKTtcblxuXG52YXIgc21hcnRmaWxlOmFueSA9IHtcbiAgICBjb3B5OiBTbWFydGZpbGVTaW1wbGUuY29weSxcbiAgICBjaGVja3M6IFNtYXJ0ZmlsZUNoZWNrcyxcbiAgICByZWFkRmlsZVRvU3RyaW5nOiBTbWFydGZpbGVTaW1wbGUucmVhZEZpbGVUb1N0cmluZyxcbiAgICByZWFkRmlsZVRvT2JqZWN0OiBTbWFydGZpbGVTaW1wbGUucmVhZEZpbGVUb09iamVjdCxcbiAgICByZWFkRmlsZVRvVmlueWw6IFNtYXJ0ZmlsZVNpbXBsZS5yZWFkRmlsZVRvVmlueWwsXG4gICAgcmVxdWlyZVJlbG9hZDogU21hcnRmaWxlU2ltcGxlLnJlcXVpcmVSZWxvYWRcbn07XG5cbmV4cG9ydCA9IHNtYXJ0ZmlsZTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|
33
dist/smartfile.checks.js
vendored
Normal file
33
dist/smartfile.checks.js
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
var plugins = require("./smartfile.plugins");
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.fileExistsSync = function (filePath) {
|
||||
var fileExistsBool = false;
|
||||
try {
|
||||
plugins.fs.readFileSync(filePath);
|
||||
fileExistsBool = true;
|
||||
}
|
||||
catch (err) {
|
||||
fileExistsBool = false;
|
||||
}
|
||||
return fileExistsBool;
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @returns {any}
|
||||
*/
|
||||
exports.fileExists = function (filePath) {
|
||||
var done = plugins.q.defer();
|
||||
plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
|
||||
err ? done.reject() : done.resolve();
|
||||
});
|
||||
return done.promise;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5jaGVja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxJQUFPLE9BQU8sV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBRWhEOzs7O0dBSUc7QUFDUSxzQkFBYyxHQUFHLFVBQVMsUUFBUTtJQUN6QyxJQUFJLGNBQWMsR0FBVyxLQUFLLENBQUM7SUFDbkMsSUFBSSxDQUFDO1FBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsY0FBYyxHQUFHLElBQUksQ0FBQTtJQUN6QixDQUNBO0lBQUEsS0FBSyxDQUFBLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQztRQUNQLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLGtCQUFVLEdBQUcsVUFBUyxRQUFRO0lBQ3JDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRztRQUN0RCxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGZpbGUuY2hlY2tzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9zbWFydGZpbGUucGx1Z2luc1wiKTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGxldCBmaWxlRXhpc3RzU3luYyA9IGZ1bmN0aW9uKGZpbGVQYXRoKTpib29sZWFuIHtcbiAgICBsZXQgZmlsZUV4aXN0c0Jvb2w6Ym9vbGVhbiA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIHBsdWdpbnMuZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoKTtcbiAgICAgICAgZmlsZUV4aXN0c0Jvb2wgPSB0cnVlXG4gICAgfVxuICAgIGNhdGNoKGVycil7XG4gICAgICAgIGZpbGVFeGlzdHNCb29sID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWxlRXhpc3RzQm9vbDtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aFxuICogQHJldHVybnMge2FueX1cbiAqL1xuZXhwb3J0IGxldCBmaWxlRXhpc3RzID0gZnVuY3Rpb24oZmlsZVBhdGgpe1xuICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgcGx1Z2lucy5mcy5hY2Nlc3MoZmlsZVBhdGgsIHBsdWdpbnMuZnMuUl9PSywgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBlcnIgPyBkb25lLnJlamVjdCgpIDogZG9uZS5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn07XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
|
13
dist/smartfile.plugins.js
vendored
Normal file
13
dist/smartfile.plugins.js
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
exports.beautylog = require("beautylog");
|
||||
exports.fs = require("fs-extra");
|
||||
exports.path = require("path");
|
||||
exports.q = require("q");
|
||||
exports.vinyl = require("vinyl");
|
||||
exports.vinylFile = require("vinyl-file");
|
||||
exports.yaml = require("js-yaml");
|
||||
exports.requireReload = require("require-reload");
|
||||
exports.shelljs = require("shelljs");
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDakMsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsVUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QixZQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsYUFBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QixpQkFBUyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxZQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLHFCQUFhLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDMUMsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGZpbGUucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmV4cG9ydCBsZXQgYmVhdXR5bG9nID0gcmVxdWlyZShcImJlYXV0eWxvZ1wiKTtcbmV4cG9ydCBsZXQgZnMgPSByZXF1aXJlKFwiZnMtZXh0cmFcIik7XG5leHBvcnQgbGV0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmV4cG9ydCBsZXQgcSA9IHJlcXVpcmUoXCJxXCIpO1xuZXhwb3J0IGxldCB2aW55bCA9IHJlcXVpcmUoXCJ2aW55bFwiKTtcbmV4cG9ydCBsZXQgdmlueWxGaWxlID0gcmVxdWlyZShcInZpbnlsLWZpbGVcIik7XG5leHBvcnQgbGV0IHlhbWwgPSByZXF1aXJlKFwianMteWFtbFwiKTtcbmV4cG9ydCBsZXQgcmVxdWlyZVJlbG9hZCA9IHJlcXVpcmUoXCJyZXF1aXJlLXJlbG9hZFwiKTtcbmV4cG9ydCBsZXQgc2hlbGxqcyA9IHJlcXVpcmUoXCJzaGVsbGpzXCIpO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
|
69
dist/smartfile.simple.js
vendored
Normal file
69
dist/smartfile.simple.js
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
"use strict";
|
||||
var plugins = require("./smartfile.plugins");
|
||||
exports.copy = function (fromArg, toArg) {
|
||||
plugins.shelljs.cp("-r", fromArg, toArg);
|
||||
};
|
||||
/**
|
||||
* reads a file content to a String
|
||||
* @param filePath
|
||||
* @returns {string|Buffer|any}
|
||||
*/
|
||||
exports.readFileToString = function (filePath) {
|
||||
var fileString;
|
||||
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
||||
return fileString;
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @param fileTypeArg
|
||||
* @returns {any}
|
||||
*/
|
||||
exports.readFileToObject = function (filePath, fileTypeArg) {
|
||||
if (fileTypeArg === void 0) { fileTypeArg = undefined; }
|
||||
var fileType;
|
||||
if (typeof fileTypeArg == "undefined") {
|
||||
fileType = plugins.path.extname(filePath);
|
||||
}
|
||||
else {
|
||||
fileType = fileTypeArg;
|
||||
}
|
||||
fileType = fileType.replace(/\.([a-z]*)/, "$1"); //remove . form fileType
|
||||
switch (fileType) {
|
||||
case "yml":
|
||||
case "yaml":
|
||||
try {
|
||||
return plugins.yaml.safeLoad(plugins.fs.readFileSync(filePath, 'utf8'));
|
||||
}
|
||||
catch (e) {
|
||||
plugins.beautylog.error("check that " + filePath.blue + " points to a valid file");
|
||||
}
|
||||
break;
|
||||
case "json":
|
||||
return plugins.fs.readJsonSync(filePath, {});
|
||||
default:
|
||||
plugins.beautylog.error("file type " + fileType.blue + " not supported");
|
||||
break;
|
||||
}
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @param filePathArg
|
||||
* @param options
|
||||
* @returns {number}
|
||||
*/
|
||||
exports.readFileToVinyl = function (filePathArg, options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
return plugins.vinylFile.readSync(filePathArg, options);
|
||||
};
|
||||
/**
|
||||
* lets you reload files hot.
|
||||
* @param path
|
||||
* @returns {any}
|
||||
*/
|
||||
exports.requireReload = function (path) {
|
||||
return plugins.requireReload(path);
|
||||
};
|
||||
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0ZmlsZS5zaW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNENBQTRDOztBQUU1QyxJQUFPLE9BQU8sV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXJDLFlBQUksR0FBRyxVQUFTLE9BQWMsRUFBQyxLQUFZO0lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNRLHdCQUFnQixHQUFHLFVBQVMsUUFBUTtJQUMzQyxJQUFJLFVBQVUsQ0FBQztJQUNmLFVBQVUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNRLHdCQUFnQixHQUFHLFVBQVMsUUFBUSxFQUFDLFdBQXVCO0lBQXZCLDJCQUF1QixHQUF2Qix1QkFBdUI7SUFDbkUsSUFBSSxRQUFRLENBQUM7SUFDYixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDeEUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssS0FBSyxDQUFFO1FBQ1osS0FBSyxNQUFNO1lBQ1AsSUFBSSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RSxDQUFFO1lBQUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztnQkFDUixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFDRCxLQUFLLENBQUM7UUFDVixLQUFLLE1BQU07WUFDUCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hEO1lBQ0ksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDUSx1QkFBZSxHQUFHLFVBQVMsV0FBVyxFQUFDLE9BQVk7SUFBWix1QkFBWSxHQUFaLFlBQVk7SUFDMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ1EscUJBQWEsR0FBRyxVQUFTLElBQVc7SUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0ZmlsZS5zaW1wbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRmaWxlLnBsdWdpbnNcIik7XG5cbmV4cG9ydCBsZXQgY29weSA9IGZ1bmN0aW9uKGZyb21Bcmc6c3RyaW5nLHRvQXJnOnN0cmluZyl7XG4gICAgcGx1Z2lucy5zaGVsbGpzLmNwKFwiLXJcIixmcm9tQXJnLHRvQXJnKTtcbn07XG5cbi8qKlxuICogcmVhZHMgYSBmaWxlIGNvbnRlbnQgdG8gYSBTdHJpbmdcbiAqIEBwYXJhbSBmaWxlUGF0aFxuICogQHJldHVybnMge3N0cmluZ3xCdWZmZXJ8YW55fVxuICovXG5leHBvcnQgbGV0IHJlYWRGaWxlVG9TdHJpbmcgPSBmdW5jdGlvbihmaWxlUGF0aCkge1xuICAgIGxldCBmaWxlU3RyaW5nO1xuICAgIGZpbGVTdHJpbmcgPSBwbHVnaW5zLmZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGY4XCIpO1xuICAgIHJldHVybiBmaWxlU3RyaW5nO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoXG4gKiBAcGFyYW0gZmlsZVR5cGVBcmdcbiAqIEByZXR1cm5zIHthbnl9XG4gKi9cbmV4cG9ydCBsZXQgcmVhZEZpbGVUb09iamVjdCA9IGZ1bmN0aW9uKGZpbGVQYXRoLGZpbGVUeXBlQXJnID0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IGZpbGVUeXBlO1xuICAgIGlmICh0eXBlb2YgZmlsZVR5cGVBcmcgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBmaWxlVHlwZSA9IHBsdWdpbnMucGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmaWxlVHlwZSA9IGZpbGVUeXBlQXJnO1xuICAgIH1cbiAgICBmaWxlVHlwZSA9IGZpbGVUeXBlLnJlcGxhY2UoL1xcLihbYS16XSopLyxcIiQxXCIpOyAvL3JlbW92ZSAuIGZvcm0gZmlsZVR5cGVcbiAgICBzd2l0Y2ggKGZpbGVUeXBlKSB7XG4gICAgICAgIGNhc2UgXCJ5bWxcIiA6XG4gICAgICAgIGNhc2UgXCJ5YW1sXCI6XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW5zLnlhbWwuc2FmZUxvYWQocGx1Z2lucy5mcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4JykpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuZXJyb3IoXCJjaGVjayB0aGF0IFwiICsgZmlsZVBhdGguYmx1ZSArIFwiIHBvaW50cyB0byBhIHZhbGlkIGZpbGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImpzb25cIjpcbiAgICAgICAgICAgIHJldHVybiBwbHVnaW5zLmZzLnJlYWRKc29uU3luYyhmaWxlUGF0aCx7fSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5lcnJvcihcImZpbGUgdHlwZSBcIiArIGZpbGVUeXBlLmJsdWUgKyBcIiBub3Qgc3VwcG9ydGVkXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoQXJnXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZXhwb3J0IGxldCByZWFkRmlsZVRvVmlueWwgPSBmdW5jdGlvbihmaWxlUGF0aEFyZyxvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gcGx1Z2lucy52aW55bEZpbGUucmVhZFN5bmMoZmlsZVBhdGhBcmcsb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIGxldHMgeW91IHJlbG9hZCBmaWxlcyBob3QuXG4gKiBAcGFyYW0gcGF0aFxuICogQHJldHVybnMge2FueX1cbiAqL1xuZXhwb3J0IGxldCByZXF1aXJlUmVsb2FkID0gZnVuY3Rpb24ocGF0aDpzdHJpbmcpe1xuICAgIHJldHVybiBwbHVnaW5zLnJlcXVpcmVSZWxvYWQocGF0aCk7XG59OyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
|
36
index.d.ts
vendored
36
index.d.ts
vendored
@ -1,36 +0,0 @@
|
||||
/// <reference path="ts/typings/main.d.ts" />
|
||||
declare module SmartfilePlugins {
|
||||
var init: () => {
|
||||
beautylog: any;
|
||||
fs: any;
|
||||
path: any;
|
||||
q: any;
|
||||
vinyl: any;
|
||||
vinylFile: any;
|
||||
yaml: any;
|
||||
requireReload: any;
|
||||
};
|
||||
}
|
||||
declare module SmartfileCheck {
|
||||
var init: (objectArg: any) => void;
|
||||
}
|
||||
declare module SmartfileSimple {
|
||||
var init: (objectArg: any) => void;
|
||||
}
|
||||
declare module SmartfileVinyl {
|
||||
var init: (objectArg: any) => void;
|
||||
}
|
||||
declare module SmartfileRequire {
|
||||
var init: (objectArg: any) => void;
|
||||
}
|
||||
declare var plugins: {
|
||||
beautylog: any;
|
||||
fs: any;
|
||||
path: any;
|
||||
q: any;
|
||||
vinyl: any;
|
||||
vinylFile: any;
|
||||
yaml: any;
|
||||
requireReload: any;
|
||||
};
|
||||
declare var smartfile: any;
|
123
index.js
123
index.js
@ -1,123 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/// <reference path="./index.ts" />
|
||||
var SmartfilePlugins;
|
||||
(function (SmartfilePlugins) {
|
||||
SmartfilePlugins.init = function () {
|
||||
var plugins = {
|
||||
beautylog: require("beautylog"),
|
||||
fs: require("fs-extra"),
|
||||
path: require("path"),
|
||||
q: require("q"),
|
||||
vinyl: require("vinyl"),
|
||||
vinylFile: require("vinyl-file"),
|
||||
yaml: require("js-yaml"),
|
||||
requireReload: require("require-reload")
|
||||
};
|
||||
return plugins;
|
||||
};
|
||||
})(SmartfilePlugins || (SmartfilePlugins = {}));
|
||||
/// <reference path="./index.ts" />
|
||||
var SmartfileCheck;
|
||||
(function (SmartfileCheck) {
|
||||
var checks = {
|
||||
fileExistsSync: function (filePath) {
|
||||
var fileExistsBool = false;
|
||||
try {
|
||||
plugins.fs.readFileSync(filePath);
|
||||
fileExistsBool = true;
|
||||
}
|
||||
catch (err) {
|
||||
fileExistsBool = false;
|
||||
}
|
||||
return fileExistsBool;
|
||||
},
|
||||
fileExists: function (filePath) {
|
||||
var done = plugins.q.defer();
|
||||
plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
|
||||
err ? done.reject() : done.resolve();
|
||||
});
|
||||
return done.promise;
|
||||
}
|
||||
};
|
||||
SmartfileCheck.init = function (objectArg) {
|
||||
objectArg.checks = checks;
|
||||
};
|
||||
})(SmartfileCheck || (SmartfileCheck = {}));
|
||||
/// <reference path="./index.ts" />
|
||||
var SmartfileSimple;
|
||||
(function (SmartfileSimple) {
|
||||
/**
|
||||
* reads a file content to a String
|
||||
* @param filePath
|
||||
* @returns {string|Buffer|any}
|
||||
*/
|
||||
var readFileToString = function (filePath) {
|
||||
var fileString;
|
||||
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
||||
return fileString;
|
||||
};
|
||||
var readFileToObject = function (filePath, fileTypeArg) {
|
||||
if (fileTypeArg === void 0) { fileTypeArg = "undefined"; }
|
||||
var fileType;
|
||||
if (fileTypeArg == "undefined") {
|
||||
fileType = plugins.path.extname(filePath);
|
||||
}
|
||||
else {
|
||||
fileType = fileTypeArg;
|
||||
}
|
||||
fileType = fileType.replace(/\.([a-z]*)/, "$1"); //remove . form fileType
|
||||
switch (fileType) {
|
||||
case "yml":
|
||||
case "yaml":
|
||||
try {
|
||||
return plugins.yaml.safeLoad(plugins.fs.readFileSync(filePath, 'utf8'));
|
||||
}
|
||||
catch (e) {
|
||||
plugins.beautylog.error("check that " + filePath.blue + " points to a valid file");
|
||||
}
|
||||
break;
|
||||
case "json":
|
||||
return plugins.fs.readJsonSync(filePath, {});
|
||||
break;
|
||||
}
|
||||
};
|
||||
SmartfileSimple.init = function (objectArg) {
|
||||
objectArg.readFileToString = readFileToString;
|
||||
objectArg.readFileToObject = readFileToObject;
|
||||
};
|
||||
})(SmartfileSimple || (SmartfileSimple = {}));
|
||||
/// <reference path="./index.ts" />
|
||||
var SmartfileVinyl;
|
||||
(function (SmartfileVinyl) {
|
||||
var readFileToVinyl = function (filePathArg, options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
return plugins.vinylFile.readSync(filePathArg, options);
|
||||
};
|
||||
SmartfileVinyl.init = function (objectArg) {
|
||||
objectArg.readFileToVinyl = readFileToVinyl;
|
||||
};
|
||||
})(SmartfileVinyl || (SmartfileVinyl = {}));
|
||||
/// <reference path="./index.ts" />
|
||||
var SmartfileRequire;
|
||||
(function (SmartfileRequire) {
|
||||
var requireReload = function (path) {
|
||||
return plugins.requireReload(path);
|
||||
};
|
||||
SmartfileRequire.init = function (objectArg) {
|
||||
objectArg.requireReload = requireReload;
|
||||
};
|
||||
})(SmartfileRequire || (SmartfileRequire = {}));
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
/// <reference path="./smartfile.plugins.ts" />
|
||||
/// <reference path="./smartfile.check.ts" />
|
||||
/// <reference path="./smartfile.simple.ts" />
|
||||
/// <reference path="./smartfile.vinyl.ts" />
|
||||
/// <reference path="./smartfile.require.ts" />
|
||||
var plugins = SmartfilePlugins.init();
|
||||
var smartfile = {};
|
||||
SmartfileCheck.init(smartfile);
|
||||
SmartfileSimple.init(smartfile);
|
||||
SmartfileVinyl.init(smartfile);
|
||||
SmartfileRequire.init(smartfile);
|
||||
module.exports = smartfile;
|
12
package.json
12
package.json
@ -2,7 +2,7 @@
|
||||
"name": "smartfile",
|
||||
"version": "0.0.12",
|
||||
"description": "offers smart ways to work with files in nodejs",
|
||||
"main": "index.js",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"test": "(npmts)",
|
||||
"reinstall": "(rm -r node_modules && npm install)",
|
||||
@ -25,17 +25,17 @@
|
||||
},
|
||||
"homepage": "https://github.com/pushrocks/smartfile",
|
||||
"dependencies": {
|
||||
"beautylog": "2.0.6",
|
||||
"beautylog": "3.1.2",
|
||||
"fs-extra": "0.26.5",
|
||||
"js-yaml": "3.5.2",
|
||||
"q": "^1.4.1",
|
||||
"js-yaml": "3.5.4",
|
||||
"q": "1.4.1",
|
||||
"require-reload": "0.2.2",
|
||||
"shelljs": "^0.6.0",
|
||||
"vinyl": "1.1.1",
|
||||
"vinyl-file": "2.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"beautylog": "2.0.7",
|
||||
"npmts": "2.2.2",
|
||||
"npmts": "3.4.1",
|
||||
"should": "^8.2.2"
|
||||
}
|
||||
}
|
||||
|
5
test/test.d.ts
vendored
5
test/test.d.ts
vendored
@ -1,5 +0,0 @@
|
||||
/// <reference path="ts/typings/main.d.ts" />
|
||||
declare var smartfile: any;
|
||||
declare var beautylog: any;
|
||||
declare var should: any;
|
||||
declare var vinyl: any;
|
21
test/test.js
21
test/test.js
@ -1,7 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/// <reference path="typings/main.d.ts" />
|
||||
var smartfile = require("../index.js");
|
||||
/// <reference path="../ts/typings/main.d.ts" />
|
||||
var smartfile = require("../dist/index.js");
|
||||
var beautylog = require("beautylog");
|
||||
var should = require("should");
|
||||
var vinyl = require("vinyl");
|
||||
@ -17,6 +15,9 @@ describe("smartfile", function () {
|
||||
testData.should.have.property("key1", "this works");
|
||||
testData.should.have.property("key2", "this works too");
|
||||
});
|
||||
it("should state unknown file type for unknown file types", function () {
|
||||
var testData = smartfile.readFileToObject("./test/mytest.txt");
|
||||
});
|
||||
it("should read an " + ".json".blue + " file to an object", function () {
|
||||
var testData = smartfile.readFileToObject("./test/mytest.json");
|
||||
testData.should.have.property("key1", "this works");
|
||||
@ -44,4 +45,16 @@ describe("smartfile", function () {
|
||||
});
|
||||
});
|
||||
});
|
||||
describe("copy", function () {
|
||||
it("should copy a directory", function () {
|
||||
smartfile.copy("./test/testfolder/", "./test/assets/");
|
||||
});
|
||||
it("should copy a file", function () {
|
||||
smartfile.copy("./test/mytest.yaml", "./test/assets/");
|
||||
});
|
||||
it("should copy a file and rename it", function () {
|
||||
smartfile.copy("./test/mytest.yaml", "./test/assets/mytestRenamed.yaml");
|
||||
});
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=test.js.map
|
1
test/test.js.map
Normal file
1
test/test.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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"}
|
@ -1,8 +1,9 @@
|
||||
/// <reference path="typings/main.d.ts" />
|
||||
var smartfile = require("../index.js");
|
||||
/// <reference path="../ts/typings/main.d.ts" />
|
||||
var smartfile = require("../dist/index.js");
|
||||
var beautylog = require("beautylog");
|
||||
var should = require("should");
|
||||
var vinyl = require("vinyl");
|
||||
|
||||
describe("smartfile",function(){
|
||||
describe(".readFileToString".yellow,function(){
|
||||
it("should read a file to a string",function(){
|
||||
@ -19,6 +20,9 @@ describe("smartfile",function(){
|
||||
testData.should.have.property("key2","this works too");
|
||||
|
||||
});
|
||||
it("should state unknown file type for unknown file types",function(){
|
||||
var testData = smartfile.readFileToObject("./test/mytest.txt");
|
||||
});
|
||||
it("should read an " + ".json".blue + " file to an object",function(){
|
||||
var testData = smartfile.readFileToObject("./test/mytest.json");
|
||||
testData.should.have.property("key1","this works");
|
||||
@ -48,4 +52,15 @@ describe("smartfile",function(){
|
||||
});
|
||||
})
|
||||
});
|
||||
describe("copy",function(){
|
||||
it("should copy a directory",function(){
|
||||
smartfile.copy("./test/testfolder/","./test/assets/")
|
||||
});
|
||||
it("should copy a file",function(){
|
||||
smartfile.copy("./test/mytest.yaml","./test/assets/")
|
||||
});
|
||||
it("should copy a file and rename it",function(){
|
||||
smartfile.copy("./test/mytest.yaml","./test/assets/mytestRenamed.yaml")
|
||||
});
|
||||
});
|
||||
});
|
0
test/testfolder/testfile1.txt
Normal file
0
test/testfolder/testfile1.txt
Normal file
0
test/testfolder/testfile2.txt
Normal file
0
test/testfolder/testfile2.txt
Normal file
28
ts/index.ts
28
ts/index.ts
@ -1,19 +1,17 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
/// <reference path="./smartfile.plugins.ts" />
|
||||
/// <reference path="./smartfile.check.ts" />
|
||||
/// <reference path="./smartfile.simple.ts" />
|
||||
/// <reference path="./smartfile.vinyl.ts" />
|
||||
/// <reference path="./smartfile.require.ts" />
|
||||
var plugins = SmartfilePlugins.init();
|
||||
|
||||
import plugins = require("./smartfile.plugins");
|
||||
import SmartfileChecks = require("./smartfile.checks");
|
||||
import SmartfileSimple = require("./smartfile.simple");
|
||||
|
||||
|
||||
var smartfile:any = {};
|
||||
SmartfileCheck.init(smartfile);
|
||||
SmartfileSimple.init(smartfile);
|
||||
SmartfileVinyl.init(smartfile);
|
||||
SmartfileRequire.init(smartfile);
|
||||
var smartfile:any = {
|
||||
copy: SmartfileSimple.copy,
|
||||
checks: SmartfileChecks,
|
||||
readFileToString: SmartfileSimple.readFileToString,
|
||||
readFileToObject: SmartfileSimple.readFileToObject,
|
||||
readFileToVinyl: SmartfileSimple.readFileToVinyl,
|
||||
requireReload: SmartfileSimple.requireReload
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = smartfile;
|
||||
export = smartfile;
|
||||
|
@ -1,26 +0,0 @@
|
||||
/// <reference path="./index.ts" />
|
||||
module SmartfileCheck {
|
||||
var checks = {
|
||||
fileExistsSync: function(filePath):boolean {
|
||||
var fileExistsBool:boolean = false;
|
||||
try {
|
||||
plugins.fs.readFileSync(filePath)
|
||||
fileExistsBool = true
|
||||
}
|
||||
catch(err){
|
||||
fileExistsBool = false;
|
||||
}
|
||||
return fileExistsBool;
|
||||
},
|
||||
fileExists: function(filePath){
|
||||
var done = plugins.q.defer();
|
||||
plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
|
||||
err ? done.reject() : done.resolve();
|
||||
});
|
||||
return done.promise;
|
||||
}
|
||||
};
|
||||
export var init = function(objectArg){
|
||||
objectArg.checks = checks;
|
||||
}
|
||||
}
|
32
ts/smartfile.checks.ts
Normal file
32
ts/smartfile.checks.ts
Normal file
@ -0,0 +1,32 @@
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
import plugins = require("./smartfile.plugins");
|
||||
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export let fileExistsSync = function(filePath):boolean {
|
||||
let fileExistsBool:boolean = false;
|
||||
try {
|
||||
plugins.fs.readFileSync(filePath);
|
||||
fileExistsBool = true
|
||||
}
|
||||
catch(err){
|
||||
fileExistsBool = false;
|
||||
}
|
||||
return fileExistsBool;
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @returns {any}
|
||||
*/
|
||||
export let fileExists = function(filePath){
|
||||
let done = plugins.q.defer();
|
||||
plugins.fs.access(filePath, plugins.fs.R_OK, function (err) {
|
||||
err ? done.reject() : done.resolve();
|
||||
});
|
||||
return done.promise;
|
||||
};
|
@ -1,16 +1,10 @@
|
||||
/// <reference path="./index.ts" />
|
||||
module SmartfilePlugins {
|
||||
export var init = function() {
|
||||
var plugins = {
|
||||
beautylog: require("beautylog"),
|
||||
fs: require("fs-extra"),
|
||||
path: require("path"),
|
||||
q: require("q"),
|
||||
vinyl: require("vinyl"),
|
||||
vinylFile: require("vinyl-file"),
|
||||
yaml: require("js-yaml"),
|
||||
requireReload: require("require-reload")
|
||||
};
|
||||
return plugins;
|
||||
}
|
||||
}
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
export let beautylog = require("beautylog");
|
||||
export let fs = require("fs-extra");
|
||||
export let path = require("path");
|
||||
export let q = require("q");
|
||||
export let vinyl = require("vinyl");
|
||||
export let vinylFile = require("vinyl-file");
|
||||
export let yaml = require("js-yaml");
|
||||
export let requireReload = require("require-reload");
|
||||
export let shelljs = require("shelljs");
|
||||
|
@ -1,10 +0,0 @@
|
||||
/// <reference path="./index.ts" />
|
||||
module SmartfileRequire {
|
||||
var requireReload = function(path:string){
|
||||
return plugins.requireReload(path);
|
||||
};
|
||||
|
||||
export var init = function(objectArg){
|
||||
objectArg.requireReload = requireReload;
|
||||
}
|
||||
}
|
@ -1,18 +1,31 @@
|
||||
/// <reference path="./index.ts" />
|
||||
module SmartfileSimple {
|
||||
/// <reference path="./typings/main.d.ts" />
|
||||
|
||||
import plugins = require("./smartfile.plugins");
|
||||
|
||||
export let copy = function(fromArg:string,toArg:string){
|
||||
plugins.shelljs.cp("-r",fromArg,toArg);
|
||||
};
|
||||
|
||||
/**
|
||||
* reads a file content to a String
|
||||
* @param filePath
|
||||
* @returns {string|Buffer|any}
|
||||
*/
|
||||
var readFileToString = function(filePath) {
|
||||
var fileString;
|
||||
export let readFileToString = function(filePath) {
|
||||
let fileString;
|
||||
fileString = plugins.fs.readFileSync(filePath, "utf8");
|
||||
return fileString;
|
||||
};
|
||||
var readFileToObject = function(filePath,fileTypeArg = "undefined") {
|
||||
var fileType;
|
||||
if (fileTypeArg == "undefined") {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @param fileTypeArg
|
||||
* @returns {any}
|
||||
*/
|
||||
export let readFileToObject = function(filePath,fileTypeArg = undefined) {
|
||||
let fileType;
|
||||
if (typeof fileTypeArg == "undefined") {
|
||||
fileType = plugins.path.extname(filePath);
|
||||
} else {
|
||||
fileType = fileTypeArg;
|
||||
@ -29,11 +42,27 @@ module SmartfileSimple {
|
||||
break;
|
||||
case "json":
|
||||
return plugins.fs.readJsonSync(filePath,{});
|
||||
default:
|
||||
plugins.beautylog.error("file type " + fileType.blue + " not supported");
|
||||
break;
|
||||
}
|
||||
};
|
||||
export var init = function(objectArg) {
|
||||
objectArg.readFileToString = readFileToString;
|
||||
objectArg.readFileToObject = readFileToObject;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param filePathArg
|
||||
* @param options
|
||||
* @returns {number}
|
||||
*/
|
||||
export let readFileToVinyl = function(filePathArg,options = {}) {
|
||||
return plugins.vinylFile.readSync(filePathArg,options);
|
||||
};
|
||||
|
||||
/**
|
||||
* lets you reload files hot.
|
||||
* @param path
|
||||
* @returns {any}
|
||||
*/
|
||||
export let requireReload = function(path:string){
|
||||
return plugins.requireReload(path);
|
||||
};
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
/// <reference path="./index.ts" />
|
||||
module SmartfileVinyl {
|
||||
var readFileToVinyl = function(filePathArg,options = {}) {
|
||||
return plugins.vinylFile.readSync(filePathArg,options);
|
||||
};
|
||||
export var init = function(objectArg) {
|
||||
objectArg.readFileToVinyl = readFileToVinyl;
|
||||
};
|
||||
}
|
@ -3,6 +3,6 @@
|
||||
"browserify": "github:DefinitelyTyped/DefinitelyTyped/browserify/browserify.d.ts",
|
||||
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts",
|
||||
"mocha": "github:Bartvds/tsd-deftools/typings/DefinitelyTyped/mocha/mocha.d.ts",
|
||||
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts"
|
||||
"node": "registry:dt/node#4.0.0+20160311162451"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user