Skip to content

Commit a1d8904

Browse files
authored
Merge pull request #12 from geeklearningio/feature/ts
Switch to typescript
2 parents d3908ea + 327bb58 commit a1d8904

24 files changed

+2233
-157
lines changed

clean.js

Lines changed: 0 additions & 28 deletions
This file was deleted.

dist/clean.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var fs = require("fs-extra");
4+
var path = require("path");
5+
var tasks = require("./tasks");
6+
var lodash_1 = require("lodash");
7+
var minimist = require("minimist");
8+
var options = minimist(process.argv.slice(2), {});
9+
fs.emptyDirSync('.BuildOutput');
10+
lodash_1.forEach(tasks.getTasks(options.taskroot), function (task) {
11+
var targetNodeCommonDir = path.join(task.directory, "common");
12+
var taskNodeModules = path.join(task.directory, "node_modules");
13+
var targetPowershellCommonDir = path.join(task.directory, "ps_modules");
14+
fs.removeSync(targetNodeCommonDir);
15+
fs.removeSync(targetPowershellCommonDir);
16+
if (options.modules == "true") {
17+
fs.removeSync(taskNodeModules);
18+
}
19+
;
20+
});

dist/extension-version.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var minimist = require("minimist");
4+
var semver = require("semver");
5+
function getSemanticVersion() {
6+
var options = minimist(process.argv.slice(2), {});
7+
var version = options.version;
8+
if (!version) {
9+
version = "0.0.0";
10+
console.log('No version argument provided, fallback to default version: ' + version);
11+
}
12+
else {
13+
console.log('Found version: ' + version);
14+
}
15+
if (!semver.valid(version)) {
16+
throw new Error('Package: invalid semver version: ' + version);
17+
}
18+
var patch = semver.patch(version);
19+
if (!options.noversiontransform) {
20+
patch *= 1000;
21+
var prerelease = semver.prerelease(version);
22+
if (prerelease) {
23+
;
24+
patch += parseInt(prerelease[1]);
25+
}
26+
else {
27+
patch += 999;
28+
}
29+
}
30+
var result = {
31+
major: semver.major(version),
32+
minor: semver.minor(version),
33+
patch: patch,
34+
getVersionString: function () {
35+
return this.major.toString() + '.' + this.minor.toString() + '.' + this.patch.toString();
36+
}
37+
};
38+
console.log('Extension Version: ' + result.getVersionString());
39+
return result;
40+
}
41+
exports.getSemanticVersion = getSemanticVersion;
42+
;

dist/install.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var async_1 = require("async");
4+
var path = require("path");
5+
var child_process_1 = require("child_process");
6+
var tasks_1 = require("./tasks");
7+
var npmInstall = function (project) {
8+
return function (done) {
9+
var child = child_process_1.exec('npm install', {
10+
cwd: project.directory
11+
}, function (error, stdout, stderr) {
12+
if (error) {
13+
console.error('execution error:', error);
14+
done(error);
15+
return;
16+
}
17+
console.log("npm install done for " + project.name);
18+
if (stdout) {
19+
console.log(stdout);
20+
}
21+
if (stderr) {
22+
console.error(stderr);
23+
}
24+
var nodeModulesPath = path.join(project.directory, 'node_modules');
25+
var powerShellModules = require("glob").sync(path.join(project.directory, "node_modules", "**", "*.psm1"));
26+
if (powerShellModules.length > 0) {
27+
var fs = require("fs-extra");
28+
var taskFilePath = path.join(project.directory, 'task.json');
29+
var task = fs.existsSync(taskFilePath) ? fs.readJsonSync(taskFilePath) : {};
30+
if (task.execution.PowerShell3) {
31+
var psModulesPath = path.join(project.directory, 'ps_modules');
32+
fs.ensureDirSync(psModulesPath);
33+
for (var i = 0; i < powerShellModules.length; i++) {
34+
var powerShellModulePath = powerShellModules[i];
35+
var powerShellModuleDirName = path.dirname(powerShellModulePath);
36+
var powerShellModuleFolderName = path.basename(powerShellModuleDirName);
37+
fs.copySync(powerShellModuleDirName, path.join(psModulesPath, powerShellModuleFolderName), { clobber: true, dereference: true });
38+
console.log(powerShellModuleFolderName + " copied in ps_modules for " + project.name);
39+
}
40+
}
41+
}
42+
done();
43+
});
44+
};
45+
};
46+
var installTasks = tasks_1.getTasks().map(npmInstall);
47+
installTasks.unshift(npmInstall({
48+
directory: __dirname,
49+
name: "BuildScripts"
50+
}));
51+
async_1.series(installTasks, function (err) {
52+
if (err) {
53+
console.error("Failed to install child dependencies");
54+
throw err;
55+
}
56+
});

