21 Commits

Author SHA1 Message Date
481ab58d02 2.0.0 2016-11-26 14:46:01 +01:00
9030619046 update to meet newest standards 2016-11-26 14:45:56 +01:00
fcd559090a 1.0.4 2016-10-27 19:44:02 +02:00
f946d5b1d8 update smartfile 2016-10-27 19:43:54 +02:00
4fee4ec822 update gitlab ci base image 2016-06-09 23:48:27 +02:00
94a431ef33 add README 2016-06-09 23:46:28 +02:00
142cc52f95 1.0.3 2016-06-09 03:13:46 +02:00
040120d034 update dependencies and structure 2016-06-09 03:13:40 +02:00
0618e46cd8 update typings to typings-global 2016-06-09 01:56:05 +02:00
c255f08ea6 1.0.2 2016-06-09 01:38:45 +02:00
a7035a56fc update dependencies and restructure code 2016-06-09 01:38:22 +02:00
bb926b7319 1.0.1 2016-02-23 09:38:20 +01:00
9edcf5140d small lint fix 2016-02-23 09:38:17 +01:00
e43322defd now adding token correctly 2016-02-23 09:36:40 +01:00
ed0c947a2e 1.0.0 2016-02-23 08:48:52 +01:00
3c9dd787b3 now has .git 2016-02-23 08:48:41 +01:00
e4ef9bf97a add repo information 2016-02-23 00:58:33 +01:00
d394588fff 0.0.5 2016-02-21 17:17:36 +01:00
a5baae60c9 add .license to npm class 2016-02-21 17:17:31 +01:00
44a0c05ebb 0.0.4 2016-02-21 16:50:04 +01:00
83ddbb4bbb updated structure 2016-02-21 16:50:00 +01:00
30 changed files with 376 additions and 166 deletions

6
.gitignore vendored
View File

@ -1,7 +1,9 @@
.idea/
coverage/ coverage/
node_modules docs/
node_modules/
pages/
public
ts/**/*.js ts/**/*.js
ts/**/*.js.map ts/**/*.js.map
ts/typings/ ts/typings/

59
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,59 @@
image: hosttoday/ht-docker-node:npmts
stages:
- test
- release
- trigger
- pages
testLEGACY:
stage: test
script:
- npmci test legacy
tags:
- docker
allow_failure: true
testLTS:
stage: test
script:
- npmci test lts
tags:
- docker
testSTABLE:
stage: test
script:
- npmci test stable
tags:
- docker
release:
stage: release
script:
- npmci publish
only:
- tags
tags:
- docker
trigger:
stage: trigger
script:
- npmci trigger
only:
- tags
tags:
- docker
pages:
image: hosttoday/ht-docker-node:npmpage
stage: pages
script:
- npmci command npmpage --host gitlab
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public

View File

@ -1,12 +0,0 @@
language: node_js
node_js:
- 'v4.2.6'
- 'stable'
deploy:
provider: npm
email: npm@lossless.digital
api_key:
secure: G2ZQYeDEokGCWQcXeT9SJ4aUF0uZ41B1kM9WD7hZKMGM5hzbGSTXjd/bLWf2HfujvN9FWQYVv0y5OpbRck4xTuEDBPmC5AqXCfrtNj77n151VLO0cF4+Ya1l8OQWvw13hX+cux8UfxRVHUAxUt7CoW3q6FBO/vt1Mvo9u9ucxKdB4QHXmPdq8TwuFusPJYC+l2LdWiaSCEz2LpnyrDf6OjLl2Bt+8rID3Ikbi+5yXWv/n7bfiXyIlpJX/i4Efh/mqsSWp+ziVWaSdKdpYMFPxqyOfqQ/kjbzLCwdR72cD3+UoJPdGQ46Vq3ncZRq3KighWkYRzN76EOTI/quzfcAoz5CekETPh419lPuqs2w8wEeE2oP0yCCSH1SG1ljH8ASrADWsoHzWyVa8c/ovzWMOc3hgLey6xgbYVar0sC94bjjqJh8Y5qOak4idOpI/SXf0UT1TkirZTGfdSgRzg/E1Zqj262sxLeIv0yHsbnzgwUduj6PjfLztgLVAGO13csxksUSiKxT8Mbbqozv1sdz/0SgoZTMYfZSO5kYdBCqguJkJdEj1Dr4tM/0ca+mugHibavQxPJiWqnfNqxdlmywpzPHPHe5G2wzba2W62l3yPHF4rJBJuUi35ddWWOkAN1g9D2NHlByWfqF+WYRuTv1DPlw7ZpmgEVPPUlBPhC5YO8=
on:
tags: true
repo: pushrocks/projectinfo

