lincd-cli 0.2.36 → 0.2.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/defaults/app-with-backend/.prettierignore +2 -1
- package/lib/cli-methods.js +24 -1
- package/lib/cli.js +3 -0
- package/lib/config-grunt.js +2 -1
- package/lib/utils.js +57 -20
- package/package.json +2 -2
package/lib/cli-methods.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.executeCommandForPackage = exports.addCapacitor = exports.executeCommandForEachPackage = exports.buildUpdated = exports.publishPackage = exports.publishUpdated = exports.buildPackage = exports.buildMetadata = exports.register = exports.createPackage = exports.createComponent = exports.createSetComponent = exports.createShape = exports.createOntology = exports.getLincdPackages = exports.buildAll = exports.developPackage = exports.createApp = void 0;
|
|
38
|
+
exports.executeCommandForPackage = exports.addCapacitor = exports.executeCommandForEachPackage = exports.buildUpdated = exports.publishPackage = exports.publishUpdated = exports.buildPackage = exports.buildMetadata = exports.register = exports.createPackage = exports.depCheck = exports.createComponent = exports.createSetComponent = exports.createShape = exports.createOntology = exports.getLincdPackages = exports.buildAll = exports.developPackage = exports.createApp = void 0;
|
|
39
39
|
const path_1 = __importDefault(require("path"));
|
|
40
40
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
41
41
|
const utils_1 = require("./utils");
|
|
@@ -47,6 +47,7 @@ const JSONLDWriter_1 = require("lincd-jsonld/lib/utils/JSONLDWriter");
|
|
|
47
47
|
const NameSpace_1 = require("lincd/lib/utils/NameSpace");
|
|
48
48
|
const Prefix_1 = require("lincd/lib/utils/Prefix");
|
|
49
49
|
const get_env_vars_1 = require("env-cmd/dist/get-env-vars");
|
|
50
|
+
const depcheck_1 = __importDefault(require("depcheck"));
|
|
50
51
|
var glob = require('glob');
|
|
51
52
|
var variables = {};
|
|
52
53
|
var open = require('open');
|
|
@@ -706,6 +707,28 @@ const createComponent = (name, basePath = process.cwd()) => __awaiter(void 0, vo
|
|
|
706
707
|
}
|
|
707
708
|
});
|
|
708
709
|
exports.createComponent = createComponent;
|
|
710
|
+
const depCheck = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
711
|
+
(0, depcheck_1.default)(process.cwd(), {}, (results) => {
|
|
712
|
+
if (results.missing) {
|
|
713
|
+
let missing = Object.keys(results.missing);
|
|
714
|
+
//currently react is not an explicit dependency, but we should add it as a peer dependency
|
|
715
|
+
missing.splice(missing.indexOf("react"));
|
|
716
|
+
if (missing.length > 0) {
|
|
717
|
+
console.warn(chalk_1.default.red("Missing dependencies:\n\t" + missing.join(",\n\t")));
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
// if(Object.keys(results.invalidFiles).length > 0) {
|
|
721
|
+
// console.warn(chalk.red("Invalid files:\n")+Object.keys(results.invalidFiles).join(",\n"));
|
|
722
|
+
// }
|
|
723
|
+
// if(Object.keys(results.invalidDirs).length > 0) {
|
|
724
|
+
// console.warn(chalk.red("Invalid dirs:\n")+results.invalidDirs.toString());
|
|
725
|
+
// }
|
|
726
|
+
// if(results.unused) {
|
|
727
|
+
// console.warn("Unused dependencies: "+results.missing.join(", "));
|
|
728
|
+
// }
|
|
729
|
+
});
|
|
730
|
+
});
|
|
731
|
+
exports.depCheck = depCheck;
|
|
709
732
|
const createPackage = (name, uriBase, basePath = process.cwd()) => __awaiter(void 0, void 0, void 0, function* () {
|
|
710
733
|
//if ran with npx, basePath will be the root directory of the repository, even if we're executing from a sub folder (the root directory is where node_modules lives and package.json with workspaces)
|
|
711
734
|
//so we manually find a packages folder, if it exists we go into that.
|
package/lib/cli.js
CHANGED
|
@@ -110,6 +110,9 @@ program.command('all [action] [filter] [filter-value]').action((command, filter,
|
|
|
110
110
|
program.command('dev [target] [mode]').action((target, mode) => {
|
|
111
111
|
(0, cli_methods_1.developPackage)(target, mode);
|
|
112
112
|
});
|
|
113
|
+
program.command('depcheck').action((target, mode) => {
|
|
114
|
+
(0, cli_methods_1.depCheck)();
|
|
115
|
+
});
|
|
113
116
|
program
|
|
114
117
|
.command('package')
|
|
115
118
|
.action((name, command, args) => {
|
package/lib/config-grunt.js
CHANGED
|
@@ -75,7 +75,7 @@ function setupGrunt(grunt, moduleName, config) {
|
|
|
75
75
|
grunt.registerTask('build-es6', (0, utils_1.flatten)([
|
|
76
76
|
'prepare-build',
|
|
77
77
|
buildFrontend ? 'webpack:build-es6' : null,
|
|
78
|
-
buildServer ? ['clean:lib', 'exec:build-lib', 'copy:lib'] : null,
|
|
78
|
+
buildServer ? ['clean:lib', 'exec:build-lib', 'copy:lib', 'exec:depcheck'] : null,
|
|
79
79
|
// 'exec:shapes',
|
|
80
80
|
]));
|
|
81
81
|
grunt.registerTask('build-lib', ['prepare-build', 'exec:build-lib', 'copy:lib']);
|
|
@@ -96,6 +96,7 @@ function setupGrunt(grunt, moduleName, config) {
|
|
|
96
96
|
'build-lib-es5': 'yarn exec tsc --pretty -p tsconfig-es5.json',
|
|
97
97
|
beforeBuildCommand: config.beforeBuildCommand,
|
|
98
98
|
'server-dev': 'tsc -w',
|
|
99
|
+
depcheck: 'yarn lincd depcheck',
|
|
99
100
|
test: 'tsc -w',
|
|
100
101
|
// shapes: 'lincd shapes',
|
|
101
102
|
'css-declarations': 'tcm -p **/*.scss',
|
package/lib/utils.js
CHANGED
|
@@ -53,7 +53,6 @@ exports.getPackageJSON = getPackageJSON;
|
|
|
53
53
|
* @param packageJson
|
|
54
54
|
*/
|
|
55
55
|
var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
|
|
56
|
-
var _a;
|
|
57
56
|
if (!packageJson) {
|
|
58
57
|
packageJson = (0, exports.getPackageJSON)();
|
|
59
58
|
}
|
|
@@ -81,33 +80,71 @@ var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
if (firstTime) {
|
|
84
|
-
let dependencyMap = new Map();
|
|
83
|
+
// let dependencyMap:Map<string,Set<string>> = new Map();
|
|
85
84
|
let lincdPackageNames = new Set(lincdPackagePaths.map(([packageName, modulePath, pkgDependencies]) => packageName));
|
|
86
85
|
//remove lincd-cli from the list of lincd packages
|
|
87
86
|
lincdPackageNames.delete('lincd-cli');
|
|
88
|
-
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
|
|
89
|
-
|
|
87
|
+
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies], key) => {
|
|
88
|
+
let lincdDependencies = pkgDependencies.filter(dependency => lincdPackageNames.has(dependency));
|
|
89
|
+
if (packageName === 'lincd-cli') {
|
|
90
|
+
//remove lincd-modules from the dependencies of lincd-cli (it's not a hard dependency, and it messes things up)
|
|
91
|
+
lincdDependencies.splice(lincdDependencies.indexOf('lincd-modules'), 1);
|
|
92
|
+
}
|
|
93
|
+
// dependencyMap.set(packageName, new Set(lincdDependencies));
|
|
94
|
+
//update dependencies to be the actual lincd package objects
|
|
95
|
+
lincdPackagePaths[key][2] = lincdDependencies;
|
|
90
96
|
});
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
// //add the nested dependencies for each lincd package
|
|
98
|
+
// for (let [packageName,pkgDependencies] of dependencyMap) {
|
|
99
|
+
// pkgDependencies.forEach((dependency) => {
|
|
100
|
+
// if (dependencyMap.has(dependency)) {
|
|
101
|
+
// dependencyMap.get(dependency).forEach((nestedDependency) => {
|
|
102
|
+
// pkgDependencies.add(nestedDependency);
|
|
103
|
+
// });
|
|
104
|
+
// }
|
|
105
|
+
// });
|
|
106
|
+
// }
|
|
107
|
+
//
|
|
108
|
+
// dependencyMap.forEach((dependencies,packageName) => {
|
|
109
|
+
// //check for circular dependencies
|
|
110
|
+
// if([...dependencies].some(dependency => {
|
|
111
|
+
// return dependencyMap.get(dependency).has(packageName);
|
|
112
|
+
// }))
|
|
113
|
+
// {
|
|
114
|
+
// console.warn(`Circular dependency detected between ${packageName} and ${dependency}`);
|
|
115
|
+
// }
|
|
116
|
+
//
|
|
117
|
+
// });
|
|
118
|
+
// a simple sort with dependencyMap doesn't seem to work,so we start with LINCD (least dependencies) and from there add packages that have all their dependencies already added
|
|
119
|
+
let sortedPackagePaths = [];
|
|
120
|
+
let addedPackages = new Set(['lincd']);
|
|
121
|
+
sortedPackagePaths.push(lincdPackagePaths.find(([packageName]) => {
|
|
122
|
+
return packageName === 'lincd';
|
|
123
|
+
}));
|
|
124
|
+
while (addedPackages.size !== lincdPackagePaths.length) {
|
|
125
|
+
let startSize = addedPackages.size;
|
|
126
|
+
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
|
|
127
|
+
if (!addedPackages.has(packageName) && pkgDependencies.every(dependency => addedPackages.has(dependency))) {
|
|
128
|
+
sortedPackagePaths.push([packageName, modulePath, pkgDependencies]);
|
|
129
|
+
addedPackages.add(packageName);
|
|
100
130
|
}
|
|
101
131
|
});
|
|
132
|
+
if (startSize === addedPackages.size) {
|
|
133
|
+
console.warn('Could not sort lincd packages, circular dependencies?');
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
102
136
|
}
|
|
103
137
|
//sort the lincd packages by least dependent first
|
|
104
|
-
lincdPackagePaths.sort(([packageNameA
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
138
|
+
// lincdPackagePaths = lincdPackagePaths.sort(([packageNameA],[packageNameB]) => {
|
|
139
|
+
// //if package A depends on package B, then package B should come first
|
|
140
|
+
// if (dependencyMap.get(packageNameA).has(packageNameB)) {
|
|
141
|
+
// console.log(packageNameA+' depends on '+packageNameB+ ' (below)')
|
|
142
|
+
// return 1;
|
|
143
|
+
// }
|
|
144
|
+
// console.log(packageNameA+' above '+packageNameB)
|
|
145
|
+
// return -1;
|
|
146
|
+
// });
|
|
147
|
+
return sortedPackagePaths;
|
|
111
148
|
}
|
|
112
149
|
return lincdPackagePaths;
|
|
113
150
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lincd-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.37",
|
|
4
4
|
"description": "Command line tools for the lincd.js library",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
"build": "npm exec tsc",
|
|
9
9
|
"dev": "npm exec tsc -w"
|
|
10
10
|
},
|
|
11
|
-
"lincd": true,
|
|
12
11
|
"keywords": [
|
|
13
12
|
"lincd",
|
|
14
13
|
"cli",
|
|
@@ -45,6 +44,7 @@
|
|
|
45
44
|
"commander": "^9.4.0",
|
|
46
45
|
"copy-webpack-plugin": "^11.0.0",
|
|
47
46
|
"css-loader": "^6.7.1",
|
|
47
|
+
"depcheck": "^1.4.3",
|
|
48
48
|
"env-cmd": "^10.1.0",
|
|
49
49
|
"find-nearest-package-json": "^2.0.1",
|
|
50
50
|
"fs-extra": "^10.1.0",
|