From 86e06fb8a63bbc08fb47e7fb5f28130af9a4c1ea Mon Sep 17 00:00:00 2001 From: zkochan Date: Fri, 10 Nov 2017 23:14:00 +0200 Subject: [PATCH] style: update --- package.json | 5 +++- shrinkwrap.yaml | 44 +++++++++++++++++++++++++++++++++ src/index.ts | 66 ++++++++++++++++++++++++------------------------- tsconfig.json | 7 ++---- tslint.json | 2 ++ 5 files changed, 85 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 7f98d821ca..ecb8b3d13a 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "lib" ], "scripts": { - "test": "preview && ts-node test && mos t", + "fix": "tslint -c tslint.json --project . --fix", + "lint": "tslint -c tslint.json --project .", + "test": "npm run lint && preview && ts-node test && mos t", "prepublishOnly": "tsc", "tsc": "tsc", "md": "preview && tsc && mos" @@ -48,6 +50,7 @@ "pnpm-logger": "^0.6.2", "tape": "^4.7.0", "ts-node": "^3.3.0", + "tslint": "^5.8.0", "typescript": "^2.4.1" }, "mos": { diff --git a/shrinkwrap.yaml b/shrinkwrap.yaml index a60f6f6249..14d3072c5a 100644 --- a/shrinkwrap.yaml +++ b/shrinkwrap.yaml @@ -12,6 +12,7 @@ devDependencies: pnpm-logger: 0.6.2 tape: 4.8.0 ts-node: 3.3.0 + tslint: 5.8.0 typescript: 2.5.3 packages: /@pnpm/exec/1.1.1: @@ -574,6 +575,10 @@ packages: dev: true resolution: integrity: sha1-EoGcZPr5VEbsCuB/5sr7brNwiyI= + /commander/2.11.0: + dev: true + resolution: + integrity: sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== /concat-map/0.0.1: resolution: integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= @@ -2314,6 +2319,12 @@ packages: dev: true resolution: integrity: sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q== + /resolve/1.5.0: + dependencies: + path-parse: 1.0.5 + dev: true + resolution: + integrity: sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw== /resumer/0.0.0: dependencies: through: 2.3.8 @@ -2754,6 +2765,38 @@ packages: dev: true resolution: integrity: sha1-aw6DdgA9evGGT434+J3QBZ/80DI= + /tslib/1.8.0: + dev: true + resolution: + integrity: sha512-ymKWWZJST0/CkgduC2qkzjMOWr4bouhuURNXCn/inEX0L57BnRG6FhX76o7FOnsjHazCjfU2LKeSrlS2sIKQJg== + /tslint/5.8.0: + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.3.0 + commander: 2.11.0 + diff: 3.4.0 + glob: 7.1.2 + minimatch: 3.0.4 + resolve: 1.5.0 + semver: 5.4.1 + tslib: 1.8.0 + tsutils: 2.12.2 + dev: true + engines: + node: '>=4.1.2' + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev' + resolution: + integrity: sha1-H0mtWy53x2w69N3K5VKuTjYS6xM= + /tsutils/2.12.2: + dependencies: + tslib: 1.8.0 + dev: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >= 2.4.0-dev || >= 2.5.0-dev || >= 2.6.0-dev || >= 2.7.0-dev || >= 2.8.0-dev' + resolution: + integrity: sha1-rVikhl0X7D3bZjG2ylO+FKVlb/M= /typescript/2.5.3: dev: true engines: @@ -2957,4 +3000,5 @@ specifiers: semver: ^5.3.0 tape: ^4.7.0 ts-node: ^3.3.0 + tslint: ^5.8.0 typescript: ^2.4.1 diff --git a/src/index.ts b/src/index.ts index 17ed57f873..6a06e7ac45 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,18 @@ +import assert = require('assert') +import {refToAbsolute, refToRelative} from 'dependency-path' import { readPrivate, - Shrinkwrap, ResolvedPackages, + Shrinkwrap, } from 'pnpm-shrinkwrap' import semver = require('semver') -import {refToAbsolute, refToRelative} from 'dependency-path' -import assert = require('assert') export type PackageSelector = string | { name: string, range: string, } -export type PackageNode = { +export interface PackageNode { pkg: { name: string, version: string, @@ -23,13 +23,13 @@ export type PackageNode = { circular?: true, } -export function forPackages ( +export function forPackages( packages: PackageSelector[], projectPath: string, opts?: { depth: number, only?: 'dev' | 'prod', - } + }, ) { assert(packages, 'packages should be defined') if (!packages.length) return [] @@ -37,59 +37,59 @@ export function forPackages ( return dependenciesHierarchy(projectPath, packages, opts) } -export default function ( +export default function( projectPath: string, opts?: { depth: number, only?: 'dev' | 'prod', - } + }, ) { return dependenciesHierarchy(projectPath, [], opts) } -async function dependenciesHierarchy ( +async function dependenciesHierarchy( projectPath: string, searched: PackageSelector[], - opts?: { + maybeOpts?: { depth: number, only?: 'dev' | 'prod', - } + }, ): Promise { - const _opts = Object.assign({}, { + const opts = Object.assign({}, { depth: 0, only: undefined, - }, opts) + }, maybeOpts) const shrinkwrap = await readPrivate(projectPath, {ignoreIncompatible: false}) if (!shrinkwrap) return [] - const topDeps = getTopDependencies(shrinkwrap, _opts) + const topDeps = getTopDependencies(shrinkwrap, opts) if (!topDeps) return [] const getChildrenTree = getTree.bind(null, { currentDepth: 1, - maxDepth: _opts.depth, - prod: _opts.only === 'prod', - searched, + maxDepth: opts.depth, + prod: opts.only === 'prod', registry: shrinkwrap.registry, + searched, }, shrinkwrap.packages) const result: PackageNode[] = [] - Object.keys(topDeps).forEach(depName => { + Object.keys(topDeps).forEach((depName) => { const relativeId = refToRelative(topDeps[depName], depName) const pkgPath = refToAbsolute(topDeps[depName], depName, shrinkwrap.registry) const pkg = { name: depName, - version: topDeps[depName], path: pkgPath, + version: topDeps[depName], } const dependencies = getChildrenTree([relativeId], relativeId) let newEntry: PackageNode | null = null const matchedSearched = searched.length && matches(searched, pkg) if (dependencies.length) { newEntry = { - pkg, dependencies, + pkg, } } else if (!searched.length || matches(searched, pkg)) { newEntry = {pkg} @@ -104,11 +104,11 @@ async function dependenciesHierarchy ( return result } -function getTopDependencies ( +function getTopDependencies( shrinkwrap: Shrinkwrap, opts: { only?: 'dev' | 'prod', - } + }, ) { switch (opts.only) { case 'prod': @@ -119,12 +119,12 @@ function getTopDependencies ( return Object.assign({}, shrinkwrap.dependencies, shrinkwrap.devDependencies, - shrinkwrap.optionalDependencies + shrinkwrap.optionalDependencies, ) } } -function getTree ( +function getTree( opts: { currentDepth: number, maxDepth: number, @@ -134,7 +134,7 @@ function getTree ( }, packages: ResolvedPackages, keypath: string[], - parentId: string + parentId: string, ): PackageNode[] { if (opts.currentDepth > opts.maxDepth || !packages[parentId]) return [] @@ -142,7 +142,7 @@ function getTree ( ? packages[parentId].dependencies : Object.assign({}, packages[parentId].dependencies, - packages[parentId].optionalDependencies + packages[parentId].optionalDependencies, ) if (!deps) return [] @@ -151,14 +151,14 @@ function getTree ( currentDepth: opts.currentDepth + 1, }), packages) - let result: PackageNode[] = [] - Object.keys(deps).forEach(depName => { + const result: PackageNode[] = [] + Object.keys(deps).forEach((depName) => { const pkgPath = refToAbsolute(deps[depName], depName, opts.registry) const relativeId = refToRelative(deps[depName], depName) const pkg = { name: depName, - version: deps[depName], path: pkgPath, + version: deps[depName], } const circular = keypath.indexOf(relativeId) !== -1 const dependencies = circular ? [] : getChildrenTree(keypath.concat([relativeId]), relativeId) @@ -166,8 +166,8 @@ function getTree ( const matchedSearched = opts.searched.length && matches(opts.searched, pkg) if (dependencies.length) { newEntry = { - pkg, dependencies, + pkg, } } else if (!opts.searched.length || matchedSearched) { newEntry = {pkg} @@ -185,11 +185,11 @@ function getTree ( return result } -function matches ( +function matches( searched: PackageSelector[], - pkg: {name: string, version: string} + pkg: {name: string, version: string}, ) { - return searched.some(searchedPkg => { + return searched.some((searchedPkg) => { if (typeof searchedPkg === 'string') { return pkg.name === searchedPkg } diff --git a/tsconfig.json b/tsconfig.json index 974602c5b2..e1c5b75154 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,14 +14,11 @@ "module": "commonjs", "moduleResolution": "node" }, - "filesGlob": [ + "include": [ "src/**/*.ts", "typings/**/*.d.ts" ], "atom": { "rewriteTsconfig": true - }, - "files": [ - "src/index.ts" - ] + } } diff --git a/tslint.json b/tslint.json index 7891ff2b2c..60ea406f4a 100644 --- a/tslint.json +++ b/tslint.json @@ -1,4 +1,5 @@ { + "extends": "tslint:recommended", "rules": { "curly": false, "eofline": false, @@ -15,6 +16,7 @@ "no-use-before-declare": true, "no-var-requires": true, "no-require-imports": false, + "interface-name": [true, "never-prefix"], "one-line": [true, "check-else", "check-whitespace",