16
README.md Normal file
View File

@ -0,0 +1,16 @@
# projectinfo
returns a projectoinfo object for a directory path. TypeScript ready.
## Status
[![build status](https://gitlab.com/pushrocks/projectinfo/badges/master/build.svg)](https://gitlab.com/pushrocks/projectinfo/commits/master)
[![Dependency Status](https://david-dm.org/pushrocks/projectinfo.svg)](https://david-dm.org/pushrocks/projectinfo)
[![devDependency Status](https://david-dm.org/pushrocks/projectinfo/dev-status.svg)](https://david-dm.org/pushrocks/projectinfo#info=devDependencies)
## Usage
```TypeScript
var projectinfo = require("projectinfo")
myProject = new ProjectinfoNpm("/somepath/to/projectroot");
myProject.version // displays version
```

8
dist/index.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import 'typings-global';
export * from './projectinfo.classes.git';
export * from './projectinfo.classes.npm';
export * from './projectinfo.classes.projectinfo';
/**
* gets the name from package.json in a specified directory
*/
export declare let getNpmNameForDir: (cwdArg: any) => string;

38
dist/index.js vendored
View File

@ -1,17 +1,31 @@
//import classes "use strict";
var ProjectinfoNPM = require("./projectinfo.npm"); function __export(m) {
var projectinfo = {}; for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
//specific classes }
projectinfo.npm = function (cwdArg) { require("typings-global");
return new ProjectinfoNPM(cwdArg); // direct access to classes
}; __export(require("./projectinfo.classes.git"));
__export(require("./projectinfo.classes.npm"));
__export(require("./projectinfo.classes.projectinfo"));
// npm
const projectinfo_classes_npm_1 = require("./projectinfo.classes.npm");
// quick functions // quick functions
projectinfo.getName = function (cwdArg) { /**
var localNpm = projectinfo.npm(cwdArg); * gets the name from package.json in a specified directory
if (localNpm.status === "ok") { */
exports.getNpmNameForDir = function (cwdArg) {
let localNpm = new projectinfo_classes_npm_1.ProjectinfoNpm(cwdArg);
if (localNpm.status === 'ok') {
return localNpm.name; return localNpm.name;
} }
}; };
module.exports = projectinfo; /* TODO
projectinfo.git = function(){
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGdCQUFnQjtBQUNoQixJQUFPLGNBQWMsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0FBRXJELElBQUksV0FBVyxHQUFPLEVBQUUsQ0FBQztBQUV6QixrQkFBa0I7QUFDbEIsV0FBVyxDQUFDLEdBQUcsR0FBRyxVQUFTLE1BQU07SUFDN0IsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLGlCQUFpQjtBQUNqQixXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVMsTUFBTTtJQUNqQyxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUEsQ0FBQztRQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWUYsaUJBQVMsV0FBVyxDQUFDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxuaW1wb3J0IHBsdWdpbnMgPSByZXF1aXJlKFwiLi9wcm9qZWN0aW5mby5wbHVnaW5zXCIpO1xuXG4vL2ltcG9ydCBjbGFzc2VzXG5pbXBvcnQgUHJvamVjdGluZm9OUE0gPSByZXF1aXJlKFwiLi9wcm9qZWN0aW5mby5ucG1cIik7XG5cbnZhciBwcm9qZWN0aW5mbzphbnkgPSB7fTtcblxuLy9zcGVjaWZpYyBjbGFzc2VzXG5wcm9qZWN0aW5mby5ucG0gPSBmdW5jdGlvbihjd2RBcmcpe1xuICAgIHJldHVybiBuZXcgUHJvamVjdGluZm9OUE0oY3dkQXJnKTtcbn07XG5cbi8vcXVpY2sgZnVuY3Rpb25zXG5wcm9qZWN0aW5mby5nZXROYW1lID0gZnVuY3Rpb24oY3dkQXJnKXtcbiAgICB2YXIgbG9jYWxOcG0gPSBwcm9qZWN0aW5mby5ucG0oY3dkQXJnKTtcbiAgICBpZiAobG9jYWxOcG0uc3RhdHVzID09PSBcIm9rXCIpe1xuICAgICAgICByZXR1cm4gbG9jYWxOcG0ubmFtZTtcbiAgICB9XG59O1xuXG4vKiBUT0RPXG5wcm9qZWN0aW5mby5naXQgPSBmdW5jdGlvbigpe1xuXG59O1xuXG5wcm9qZWN0aW5mby5tb2pvID0gZnVuY3Rpb24oKXtcblxufTtcbiovXG5cbmV4cG9ydCA9IHByb2plY3RpbmZvOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== };
projectinfo.mojo = function(){
};
*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEJBQXVCO0FBR3ZCLDJCQUEyQjtBQUMzQiwrQ0FBeUM7QUFDekMsK0NBQXlDO0FBQ3pDLHVEQUFpRDtBQUVqRCxNQUFNO0FBQ04sdUVBQTBEO0FBRTFELGtCQUFrQjtBQUVsQjs7R0FFRztBQUNRLFFBQUEsZ0JBQWdCLEdBQUcsVUFBUyxNQUFNO0lBQ3pDLElBQUksUUFBUSxHQUFHLElBQUksd0NBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUE7SUFDeEIsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVEOzs7Ozs7OztFQVFFIn0=

5
dist/projectinfo.classes.git.d.ts vendored Normal file
View File

@ -0,0 +1,5 @@
import 'typings-global';
export declare class ProjectinfoGit {
isGit: boolean;
constructor();
}

8
dist/projectinfo.classes.git.js vendored Normal file
View File

@ -0,0 +1,8 @@
"use strict";
require("typings-global");
class ProjectinfoGit {
constructor() {
}
}
exports.ProjectinfoGit = ProjectinfoGit;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8uY2xhc3Nlcy5naXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wcm9qZWN0aW5mby5jbGFzc2VzLmdpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBRXZCO0lBRUk7SUFFQSxDQUFDO0NBQ0o7QUFMRCx3Q0FLQyJ9

13
dist/projectinfo.classes.npm.d.ts vendored Normal file
View File

@ -0,0 +1,13 @@
import 'typings-global';
export declare class ProjectinfoNpm {
isNpm: boolean;
packageJson: any;
name: string;
version: string;
status: string;
license: string;
git: any;
constructor(cwdArg: string, optionsArg?: {
gitAccessToken?: string;
});
}

24
dist/projectinfo.classes.npm.js vendored Normal file
View File

@ -0,0 +1,24 @@
"use strict";
require("typings-global");
const plugins = require("./projectinfo.plugins");
class ProjectinfoNpm {
constructor(cwdArg, optionsArg = {}) {
this.isNpm = false;
let resolvedCwd = plugins.path.resolve(cwdArg);
if (plugins.smartfile.fs.fileExists(plugins.path.join(resolvedCwd, 'package.json'))) {
this.isNpm = true;
this.packageJson = plugins.smartfile.fs.toObjectSync(plugins.path.join(resolvedCwd, 'package.json'), 'json');
this.name = this.packageJson.name;
this.version = this.packageJson.version;
this.status = 'ok';
this.license = this.packageJson.license;
if (this.packageJson.repository) {
this.git = new plugins.smartstring.GitRepo(this.packageJson.repository.url, optionsArg.gitAccessToken);
}
;
}
}
;
}
exports.ProjectinfoNpm = ProjectinfoNpm;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8uY2xhc3Nlcy5ucG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wcm9qZWN0aW5mby5jbGFzc2VzLm5wbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLGlEQUFpRDtBQUNqRDtJQVNJLFlBQVksTUFBYyxFQUFFLGFBQTBDLEVBQUU7UUFSeEUsVUFBSyxHQUFZLEtBQUssQ0FBQTtRQVNsQixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDYixXQUFXLEVBQ1gsY0FBYyxDQUNqQixFQUNELE1BQU0sQ0FDVCxDQUFBO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFBO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUE7WUFDdkMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUMxRyxDQUFDO1lBQUEsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBQUEsQ0FBQztDQUNMO0FBN0JELHdDQTZCQyJ9

View File

@ -0,0 +1,13 @@
import { ProjectinfoNpm } from './projectinfo.classes.npm';
export declare type TProjectType = 'git' | 'npm';
/**
* class projectinfo automatically examines a given directory and exposes relevant info about it
*/
export declare class ProjectInfo {
type: TProjectType;
npm: ProjectinfoNpm;
/**
* this constructor
*/
constructor(cwdArg: string);
}

15
dist/projectinfo.classes.projectinfo.js vendored Normal file
View File

@ -0,0 +1,15 @@
"use strict";
const projectinfo_classes_npm_1 = require("./projectinfo.classes.npm");
/**
* class projectinfo automatically examines a given directory and exposes relevant info about it
*/
class ProjectInfo {
/**
* this constructor
*/
constructor(cwdArg) {
this.npm = new projectinfo_classes_npm_1.ProjectinfoNpm(cwdArg);
}
}
exports.ProjectInfo = ProjectInfo;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8uY2xhc3Nlcy5wcm9qZWN0aW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Byb2plY3RpbmZvLmNsYXNzZXMucHJvamVjdGluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLHVFQUEwRDtBQUkxRDs7R0FFRztBQUNIO0lBR0k7O09BRUc7SUFDSCxZQUFZLE1BQWM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLHdDQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDekMsQ0FBQztDQUlKO0FBWkQsa0NBWUMifQ==

View File

@ -1,14 +0,0 @@
/// <reference path="./typings/main.d.ts" />
var plugins = require("./projectinfo.plugins");
var ProjectinfoNPM = (function () {
function ProjectinfoNPM(cwdArg) {
this.packageJson = plugins.smartfile.readFileToObject(plugins.path.join(plugins.path.resolve(cwdArg), "package.json"));
this.name = this.packageJson.name;
this.version = this.packageJson.version;
this.status = "ok";
}
return ProjectinfoNPM;
})();
module.exports = ProjectinfoNPM;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3RpbmZvLm5wbS50cyJdLCJuYW1lcyI6WyJQcm9qZWN0aW5mb05QTSIsIlByb2plY3RpbmZvTlBNLmNvbnN0cnVjdG9yIl0sIm1hcHBpbmdzIjoiQUFBQSw0Q0FBNEM7QUFDNUMsSUFBTyxPQUFPLFdBQVcsdUJBQXVCLENBQUMsQ0FBQztBQUNsRDtJQU1JQSx3QkFBWUEsTUFBYUE7UUFDckJDLElBQUlBLENBQUNBLFdBQVdBLEdBQUdBLE9BQU9BLENBQUNBLFNBQVNBLENBQUNBLGdCQUFnQkEsQ0FDakRBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQ2JBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLEVBQzVCQSxjQUFjQSxDQUNqQkEsQ0FDSkEsQ0FBQ0E7UUFDRkEsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7UUFDbENBLElBQUlBLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLE9BQU9BLENBQUNBO1FBQ3hDQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQTtJQUN2QkEsQ0FBQ0E7SUFDTEQscUJBQUNBO0FBQURBLENBakJBLEFBaUJDQSxJQUFBO0FBRUQsaUJBQVMsY0FBYyxDQUFDIiwiZmlsZSI6InByb2plY3RpbmZvLm5wbS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vcHJvamVjdGluZm8ucGx1Z2luc1wiKTtcbmNsYXNzIFByb2plY3RpbmZvTlBNICB7XG4gICAgcGFja2FnZUpzb247XG4gICAgbmFtZTpzdHJpbmc7XG4gICAgdmVyc2lvbjpzdHJpbmc7XG4gICAgc3RhdHVzOnN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGN3ZEFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLnBhY2thZ2VKc29uID0gcGx1Z2lucy5zbWFydGZpbGUucmVhZEZpbGVUb09iamVjdChcbiAgICAgICAgICAgIHBsdWdpbnMucGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIHBsdWdpbnMucGF0aC5yZXNvbHZlKGN3ZEFyZyksXG4gICAgICAgICAgICAgICAgXCJwYWNrYWdlLmpzb25cIlxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLnBhY2thZ2VKc29uLm5hbWU7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IHRoaXMucGFja2FnZUpzb24udmVyc2lvbjtcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBcIm9rXCI7XG4gICAgfVxufVxuXG5leHBvcnQgPSBQcm9qZWN0aW5mb05QTTsiXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

5
dist/projectinfo.plugins.d.ts vendored Normal file
View File

@ -0,0 +1,5 @@
import 'typings-global';
export declare let path: any;
export declare let Q: any;
export import smartfile = require('smartfile');
export import smartstring = require('smartstring');

View File

@ -1,9 +1,7 @@
/// <reference path="./typings/main.d.ts" /> "use strict";
var plugins = { require("typings-global");
path: require("path"), exports.path = require('path');
Q: require("q"), exports.Q = require('q');
smartfile: require("smartfile") exports.smartfile = require("smartfile");
}; exports.smartstring = require("smartstring");
module.exports = plugins; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8ucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Byb2plY3RpbmZvLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUNaLFFBQUEsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUN0QixRQUFBLENBQUMsR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDNUIseUNBQThDO0FBQzlDLDZDQUFrRCJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3RpbmZvLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNENBQTRDO0FBQzVDLElBQUksT0FBTyxHQUFHO0lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDZixTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztDQUNsQyxDQUFDO0FBRUYsaUJBQVMsT0FBTyxDQUFDIiwiZmlsZSI6InByb2plY3RpbmZvLnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG52YXIgcGx1Z2lucyA9IHtcbiAgICBwYXRoOiByZXF1aXJlKFwicGF0aFwiKSxcbiAgICBROiByZXF1aXJlKFwicVwiKSxcbiAgICBzbWFydGZpbGU6IHJlcXVpcmUoXCJzbWFydGZpbGVcIilcbn07XG5cbmV4cG9ydCA9IHBsdWdpbnM7Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

11
npmextra.json Normal file
View File

@ -0,0 +1,11 @@
{
"npmts": {
"mode": "default",
"coverageTreshold": 80
},
"npmci": {
"globalNpmTools": [
"npmts"
]
}
}

View File

@ -1,14 +1,15 @@
{ {
"name": "projectinfo", "name": "projectinfo",
"version": "0.0.3", "version": "2.0.0",
"description": "gather information about projects. supports npm, git etc.", "description": "gather information about projects. supports npm, git etc.",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": { "scripts": {
"test": "(npmts)" "test": "(npmts)"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/pushrocks/projectinfo.git" "url": "git+https://gitlab.com/pushrocks/projectinfo.git"
}, },
"keywords": [ "keywords": [
"project", "project",
@ -20,15 +21,18 @@
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://github.com/pushrocks/projectinfo/issues" "url": "https://gitlab.com/pushrocks/projectinfo/issues"
}, },
"homepage": "https://github.com/pushrocks/projectinfo#readme", "homepage": "https://gitlab.com/pushrocks/projectinfo#readme",
"devDependencies": { "devDependencies": {
"npmts": "^3.1.2", "npmts-g": "^5.2.10",
"should": "^8.2.2" "should": "^11.1.1",
"typings-test": "^1.0.3"
}, },
"dependencies": { "dependencies": {
"q": "^1.4.1", "q": "^1.4.1",
"smartfile": "0.0.11" "smartfile": "4.1.0",
"smartstring": "2.0.22",
"typings-global": "^1.0.14"
} }
} }

View File

@ -2,6 +2,10 @@
"name": "testpackage", "name": "testpackage",
"version": "1.0.0", "version": "1.0.0",
"description": "some test", "description": "some test",
"repository": {
"type": "git",
"url": "git+https://github.com/someuser/somerepo.git"
},
"main": "test.js", "main": "test.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"

1
test/test.d.ts vendored Normal file
View File

@ -0,0 +1 @@
import 'typings-test';

View File

@ -1,32 +1,33 @@
/// <reference path="../ts/typings/main.d.ts" /> "use strict";
var projectinfo = require("../dist/index.js"); require("typings-test");
var should = require("should"); const projectinfo = require("../dist/index");
var path = require("path"); let should = require('should');
var testBasePath = path.resolve(__dirname); let path = require('path');
describe("projectinfo", function () { let testBasePath = path.resolve(__dirname);
describe(".npm() return", function () { describe('projectinfo', function () {
var myNpm = projectinfo.npm(testBasePath); describe('.npm() return', function () {
it("should have .packageJson", function () { let myNpm = new projectinfo.ProjectinfoNpm(testBasePath, { gitAccessToken: 'sometoken' });
myNpm.packageJson it('should have .packageJson', function () {
.should.have.property("version", "1.0.0"); should(myNpm.packageJson).have.property('version', '1.0.0');
myNpm.packageJson should(myNpm.packageJson).have.property('name', 'testpackage');
.should.have.property("name", "testpackage");
}); });
it("should have .version", function () { it('should have .version', function () {
myNpm should(myNpm).have.property('version', '1.0.0');
.should.have.property("name", "testpackage");
}); });
it("should have .name", function () { it('should have .name', function () {
myNpm should(myNpm).have.property('name', 'testpackage');
.should.have.property("name", "testpackage"); });
it('should have .license', function () {
should(myNpm).have.property('license', 'MIT');
});
it('should have .git', function () {
should(myNpm.git.httpsUrl).equal('https://sometoken@github.com/someuser/somerepo.git');
}); });
}); });
describe(".getName()", function () { describe('.getNpmNameForDir()', function () {
it("should return a name", function () { it('should return a name', function () {
projectinfo.getName(testBasePath) should(projectinfo.getNpmNameForDir(testBasePath)).equal('testpackage');
.should.equal("testpackage");
}); });
}); });
}); });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQiw2Q0FBNkM7QUFDN0MsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQzlCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUMxQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTFDLFFBQVEsQ0FBQyxhQUFhLEVBQUM7SUFDbkIsUUFBUSxDQUFDLGVBQWUsRUFBQztRQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFDLEVBQUMsY0FBYyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUE7UUFDdEYsRUFBRSxDQUFDLDBCQUEwQixFQUFDO1lBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUMsT0FBTyxDQUFDLENBQUE7WUFDMUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxhQUFhLENBQUMsQ0FBQTtRQUNqRSxDQUFDLENBQUMsQ0FBQTtRQUVGLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztZQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUMsT0FBTyxDQUFDLENBQUE7UUFDbEQsQ0FBQyxDQUFDLENBQUE7UUFFRixFQUFFLENBQUMsbUJBQW1CLEVBQUM7WUFDbkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JELENBQUMsQ0FBQyxDQUFBO1FBRUYsRUFBRSxDQUFDLHNCQUFzQixFQUFDO1lBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxrQkFBa0IsRUFBQztZQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtRQUMxRixDQUFDLENBQUMsQ0FBQTtJQUVOLENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLHFCQUFxQixFQUFDO1FBQzNCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztZQUN0QixNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUM1QyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0RBQWdEO0FBQ2hELElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzlDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMvQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDM0IsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUzQyxRQUFRLENBQUMsYUFBYSxFQUFDO0lBQ25CLFFBQVEsQ0FBQyxlQUFlLEVBQUM7UUFDckIsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxFQUFFLENBQUMsMEJBQTBCLEVBQUM7WUFDMUIsS0FBSyxDQUFDLFdBQVc7aUJBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLEtBQUssQ0FBQyxXQUFXO2lCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztZQUN0QixLQUFLO2lCQUNBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxhQUFhLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtQkFBbUIsRUFBQztZQUNuQixLQUFLO2lCQUNBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksRUFBQztRQUNsQixFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7aUJBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHMvdHlwaW5ncy9tYWluLmQudHNcIiAvPlxudmFyIHByb2plY3RpbmZvID0gcmVxdWlyZShcIi4uL2Rpc3QvaW5kZXguanNcIik7XG52YXIgc2hvdWxkID0gcmVxdWlyZShcInNob3VsZFwiKTtcbnZhciBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XG52YXIgdGVzdEJhc2VQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSk7XG5cbmRlc2NyaWJlKFwicHJvamVjdGluZm9cIixmdW5jdGlvbigpe1xuICAgIGRlc2NyaWJlKFwiLm5wbSgpIHJldHVyblwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIHZhciBteU5wbSA9IHByb2plY3RpbmZvLm5wbSh0ZXN0QmFzZVBhdGgpO1xuICAgICAgICBpdChcInNob3VsZCBoYXZlIC5wYWNrYWdlSnNvblwiLGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBteU5wbS5wYWNrYWdlSnNvblxuICAgICAgICAgICAgICAgLnNob3VsZC5oYXZlLnByb3BlcnR5KFwidmVyc2lvblwiLFwiMS4wLjBcIik7XG4gICAgICAgICAgICBteU5wbS5wYWNrYWdlSnNvblxuICAgICAgICAgICAgICAgLnNob3VsZC5oYXZlLnByb3BlcnR5KFwibmFtZVwiLFwidGVzdHBhY2thZ2VcIik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KFwic2hvdWxkIGhhdmUgLnZlcnNpb25cIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgbXlOcG1cbiAgICAgICAgICAgICAgICAuc2hvdWxkLmhhdmUucHJvcGVydHkoXCJuYW1lXCIsXCJ0ZXN0cGFja2FnZVwiKVxuICAgICAgICB9KTtcblxuICAgICAgICBpdChcInNob3VsZCBoYXZlIC5uYW1lXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIG15TnBtXG4gICAgICAgICAgICAgICAgLnNob3VsZC5oYXZlLnByb3BlcnR5KFwibmFtZVwiLFwidGVzdHBhY2thZ2VcIik7XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG5cbiAgICBkZXNjcmliZShcIi5nZXROYW1lKClcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcInNob3VsZCByZXR1cm4gYSBuYW1lXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHByb2plY3RpbmZvLmdldE5hbWUodGVzdEJhc2VQYXRoKVxuICAgICAgICAgICAgICAgIC5zaG91bGQuZXF1YWwoXCJ0ZXN0cGFja2FnZVwiKTtcbiAgICAgICAgfSk7XG4gICAgfSlcbn0pOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

View File

@ -1 +1 @@
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAE3C,QAAQ,CAAC,aAAa,EAAC;IACnB,QAAQ,CAAC,eAAe,EAAC;QACrB,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,EAAE,CAAC,0BAA0B,EAAC;YAC1B,KAAK,CAAC,WAAW;iBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,WAAW;iBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAC;YACtB,KAAK;iBACA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAA;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAC;YACnB,KAAK;iBACA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAC;QAClB,EAAE,CAAC,sBAAsB,EAAC;YACtB,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;iBAC5B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"} {"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,IAAI,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAE3C,QAAQ,CAAC,aAAa,EAAC;IACnB,QAAQ,CAAC,eAAe,EAAC;QACrB,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,EAAC,EAAC,cAAc,EAAC,WAAW,EAAC,CAAC,CAAC;QACvE,EAAE,CAAC,0BAA0B,EAAC;YAC1B,KAAK,CAAC,WAAW;iBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,WAAW;iBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAC;YACtB,KAAK;iBACA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,OAAO,CAAC,CAAA;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAC;YACnB,KAAK;iBACA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAC;YACtB,KAAK;iBACA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,kBAAkB,EAAC;YAClB,KAAK,CAAC,GAAG,CAAC,QAAQ;iBACb,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAC;QAClB,EAAE,CAAC,sBAAsB,EAAC;YACtB,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;iBAC5B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"}

View File

@ -1,35 +1,38 @@
/// <reference path="../ts/typings/main.d.ts" /> import 'typings-test'
var projectinfo = require("../dist/index.js"); import projectinfo = require('../dist/index')
var should = require("should"); let should = require('should')
var path = require("path"); let path = require('path')
var testBasePath = path.resolve(__dirname); let testBasePath = path.resolve(__dirname)
describe("projectinfo",function(){ describe('projectinfo',function(){
describe(".npm() return",function(){ describe('.npm() return',function(){
var myNpm = projectinfo.npm(testBasePath); let myNpm = new projectinfo.ProjectinfoNpm(testBasePath,{gitAccessToken: 'sometoken'})
it("should have .packageJson",function(){ it('should have .packageJson',function(){
myNpm.packageJson should(myNpm.packageJson).have.property('version','1.0.0')
.should.have.property("version","1.0.0"); should(myNpm.packageJson).have.property('name','testpackage')
myNpm.packageJson })
.should.have.property("name","testpackage");
}); it('should have .version',function(){
should(myNpm).have.property('version','1.0.0')
it("should have .version",function(){ })
myNpm
.should.have.property("name","testpackage") it('should have .name',function(){
}); should(myNpm).have.property('name','testpackage')
})
it("should have .name",function(){
myNpm it('should have .license',function(){
.should.have.property("name","testpackage"); should(myNpm).have.property('license','MIT')
}); })
it('should have .git',function(){
}); should(myNpm.git.httpsUrl).equal('https://sometoken@github.com/someuser/somerepo.git')
})
describe(".getName()",function(){
it("should return a name",function(){ })
projectinfo.getName(testBasePath)
.should.equal("testpackage"); describe('.getNpmNameForDir()',function(){
}); it('should return a name',function(){
should(projectinfo.getNpmNameForDir(testBasePath)
).equal('testpackage')
})
})
}) })
});

View File

@ -1,23 +1,25 @@
/// <reference path="./typings/main.d.ts" /> import 'typings-global'
import plugins = require("./projectinfo.plugins"); import plugins = require('./projectinfo.plugins')
//import classes // direct access to classes
import ProjectinfoNPM = require("./projectinfo.npm"); export * from './projectinfo.classes.git'
export * from './projectinfo.classes.npm'
export * from './projectinfo.classes.projectinfo'
var projectinfo:any = {}; // npm
import { ProjectinfoNpm } from './projectinfo.classes.npm'
//specific classes
projectinfo.npm = function(cwdArg){
return new ProjectinfoNPM(cwdArg);
};
// quick functions // quick functions
projectinfo.getName = function(cwdArg){
var localNpm = projectinfo.npm(cwdArg); /**
if (localNpm.status === "ok"){ * gets the name from package.json in a specified directory
return localNpm.name; */
export let getNpmNameForDir = function(cwdArg){
let localNpm = new ProjectinfoNpm(cwdArg)
if (localNpm.status === 'ok') {
return localNpm.name
}
} }
};
/* TODO /* TODO
projectinfo.git = function(){ projectinfo.git = function(){
@ -28,5 +30,3 @@ projectinfo.mojo = function(){
}; };
*/ */
export = projectinfo;

View File

@ -0,0 +1,8 @@
import 'typings-global'
export class ProjectinfoGit {
isGit: boolean
constructor() {
}
}

View File

@ -0,0 +1,32 @@
import 'typings-global'
import plugins = require('./projectinfo.plugins')
export class ProjectinfoNpm {
isNpm: boolean = false
packageJson: any
name: string
version: string
status: string
license: string
git
constructor(cwdArg: string, optionsArg: { gitAccessToken?: string } = {}) {
let resolvedCwd = plugins.path.resolve(cwdArg)
if (plugins.smartfile.fs.fileExists(plugins.path.join(resolvedCwd, 'package.json'))) {
this.isNpm = true
this.packageJson = plugins.smartfile.fs.toObjectSync(
plugins.path.join(
resolvedCwd,
'package.json'
),
'json'
)
this.name = this.packageJson.name
this.version = this.packageJson.version
this.status = 'ok'
this.license = this.packageJson.license
if (this.packageJson.repository) {
this.git = new plugins.smartstring.GitRepo(this.packageJson.repository.url, optionsArg.gitAccessToken)
};
}
};
}

View File

@ -0,0 +1,21 @@
import * as plugins from './projectinfo.plugins'
import { ProjectinfoNpm } from './projectinfo.classes.npm'
export type TProjectType = 'git' | 'npm'
/**
* class projectinfo automatically examines a given directory and exposes relevant info about it
*/
export class ProjectInfo {
type: TProjectType
npm: ProjectinfoNpm
/**
* this constructor
*/
constructor(cwdArg: string) {
this.npm = new ProjectinfoNpm(cwdArg)
}
}

View File

@ -1,22 +0,0 @@
/// <reference path="./typings/main.d.ts" />
import plugins = require("./projectinfo.plugins");
class ProjectinfoNPM {
packageJson;
name:string;
version:string;
status:string;
constructor(cwdArg:string){
this.packageJson = plugins.smartfile.readFileToObject(
plugins.path.join(
plugins.path.resolve(cwdArg),
"package.json"
)
);
this.name = this.packageJson.name;
this.version = this.packageJson.version;
this.status = "ok";
}
}
export = ProjectinfoNPM;

View File

@ -1,8 +1,5 @@
/// <reference path="./typings/main.d.ts" /> import 'typings-global'
var plugins = { export let path = require('path')
path: require("path"), export let Q = require('q')
Q: require("q"), export import smartfile = require('smartfile')
smartfile: require("smartfile") export import smartstring = require('smartstring')
};
export = plugins;

View File

@ -1,7 +0,0 @@
{
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts",
"mocha": "github:Bartvds/tsd-deftools/typings/DefinitelyTyped/mocha/mocha.d.ts",
"colors": "github:DefinitelyTyped/DefinitelyTyped/colors/colors.d.ts"
}
}

3
tslint.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "tslint-config-standard"
}