diff options
-rw-r--r-- | packages/0x.js/monorepo_scripts/globals.d.ts | 12 | ||||
-rw-r--r-- | packages/0x.js/package.json | 5 | ||||
-rw-r--r-- | packages/0x.js/scripts/postpublish.js | 47 | ||||
-rw-r--r-- | packages/0x.js/scripts/stagedocs.js | 31 | ||||
-rw-r--r-- | packages/0x.js/src/globals.d.ts | 7 | ||||
-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.json | 9 | ||||
-rw-r--r-- | scripts/postpublish_utils.js | 86 |
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, -}; |