aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-03-13 17:25:10 +0800
committerFabio Berger <me@fabioberger.com>2018-03-13 17:25:10 +0800
commit7ac646ff94bfa996abab6fca5000a06acb66a898 (patch)
tree74a1f6302ff4b6425bf100eb3e51015fd5b24825
parentef6aa9f41b9f21d033034c51e8880ec9d70b6b40 (diff)
downloaddexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar.gz
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar.bz2
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar.lz
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar.xz
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.tar.zst
dexon-sol-tools-7ac646ff94bfa996abab6fca5000a06acb66a898.zip
Move monorepo_scripts into src dir removing the need for a separate globals.d.ts and tsconfig files
-rw-r--r--packages/0x.js/monorepo_scripts/globals.d.ts12
-rw-r--r--packages/0x.js/package.json5
-rw-r--r--packages/0x.js/scripts/postpublish.js47
-rw-r--r--packages/0x.js/scripts/stagedocs.js31
-rw-r--r--packages/0x.js/src/globals.d.ts7
-rw-r--r--packages/0x.js/src/monorepo_scripts/postpublish.ts (renamed from packages/0x.js/monorepo_scripts/postpublish.ts)0
-rw-r--r--packages/0x.js/src/monorepo_scripts/stagedocs.ts (renamed from packages/0x.js/monorepo_scripts/stagedocs.ts)0
-rw-r--r--packages/0x.js/tsconfig_monorepo.json9
-rw-r--r--scripts/postpublish_utils.js86
9 files changed, 9 insertions, 188 deletions
diff --git a/packages/0x.js/monorepo_scripts/globals.d.ts b/packages/0x.js/monorepo_scripts/globals.d.ts
deleted file mode 100644
index bbfbdaa6a..000000000
--- a/packages/0x.js/monorepo_scripts/globals.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-declare module 'async-child-process';
-declare module 'publish-release';
-
-// semver-sort declarations
-declare module 'semver-sort' {
- const desc: (versions: string[]) => string[];
-}
-
-declare module '*.json' {
- const value: any;
- export default value;
-}
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index 54f9ba1ad..16537ba4d 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -14,7 +14,7 @@
"scripts": {
"build:watch": "tsc -w",
"prebuild": "run-s clean generate_contract_wrappers",
- "build": "run-p build:scripts build:umd:prod build:commonjs; exit 0;",
+ "build": "run-p build:umd:prod build:commonjs; exit 0;",
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES",
"upload_docs_json": "aws s3 cp generated_docs/index.json $S3_URL --profile 0xproject --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json",
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis 'src/artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry|DummyToken).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
@@ -26,8 +26,7 @@
"update_contracts": "for i in ${npm_package_config_artifacts}; do copyfiles -u 4 ../contracts/build/contracts/$i.json ../0x.js/src/artifacts; done;",
"clean": "shx rm -rf _bundles lib test_temp",
"build:umd:prod": "NODE_ENV=production webpack",
- "build:commonjs": "tsc && copyfiles -u 2 './src/artifacts/**/*.json' ./lib/src/artifacts;",
- "build:scripts": "tsc --p ./tsconfig_monorepo.json",
+ "build:commonjs": "tsc && copyfiles -u 2 './src/artifacts/**/*.json' ./lib/src/artifacts && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
"test:commonjs": "run-s build:commonjs run_mocha",
"run_mocha": "mocha lib/test/**/*_test.js --timeout 10000 --bail --exit"
},
diff --git a/packages/0x.js/scripts/postpublish.js b/packages/0x.js/scripts/postpublish.js
deleted file mode 100644
index 1a9ab73ea..000000000
--- a/packages/0x.js/scripts/postpublish.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const execAsync = require('async-child-process').execAsync;
-const postpublish_utils = require('../../../scripts/postpublish_utils');
-const packageJSON = require('../package.json');
-const tsConfig = require('../tsconfig.json');
-
-const cwd = __dirname + '/..';
-const subPackageName = packageJSON.name;
-// Include any external packages that are part of the 0x.js public interface
-// to this array so that TypeDoc picks it up and adds it to the Docs JSON
-// So far, we only have @0xproject/types as part of 0x.js's public interface.
-const fileIncludes = [...tsConfig.include, '../types/src/index.ts'];
-const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname);
-const projectFiles = fileIncludesAdjusted.join(' ');
-const S3BucketPath = 's3://0xjs-docs-jsons/';
-
-let tag;
-let version;
-postpublish_utils
- .getLatestTagAndVersionAsync(subPackageName)
- .then(function(result) {
- tag = result.tag;
- version = result.version;
- const releaseName = postpublish_utils.getReleaseName(subPackageName, version);
- const assets = [__dirname + '/../_bundles/index.js', __dirname + '/../_bundles/index.min.js'];
- return postpublish_utils.publishReleaseNotesAsync(tag, releaseName, assets);
- })
- .then(function(release) {
- console.log('POSTPUBLISH: Release successful, generating docs...');
- const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json';
- return execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', {
- cwd,
- });
- })
- .then(function(result) {
- if (result.stderr !== '') {
- throw new Error(result.stderr);
- }
- const fileName = 'v' + version + '.json';
- console.log('POSTPUBLISH: Doc generation successful, uploading docs... as ', fileName);
- const s3Url = S3BucketPath + fileName;
- return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', {
- cwd,
- });
- })
- .catch(function(err) {
- throw err;
- });
diff --git a/packages/0x.js/scripts/stagedocs.js b/packages/0x.js/scripts/stagedocs.js
deleted file mode 100644
index f0ba55205..000000000
--- a/packages/0x.js/scripts/stagedocs.js
+++ /dev/null
@@ -1,31 +0,0 @@
-const execAsync = require('async-child-process').execAsync;
-const postpublish_utils = require('../../../scripts/postpublish_utils');
-const tsConfig = require('../tsconfig.json');
-
-const cwd = __dirname + '/..';
-const S3BucketPath = 's3://staging-0xjs-docs-jsons/';
-// Include any external packages that are part of the 0x.js public interface
-// to this array so that TypeDoc picks it up and adds it to the Docs JSON
-// So far, we only have @0xproject/types as part of 0x.js's public interface.
-const fileIncludes = [...tsConfig.include, '../types/src/index.ts'];
-const fileIncludesAdjusted = postpublish_utils.adjustFileIncludePaths(fileIncludes, __dirname);
-const projectFiles = fileIncludesAdjusted.join(' ');
-const jsonFilePath = __dirname + '/../' + postpublish_utils.generatedDocsDirectoryName + '/index.json';
-const version = process.env.DOCS_VERSION;
-
-execAsync('JSON_FILE_PATH=' + jsonFilePath + ' PROJECT_FILES="' + projectFiles + '" yarn docs:json', {
- cwd,
-})
- .then(function(result) {
- if (result.stderr !== '') {
- throw new Error(result.stderr);
- }
- const fileName = 'v' + version + '.json';
- const s3Url = S3BucketPath + fileName;
- return execAsync('S3_URL=' + s3Url + ' yarn upload_docs_json', {
- cwd,
- });
- })
- .catch(function(err) {
- console.log(err);
- });
diff --git a/packages/0x.js/src/globals.d.ts b/packages/0x.js/src/globals.d.ts
index 0e103d057..f37ac7cb0 100644
--- a/packages/0x.js/src/globals.d.ts
+++ b/packages/0x.js/src/globals.d.ts
@@ -4,6 +4,13 @@ declare module 'dirty-chai';
declare module 'request-promise-native';
declare module 'web3-provider-engine';
declare module 'web3-provider-engine/subproviders/rpc';
+declare module 'async-child-process';
+declare module 'publish-release';
+
+// semver-sort declarations
+declare module 'semver-sort' {
+ const desc: (versions: string[]) => string[];
+}
// HACK: In order to merge the bignumber declaration added by chai-bignumber to the chai Assertion
// interface we must use `namespace` as the Chai definitelyTyped definition does. Since we otherwise
diff --git a/packages/0x.js/monorepo_scripts/postpublish.ts b/packages/0x.js/src/monorepo_scripts/postpublish.ts
index 13ab013be..13ab013be 100644
--- a/packages/0x.js/monorepo_scripts/postpublish.ts
+++ b/packages/0x.js/src/monorepo_scripts/postpublish.ts
diff --git a/packages/0x.js/monorepo_scripts/stagedocs.ts b/packages/0x.js/src/monorepo_scripts/stagedocs.ts
index a62d8a014..a62d8a014 100644
--- a/packages/0x.js/monorepo_scripts/stagedocs.ts
+++ b/packages/0x.js/src/monorepo_scripts/stagedocs.ts
diff --git a/packages/0x.js/tsconfig_monorepo.json b/packages/0x.js/tsconfig_monorepo.json
deleted file mode 100644
index 7e9609659..000000000
--- a/packages/0x.js/tsconfig_monorepo.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../tsconfig",
- "compilerOptions": {
- "outDir": "scripts",
- "noImplicitThis": false,
- "rootDir": "./monorepo_scripts"
- },
- "include": ["./monorepo_scripts/**/*", "../../node_modules/web3-typescript-typings/index.d.ts"]
-}
diff --git a/scripts/postpublish_utils.js b/scripts/postpublish_utils.js
deleted file mode 100644
index 0a8c6f94d..000000000
--- a/scripts/postpublish_utils.js
+++ /dev/null
@@ -1,86 +0,0 @@
-const _ = require('lodash');
-const execAsync = require('async-child-process').execAsync;
-const semverSort = require('semver-sort');
-const publishRelease = require('publish-release');
-const promisify = require('@0xproject/utils').promisify;
-
-const publishReleaseAsync = promisify(publishRelease);
-const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS;
-const generatedDocsDirectoryName = 'generated_docs';
-
-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,
- };
- });
- },
- publishReleaseNotesAsync: function(tag, releaseName, assets) {
- console.log('POSTPUBLISH: Releasing ', releaseName, '...');
- return publishReleaseAsync({
- token: githubPersonalAccessToken,
- owner: '0xProject',
- repo: '0x.js',
- tag: tag,
- name: releaseName,
- notes: 'N/A',
- draft: false,
- prerelease: false,
- reuseRelease: true,
- reuseDraftOnly: false,
- assets: assets,
- });
- },
- getReleaseName(subPackageName, version) {
- const releaseName = subPackageName + ' v' + version;
- return releaseName;
- },
- 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)
- )
- .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,
-};