dist/node-modclean.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var minimist = require("minimist");
4+
var tasks = require("./tasks");
5+
var async_1 = require("async");
6+
var path = require("path");
7+
var fs = require("fs");
8+
var modclean = require('modclean');
9+
var runModclean = function (project) {
10+
return function (done) {
11+
if (fs.existsSync(path.join(project.directory, "node_modules"))) {
12+
var modcleanOptions = {
13+
cwd: project.directory
14+
};
15+
var options = minimist(process.argv.slice(2), {});
16+
if (options.patterns) {
17+
modcleanOptions.patterns = options.patterns.split(',');
18+
}
19+
if (options.additionalpatterns) {
20+
modcleanOptions.additionalPatterns = options.additionalpatterns.split(',');
21+
}
22+
if (options.ignorepatterns) {
23+
modcleanOptions.ignorePatterns = options.ignorepatterns.split(',');
24+
}
25+
modclean(modcleanOptions, function (err, results) {
26+
// called once cleaning is complete.
27+
if (err) {
28+
console.error("exec error: " + err);
29+
done(err);
30+
return;
31+
}
32+
console.log(results.length + " files removed!");
33+
done();
34+
});
35+
}
36+
else {
37+
console.log("modclean skipped for " + project.name);
38+
done();
39+
}
40+
};
41+
};
42+
var cleanTasks = tasks.getTasks().map(runModclean);
43+
async_1.series(cleanTasks, function (err) {
44+
if (err) {
45+
console.error("Failed to run modclean");
46+
throw err;
47+
}
48+
});
Lines changed: 24 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,73 @@
1-
var path = require('path');
2-
var exec = require('child_process').exec;
3-
4-
var fs = require('fs-extra');
5-
var series = require("async/series");
6-
7-
var extensionVersion = require('./extension-version.js');
8-
var tasks = require('./tasks.js');
9-
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var path = require("path");
4+
var child_process_1 = require("child_process");
5+
var fs = require("fs-extra");
6+
var async_1 = require("async");
7+
var extension_version_1 = require("./extension-version");
8+
var tasks = require("./tasks");
9+
;
1010
var currentDirectory = process.cwd();
1111
var buildOutputDirectory = path.join(currentDirectory, '.BuildOutput');
1212
var extensionDirectory = path.join(currentDirectory, 'Extension');
1313
var tasksDirectory = path.join(currentDirectory, 'Tasks');
14-
1514
fs.ensureDirSync(buildOutputDirectory);
16-
17-
var version = extensionVersion.getSemanticVersion();
18-
15+
var version = extension_version_1.getSemanticVersion();
1916
var configuration = require(path.join(currentDirectory, 'configuration.json'));
20-
var createExtensionTasks = configuration.environments.map((env) => {
21-
17+
var createExtensionTasks = configuration.environments.map(function (env) {
2218
var environmentDirectory = path.join(buildOutputDirectory, env.Name);
2319
var environmentTasksDirectory = path.join(environmentDirectory, 'Tasks');
2420
fs.ensureDirSync(environmentDirectory);
25-
26-
fs.copySync(extensionDirectory, environmentDirectory, { clobber: true, dereference: true });
27-
fs.copySync(tasksDirectory, environmentTasksDirectory, { clobber: true, dereference: true });
28-
21+
fs.copySync(extensionDirectory, environmentDirectory, { overwrite: true, dereference: true });
22+
fs.copySync(tasksDirectory, environmentTasksDirectory, { overwrite: true, dereference: true });
2923
var extensionFilePath = path.join(environmentDirectory, 'vss-extension.json');
3024
var extension = fs.readJsonSync(extensionFilePath);
31-
3225
extension.id += env.VssExtensionIdSuffix;
3326
extension.name += env.DisplayNamesSuffix;
3427
extension.version = version.getVersionString();
3528
extension.galleryFlags = env.VssExtensionGalleryFlags;
36-
extension.contributions = [];
37-
38-
var patchTasks = tasks.getTasks(environmentTasksDirectory).map((taskDirectory) => {
29+
if (extension.contributions === undefined) {
30+
extension.contributions = [];
31+
}
32+
var patchTasks = tasks.getTasks(environmentTasksDirectory).map(function (taskDirectory) {
3933
var taskFilePath = path.join(taskDirectory.directory, 'task.json');
4034
var task = fs.readJsonSync(taskFilePath);
41-
4235
task.id = env.TaskIds[taskDirectory.name];
4336
if (task.id) {
4437
task.friendlyName += env.DisplayNamesSuffix;
45-
4638
task.version.Major = version.major;
4739
task.version.Minor = version.minor;
4840
task.version.Patch = version.patch;
4941
if (task.helpMarkDown) {
5042
task.helpMarkDown = task.helpMarkDown.replace('#{Version}#', version.getVersionString());
5143
}
52-
5344
fs.writeJsonSync(taskFilePath, task);
54-
5545
var taskLocFilePath = path.join(taskDirectory.directory, 'task.loc.json');
5646
if (fs.existsSync(taskLocFilePath)) {
5747
var taskLoc = fs.readJsonSync(taskLocFilePath);
5848
taskLoc.id = env.TaskIds[taskDirectory.name];
5949
taskLoc.friendlyName += env.DisplayNamesSuffix;
60-
6150
taskLoc.version.Major = version.major;
6251
taskLoc.version.Minor = version.minor;
6352
taskLoc.version.Patch = version.patch;
6453
if (taskLoc.helpMarkDown) {
6554
taskLoc.helpMarkDown = taskLoc.helpMarkDown.replace('#{Version}#', version.getVersionString());
6655
}
67-
6856
fs.writeJsonSync(taskLocFilePath, taskLoc);
69-
7057
var locfilesDirectory = path.join(taskDirectory.directory, 'Strings/resources.resjson');
7158
if (fs.existsSync(locfilesDirectory)) {
7259
var langs = fs.readdirSync(locfilesDirectory);
7360
for (var index = 0; index < langs.length; index++) {
7461
var element = langs[index];
7562
var resourceFile = path.join(locfilesDirectory, element, "resources.resjson");
76-
if (fs.existsSync(resourceFile)){
63+
if (fs.existsSync(resourceFile)) {
7764
var resource = fs.readJsonSync(resourceFile);
7865
resource["loc.helpMarkDown"] = resource["loc.helpMarkDown"].replace('#{Version}#', version.getVersionString());
7966
fs.writeJsonSync(resourceFile, resource);
8067
}
8168
}
8269
}
8370
}
84-
85-
86-
8771
var taskId = taskDirectory.name.replace(/([A-Z])/g, '-$1').toLowerCase().replace(/^[-]+/, "");
8872
extension.contributions.push({
8973
id: taskId + "-task",
@@ -101,40 +85,31 @@ var createExtensionTasks = configuration.environments.map((env) => {
10185
fs.removeSync(taskDirectory.directory);
10286
}
10387
});
104-
10588
fs.writeJsonSync(extensionFilePath, extension);
106-
10789
var cmdline = 'tfx extension create --root "' + environmentDirectory
10890
+ '" --manifest-globs "' + extensionFilePath
10991
+ '" --output-path "' + environmentDirectory + '"';
110-
111-
return (done) => {
112-
var child = exec(cmdline, {}, (error, stdout, stderr) => {
113-
92+
return function (done) {
93+
var child = child_process_1.exec(cmdline, {}, function (error, stdout, stderr) {
11494
if (error) {
115-
console.error(`exec error: ${error}`);
95+
console.error("exec error: " + error);
11696
done(error);
11797
return;
11898
}
119-
120-
console.log(`tfx extension create done for ${env.Name}`);
121-
99+
console.log("tfx extension create done for " + env.Name);
122100
if (stdout) {
123101
console.log(stdout);
124102
}
125-
126103
if (stderr) {
127104
console.error(stderr);
128105
}
129-
130106
done();
131107
});
132108
};
133109
});
134-
135-
series(createExtensionTasks, (err) => {
110+
async_1.series(createExtensionTasks, function (err) {
136111
if (err) {
137112
console.error("Failed to create extensions.");
138113
throw err;
139114
}
140-
});
115+
});

0 commit comments

Comments
 (0)