aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/postpublish_utils.js66
1 files changed, 44 insertions, 22 deletions
diff --git a/scripts/postpublish_utils.js b/scripts/postpublish_utils.js
index 7ce01189c..0a8c6f94d 100644
--- a/scripts/postpublish_utils.js
+++ b/scripts/postpublish_utils.js
@@ -1,3 +1,4 @@
+const _ = require('lodash');
const execAsync = require('async-child-process').execAsync;
const semverSort = require('semver-sort');
const publishRelease = require('publish-release');
@@ -11,23 +12,22 @@ module.exports = {
getLatestTagAndVersionAsync: function(subPackageName) {
const subPackagePrefix = subPackageName + '@';
const gitTagsCommand = 'git tag -l "' + subPackagePrefix + '*"';
- return execAsync(gitTagsCommand)
- .then(function(result) {
- if (result.stderr !== '') {
- throw new Error(result.stderr);
- }
- const tags = result.stdout.trim().split('\n');
- const versions = tags.map(function(tag) {
- return tag.slice(subPackagePrefix.length);
- });
- const sortedVersions = semverSort.desc(versions);
- const latestVersion = sortedVersions[0];
- const latestTag = subPackagePrefix + latestVersion;
- return {
- tag: latestTag,
- version: latestVersion
- };
+ return execAsync(gitTagsCommand).then(function(result) {
+ if (result.stderr !== '') {
+ throw new Error(result.stderr);
+ }
+ const tags = result.stdout.trim().split('\n');
+ const versions = tags.map(function(tag) {
+ return tag.slice(subPackagePrefix.length);
});
+ const sortedVersions = semverSort.desc(versions);
+ const latestVersion = sortedVersions[0];
+ const latestTag = subPackagePrefix + latestVersion;
+ return {
+ tag: latestTag,
+ version: latestVersion,
+ };
+ });
},
publishReleaseNotesAsync: function(tag, releaseName, assets) {
console.log('POSTPUBLISH: Releasing ', releaseName, '...');
@@ -43,7 +43,7 @@ module.exports = {
reuseRelease: true,
reuseDraftOnly: false,
assets: assets,
- });
+ });
},
getReleaseName(subPackageName, version) {
const releaseName = subPackageName + ' v' + version;
@@ -51,14 +51,36 @@ module.exports = {
},
standardPostPublishAsync: function(subPackageName) {
return this.getLatestTagAndVersionAsync(subPackageName)
- .then(function(result) {
- const releaseName = this.getReleaseName(subPackageName, result.version);
- const assets = [];
- return this.publishReleaseNotesAsync(result.tag, releaseName, assets);
- }.bind(this))
+ .then(
+ function(result) {
+ const releaseName = this.getReleaseName(subPackageName, result.version);
+ const assets = [];
+ return this.publishReleaseNotesAsync(result.tag, releaseName, assets);
+ }.bind(this)
+ )
.catch(function(err) {
throw err;
});
},
+ adjustFileIncludePaths: function(fileIncludes, cwd) {
+ const fileIncludesAdjusted = _.map(fileIncludes, fileInclude => {
+ let path;
+ if (_.startsWith(fileInclude, '../')) {
+ path = cwd + '/../' + fileInclude;
+ } else if (_.startsWith(fileInclude, './')) {
+ path = cwd + '/../' + fileInclude.substr(2);
+ } else {
+ path = cwd + '/' + fileInclude;
+ }
+
+ // HACK: tsconfig.json needs wildcard directory endings as `/**/*`
+ // but TypeDoc needs it as `/**` in order to pick up files at the root
+ if (_.endsWith(path, '/**/*')) {
+ path = path.slice(0, -2);
+ }
+ return path;
+ });
+ return fileIncludesAdjusted;
+ },
generatedDocsDirectoryName,
};