Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
47da0afd4b | |||
f9296f1f26 | |||
d013fbad50 | |||
d5f72a76d9 | |||
d26a8b02db | |||
9b3db5daca | |||
75d94111a9 | |||
4f425dfc93 | |||
0f2af7219e | |||
9abe15f871 | |||
27aa9f7166 | |||
0a1063e6c8 | |||
f606dd6e6d | |||
5c608dd675 | |||
b4f8093230 | |||
aa903ec93e | |||
187721a511 | |||
c457cbff6a | |||
6fbc179fcb | |||
c17db19b9f | |||
481ab58d02 | |||
9030619046 |
23
.gitignore
vendored
23
.gitignore
vendored
@ -1,9 +1,20 @@
|
|||||||
|
.nogit/
|
||||||
|
|
||||||
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
docs/
|
public/
|
||||||
|
pages/
|
||||||
|
|
||||||
|
# installs
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
pages/
|
# caches
|
||||||
public
|
.yarn/
|
||||||
ts/**/*.js
|
.cache/
|
||||||
ts/**/*.js.map
|
.rpt2_cache
|
||||||
ts/typings/
|
|
||||||
|
# builds
|
||||||
|
dist/
|
||||||
|
dist_*/
|
||||||
|
|
||||||
|
# custom
|
120
.gitlab-ci.yml
120
.gitlab-ci.yml
@ -1,37 +1,127 @@
|
|||||||
image: hosttoday/ht-docker-node:npmts
|
# gitzone ci_default
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- .npmci_cache/
|
||||||
|
key: '$CI_BUILD_STAGE'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- security
|
||||||
- release
|
- test
|
||||||
- page
|
- release
|
||||||
|
- metadata
|
||||||
|
|
||||||
testLEGACY:
|
# ====================
|
||||||
stage: test
|
# security stage
|
||||||
|
# ====================
|
||||||
|
mirror:
|
||||||
|
stage: security
|
||||||
script:
|
script:
|
||||||
- npmci test legacy
|
- npmci git mirror
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
allow_failure: true
|
- notpriv
|
||||||
|
|
||||||
testLTS:
|
audit:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --ignore-scripts
|
||||||
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
# ====================
|
||||||
|
# test stage
|
||||||
|
# ====================
|
||||||
|
|
||||||
|
testStable:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test lts
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci npm test
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
|
- priv
|
||||||
testSTABLE:
|
|
||||||
|
testBuild:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test stable
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command npm run build
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
- npmci publish
|
- npmci node install stable
|
||||||
|
- npmci npm publish
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
# ====================
|
||||||
|
# metadata stage
|
||||||
|
# ====================
|
||||||
|
codequality:
|
||||||
|
stage: metadata
|
||||||
|
allow_failure: true
|
||||||
|
script:
|
||||||
|
- npmci command npm install -g tslint typescript
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- priv
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
stage: metadata
|
||||||
|
script:
|
||||||
|
- npmci trigger
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
|
||||||
|
pages:
|
||||||
|
stage: metadata
|
||||||
|
script:
|
||||||
|
- npmci node install lts
|
||||||
|
- npmci command npm install -g @gitzone/tsdoc
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command tsdoc
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- notpriv
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- public
|
||||||
|
allow_failure: true
|
||||||
|
29
.vscode/launch.json
vendored
Normal file
29
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "current file",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${relativeFile}"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "test.ts",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"test/test.ts"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
26
.vscode/settings.json
vendored
Normal file
26
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": ["/npmextra.json"],
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"npmci": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for npmci"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for gitzone",
|
||||||
|
"properties": {
|
||||||
|
"projectType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["website", "element", "service", "npm"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
16
README.md
16
README.md
@ -1,16 +0,0 @@
|
|||||||
# projectinfo
|
|
||||||
returns a projectoinfo object for a directory path. TypeScript ready.
|
|
||||||
|
|
||||||
## Status
|
|
||||||
[](https://gitlab.com/pushrocks/projectinfo/commits/master)
|
|
||||||
[](https://david-dm.org/pushrocks/projectinfo)
|
|
||||||
[](https://david-dm.org/pushrocks/projectinfo#info=devDependencies)
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```TypeScript
|
|
||||||
var projectinfo = require("projectinfo")
|
|
||||||
|
|
||||||
myProject = new ProjectinfoNpm("/somepath/to/projectroot");
|
|
||||||
myProject.version // displays version
|
|
||||||
```
|
|
5
dist/index.d.ts
vendored
5
dist/index.d.ts
vendored
@ -1,5 +0,0 @@
|
|||||||
import "typings-global";
|
|
||||||
import { ProjectinfoNpm } from "./projectinfo.classes.npm";
|
|
||||||
export { ProjectinfoNpm } from "./projectinfo.classes.npm";
|
|
||||||
export declare let npm: (cwdArg: any, optionsArg: any) => ProjectinfoNpm;
|
|
||||||
export declare let getName: (cwdArg: any) => string;
|
|
26
dist/index.js
vendored
26
dist/index.js
vendored
@ -1,26 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-global");
|
|
||||||
//npm
|
|
||||||
const projectinfo_classes_npm_1 = require("./projectinfo.classes.npm");
|
|
||||||
var projectinfo_classes_npm_2 = require("./projectinfo.classes.npm");
|
|
||||||
exports.ProjectinfoNpm = projectinfo_classes_npm_2.ProjectinfoNpm;
|
|
||||||
exports.npm = function (cwdArg, optionsArg) {
|
|
||||||
return new projectinfo_classes_npm_1.ProjectinfoNpm(cwdArg, optionsArg);
|
|
||||||
};
|
|
||||||
//quick functions
|
|
||||||
exports.getName = function (cwdArg) {
|
|
||||||
var localNpm = new projectinfo_classes_npm_1.ProjectinfoNpm(cwdArg);
|
|
||||||
if (localNpm.status === "ok") {
|
|
||||||
return localNpm.name;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/* TODO
|
|
||||||
projectinfo.git = function(){
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
projectinfo.mojo = function(){
|
|
||||||
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBR3ZCLEtBQUs7QUFDTCx1RUFBeUQ7QUFDekQscUVBQXlEO0FBQWpELG1EQUFBLGNBQWMsQ0FBQTtBQUNYLFFBQUEsR0FBRyxHQUFHLFVBQVMsTUFBTSxFQUFDLFVBQVU7SUFDdkMsTUFBTSxDQUFDLElBQUksd0NBQWMsQ0FBQyxNQUFNLEVBQUMsVUFBVSxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDO0FBRUYsaUJBQWlCO0FBQ04sUUFBQSxPQUFPLEdBQUcsVUFBUyxNQUFNO0lBQ2hDLElBQUksUUFBUSxHQUFHLElBQUksd0NBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFBLENBQUM7UUFDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztFQVFFIn0=
|
|
1
dist/projectinfo.classes.git.d.ts
vendored
1
dist/projectinfo.classes.git.d.ts
vendored
@ -1 +0,0 @@
|
|||||||
import "typings-global";
|
|
3
dist/projectinfo.classes.git.js
vendored
3
dist/projectinfo.classes.git.js
vendored
@ -1,3 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-global");
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8uY2xhc3Nlcy5naXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wcm9qZWN0aW5mby5jbGFzc2VzLmdpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCIn0=
|
|
12
dist/projectinfo.classes.npm.d.ts
vendored
12
dist/projectinfo.classes.npm.d.ts
vendored
@ -1,12 +0,0 @@
|
|||||||
import "typings-global";
|
|
||||||
export declare class ProjectinfoNpm {
|
|
||||||
packageJson: any;
|
|
||||||
name: string;
|
|
||||||
version: string;
|
|
||||||
status: string;
|
|
||||||
license: string;
|
|
||||||
git: any;
|
|
||||||
constructor(cwdArg: string, optionsArg?: {
|
|
||||||
gitAccessToken?: string;
|
|
||||||
});
|
|
||||||
}
|
|
19
dist/projectinfo.classes.npm.js
vendored
19
dist/projectinfo.classes.npm.js
vendored
@ -1,19 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-global");
|
|
||||||
const plugins = require("./projectinfo.plugins");
|
|
||||||
class ProjectinfoNpm {
|
|
||||||
constructor(cwdArg, optionsArg = {}) {
|
|
||||||
this.packageJson = plugins.smartfile.fs.toObjectSync(plugins.path.join(plugins.path.resolve(cwdArg), "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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8uY2xhc3Nlcy5ucG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wcm9qZWN0aW5mby5jbGFzc2VzLm5wbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLGlEQUFrRDtBQUNsRDtJQVFJLFlBQVksTUFBYSxFQUFDLGFBQXNDLEVBQUU7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUM1QixjQUFjLENBQ2pCLEVBQ0QsTUFBTSxDQUNULENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0csQ0FBQztRQUFBLENBQUM7SUFFTixDQUFDO0lBQUEsQ0FBQztDQUNMO0FBekJELHdDQXlCQyJ9
|
|
5
dist/projectinfo.plugins.d.ts
vendored
5
dist/projectinfo.plugins.d.ts
vendored
@ -1,5 +0,0 @@
|
|||||||
import "typings-global";
|
|
||||||
export declare let path: any;
|
|
||||||
export declare let Q: any;
|
|
||||||
export import smartfile = require("smartfile");
|
|
||||||
export import smartstring = require("smartstring");
|
|
7
dist/projectinfo.plugins.js
vendored
7
dist/projectinfo.plugins.js
vendored
@ -1,7 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-global");
|
|
||||||
exports.path = require("path");
|
|
||||||
exports.Q = require("q");
|
|
||||||
exports.smartfile = require("smartfile");
|
|
||||||
exports.smartstring = require("smartstring");
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGluZm8ucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Byb2plY3RpbmZvLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUNaLFFBQUEsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixRQUFBLENBQUMsR0FBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IseUNBQStDO0FBQy9DLDZDQUFtRCJ9
|
|
17
npmextra.json
Normal file
17
npmextra.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"npmci": {
|
||||||
|
"npmGlobalTools": [],
|
||||||
|
"npmAccessLevel": "public"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"projectType": "npm",
|
||||||
|
"module": {
|
||||||
|
"githost": "gitlab.com",
|
||||||
|
"gitscope": "pushrocks",
|
||||||
|
"gitrepo": "projectinfo",
|
||||||
|
"shortDescription": "gather information about projects. supports npm, git etc.",
|
||||||
|
"npmPackagename": "@pushrocks/projectinfo",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4705
package-lock.json
generated
Normal file
4705
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
44
package.json
44
package.json
@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "projectinfo",
|
"name": "@pushrocks/projectinfo",
|
||||||
"version": "1.0.4",
|
"version": "4.0.3",
|
||||||
|
"private": false,
|
||||||
"description": "gather information about projects. supports npm, git etc.",
|
"description": "gather information about projects. supports npm, git etc.",
|
||||||
"main": "dist/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npmts)"
|
"test": "(tstest test/)",
|
||||||
|
"build": "(tsbuild)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -25,14 +27,30 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/projectinfo#readme",
|
"homepage": "https://gitlab.com/pushrocks/projectinfo#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts-g": "^5.2.8",
|
"@gitzone/tsbuild": "^2.1.24",
|
||||||
"should": "^11.1.1",
|
"@gitzone/tsrun": "^1.2.12",
|
||||||
"typings-test": "^1.0.3"
|
"@gitzone/tstest": "^1.0.33",
|
||||||
|
"@pushrocks/tapbundle": "^3.2.1",
|
||||||
|
"@types/node": "^14.0.6",
|
||||||
|
"tslint": "^6.1.2",
|
||||||
|
"tslint-config-prettier": "^1.18.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"q": "^1.4.1",
|
"@pushrocks/smartfile": "^7.0.12",
|
||||||
"smartfile": "4.1.0",
|
"@pushrocks/smartpath": "^4.0.3",
|
||||||
"smartstring": "2.0.17",
|
"@pushrocks/smartpromise": "^3.0.6",
|
||||||
"typings-global": "^1.0.14"
|
"@pushrocks/smartstring": "^3.0.18"
|
||||||
}
|
},
|
||||||
|
"files": [
|
||||||
|
"ts/**/*",
|
||||||
|
"ts_web/**/*",
|
||||||
|
"dist/**/*",
|
||||||
|
"dist_*/**/*",
|
||||||
|
"dist_ts/**/*",
|
||||||
|
"dist_ts_web/**/*",
|
||||||
|
"assets/**/*",
|
||||||
|
"cli.js",
|
||||||
|
"npmextra.json",
|
||||||
|
"readme.md"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
1
test/test.d.ts
vendored
1
test/test.d.ts
vendored
@ -1 +0,0 @@
|
|||||||
import "typings-test";
|
|
40
test/test.js
40
test/test.js
@ -1,40 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-test");
|
|
||||||
var projectinfo = require("../dist/index.js");
|
|
||||||
var should = require("should");
|
|
||||||
var path = require("path");
|
|
||||||
var testBasePath = path.resolve(__dirname);
|
|
||||||
describe("projectinfo", function () {
|
|
||||||
describe(".npm() return", function () {
|
|
||||||
var myNpm = projectinfo.npm(testBasePath, { gitAccessToken: "sometoken" });
|
|
||||||
it("should have .packageJson", function () {
|
|
||||||
myNpm.packageJson
|
|
||||||
.should.have.property("version", "1.0.0");
|
|
||||||
myNpm.packageJson
|
|
||||||
.should.have.property("name", "testpackage");
|
|
||||||
});
|
|
||||||
it("should have .version", function () {
|
|
||||||
myNpm
|
|
||||||
.should.have.property("version", "1.0.0");
|
|
||||||
});
|
|
||||||
it("should have .name", function () {
|
|
||||||
myNpm
|
|
||||||
.should.have.property("name", "testpackage");
|
|
||||||
});
|
|
||||||
it("should have .license", function () {
|
|
||||||
myNpm
|
|
||||||
.should.have.property("license", "MIT");
|
|
||||||
});
|
|
||||||
it("should have .git", function () {
|
|
||||||
myNpm.git.httpsUrl
|
|
||||||
.should.equal("https://sometoken@github.com/someuser/somerepo.git");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
describe(".getName()", function () {
|
|
||||||
it("should return a name", function () {
|
|
||||||
projectinfo.getName(testBasePath)
|
|
||||||
.should.equal("testpackage");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFzQjtBQUN0QixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUM5QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFM0MsUUFBUSxDQUFDLGFBQWEsRUFBQztJQUNuQixRQUFRLENBQUMsZUFBZSxFQUFDO1FBQ3JCLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLEVBQUMsY0FBYyxFQUFDLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFDdkUsRUFBRSxDQUFDLDBCQUEwQixFQUFDO1lBQzFCLEtBQUssQ0FBQyxXQUFXO2lCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsV0FBVztpQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsS0FBSztpQkFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsbUJBQW1CLEVBQUM7WUFDbkIsS0FBSztpQkFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsS0FBSztpQkFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsa0JBQWtCLEVBQUM7WUFDbEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRO2lCQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksRUFBQztRQUNsQixFQUFFLENBQUMsc0JBQXNCLEVBQUM7WUFDdEIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7aUJBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@ -1 +0,0 @@
|
|||||||
{"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"}
|
|
63
test/test.ts
63
test/test.ts
@ -1,44 +1,31 @@
|
|||||||
import "typings-test";
|
import { tap, expect } from '@pushrocks/tapbundle';
|
||||||
var projectinfo = require("../dist/index.js");
|
import projectinfo = require('../ts/index');
|
||||||
var should = require("should");
|
|
||||||
var path = require("path");
|
|
||||||
var testBasePath = path.resolve(__dirname);
|
|
||||||
|
|
||||||
describe("projectinfo",function(){
|
let path = require('path');
|
||||||
describe(".npm() return",function(){
|
let testBasePath = path.resolve(__dirname);
|
||||||
var myNpm = projectinfo.npm(testBasePath,{gitAccessToken:"sometoken"});
|
|
||||||
it("should have .packageJson",function(){
|
|
||||||
myNpm.packageJson
|
|
||||||
.should.have.property("version","1.0.0");
|
|
||||||
myNpm.packageJson
|
|
||||||
.should.have.property("name","testpackage");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should have .version",function(){
|
let myNpm = new projectinfo.ProjectinfoNpm(testBasePath, { gitAccessToken: 'sometoken' });
|
||||||
myNpm
|
tap.test('should have .packageJson', async () => {
|
||||||
.should.have.property("version","1.0.0")
|
expect(myNpm.packageJson).have.property('version', '1.0.0');
|
||||||
});
|
expect(myNpm.packageJson).have.property('name', 'testpackage');
|
||||||
|
});
|
||||||
|
|
||||||
it("should have .name",function(){
|
tap.test('should have .version', async () => {
|
||||||
myNpm
|
expect(myNpm).have.property('version', '1.0.0');
|
||||||
.should.have.property("name","testpackage");
|
});
|
||||||
});
|
|
||||||
|
|
||||||
it("should have .license",function(){
|
tap.test('should have .name', async () => {
|
||||||
myNpm
|
expect(myNpm).have.property('name', 'testpackage');
|
||||||
.should.have.property("license","MIT");
|
});
|
||||||
});
|
|
||||||
it("should have .git",function(){
|
|
||||||
myNpm.git.httpsUrl
|
|
||||||
.should.equal("https://sometoken@github.com/someuser/somerepo.git");
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
tap.test('should have .license', async () => {
|
||||||
|
expect(myNpm).have.property('license', 'MIT');
|
||||||
|
});
|
||||||
|
tap.test('should have .git', async () => {
|
||||||
|
expect(myNpm.git.httpsUrl).equal('https://sometoken@github.com/someuser/somerepo.git');
|
||||||
|
});
|
||||||
|
tap.test('should return a name', async () => {
|
||||||
|
expect(projectinfo.getNpmNameForDir(testBasePath)).equal('testpackage');
|
||||||
|
});
|
||||||
|
|
||||||
describe(".getName()",function(){
|
tap.start();
|
||||||
it("should return a name",function(){
|
|
||||||
projectinfo.getName(testBasePath)
|
|
||||||
.should.equal("testpackage");
|
|
||||||
});
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
44
ts/index.ts
44
ts/index.ts
@ -1,27 +1,21 @@
|
|||||||
import "typings-global"
|
import plugins = require('./projectinfo.plugins');
|
||||||
import plugins = require("./projectinfo.plugins");
|
|
||||||
|
|
||||||
//npm
|
// direct access to classes
|
||||||
import {ProjectinfoNpm} from "./projectinfo.classes.npm";
|
export * from './projectinfo.classes.git';
|
||||||
export {ProjectinfoNpm} from "./projectinfo.classes.npm";
|
export * from './projectinfo.classes.npm';
|
||||||
export let npm = function(cwdArg,optionsArg){
|
export * from './projectinfo.classes.projectinfo';
|
||||||
return new ProjectinfoNpm(cwdArg,optionsArg);
|
|
||||||
|
// npm
|
||||||
|
import { ProjectinfoNpm } from './projectinfo.classes.npm';
|
||||||
|
|
||||||
|
// quick functions
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets the name from package.json in a specified directory
|
||||||
|
*/
|
||||||
|
export let getNpmNameForDir = function(cwdArg) {
|
||||||
|
let localNpm = new ProjectinfoNpm(cwdArg);
|
||||||
|
if (localNpm.status === 'ok') {
|
||||||
|
return localNpm.name;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//quick functions
|
|
||||||
export let getName = function(cwdArg){
|
|
||||||
var localNpm = new ProjectinfoNpm(cwdArg);
|
|
||||||
if (localNpm.status === "ok"){
|
|
||||||
return localNpm.name;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
projectinfo.git = function(){
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
projectinfo.mojo = function(){
|
|
||||||
|
|
||||||
};
|
|
||||||
*/
|
|
@ -1 +1,29 @@
|
|||||||
import "typings-global"
|
import * as plugins from './projectinfo.plugins';
|
||||||
|
|
||||||
|
export class ProjectinfoGit {
|
||||||
|
isGit: boolean;
|
||||||
|
githost: string;
|
||||||
|
gituser: string;
|
||||||
|
gitrepo: string;
|
||||||
|
cwd: string;
|
||||||
|
constructor(cwdArg: string) {
|
||||||
|
this.cwd = cwdArg;
|
||||||
|
this.getGitInfoFromPath();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get git info from path
|
||||||
|
*/
|
||||||
|
getGitInfoFromPath() {
|
||||||
|
let localSmartpath = new plugins.smartpath.Smartpath(this.cwd);
|
||||||
|
this.gitrepo = localSmartpath.pathLevelsBackwards[0];
|
||||||
|
this.gituser = localSmartpath.pathLevelsBackwards[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get git info from remote url
|
||||||
|
*/
|
||||||
|
getGitInfoFromRemote(remoteUrlArg: string) {
|
||||||
|
let gitRepoParsed = new plugins.smartstring.GitRepo(remoteUrlArg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,28 +1,31 @@
|
|||||||
import "typings-global"
|
import plugins = require('./projectinfo.plugins');
|
||||||
import plugins = require("./projectinfo.plugins");
|
export class ProjectinfoNpm {
|
||||||
export class ProjectinfoNpm {
|
isNpm: boolean = false;
|
||||||
packageJson;
|
packageJson: any;
|
||||||
name:string;
|
name: string;
|
||||||
version:string;
|
version: string;
|
||||||
status:string;
|
status: string;
|
||||||
license:string;
|
license: string;
|
||||||
git;
|
git: plugins.smartstring.GitRepo;
|
||||||
|
|
||||||
constructor(cwdArg:string,optionsArg:{gitAccessToken?:string} = {}){
|
constructor(cwdArg: string, optionsArg: { gitAccessToken?: string } = {}) {
|
||||||
this.packageJson = plugins.smartfile.fs.toObjectSync(
|
let resolvedCwd = plugins.path.resolve(cwdArg);
|
||||||
plugins.path.join(
|
if (plugins.smartfile.fs.fileExists(plugins.path.join(resolvedCwd, 'package.json'))) {
|
||||||
plugins.path.resolve(cwdArg),
|
this.isNpm = true;
|
||||||
"package.json"
|
this.packageJson = plugins.smartfile.fs.toObjectSync(
|
||||||
),
|
plugins.path.join(resolvedCwd, 'package.json'),
|
||||||
"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
|
||||||
);
|
);
|
||||||
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);
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
20
ts/projectinfo.classes.projectinfo.ts
Normal file
20
ts/projectinfo.classes.projectinfo.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import * as plugins from './projectinfo.plugins';
|
||||||
|
import { ProjectinfoNpm } from './projectinfo.classes.npm';
|
||||||
|
import { ProjectinfoGit } from './projectinfo.classes.git';
|
||||||
|
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;
|
||||||
|
git: ProjectinfoGit;
|
||||||
|
/**
|
||||||
|
* constructor of class ProjectInfo
|
||||||
|
*/
|
||||||
|
constructor(cwdArg: string) {
|
||||||
|
this.npm = new ProjectinfoNpm(cwdArg);
|
||||||
|
this.git = new ProjectinfoGit(cwdArg);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
import "typings-global"
|
import * as path from 'path';
|
||||||
export let path = require("path");
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
export let Q = require("q");
|
import * as smartfile from '@pushrocks/smartfile';
|
||||||
export import smartfile = require("smartfile");
|
import * as smartstring from '@pushrocks/smartstring';
|
||||||
export import smartstring = require("smartstring");
|
import * as smartpath from '@pushrocks/smartpath';
|
||||||
|
|
||||||
|
export { path, smartpromise, smartfile, smartstring, smartpath };
|
||||||
|
17
tslint.json
Normal file
17
tslint.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||||
|
"rules": {
|
||||||
|
"semicolon": [true, "always"],
|
||||||
|
"no-console": false,
|
||||||
|
"ordered-imports": false,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"member-ordering": {
|
||||||
|
"options":{
|
||||||
|
"order": [
|
||||||
|
"static-method"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultSeverity": "warning"
|
||||||
|
}
|
Reference in New Issue
Block a user