diff options
author | Fabio Berger <me@fabioberger.com> | 2018-03-13 05:13:24 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-03-13 05:13:24 +0800 |
commit | ef6aa9f41b9f21d033034c51e8880ec9d70b6b40 (patch) | |
tree | 2380bda47f84cab1214814766a800883d63587ac /packages/0x.js/monorepo_scripts | |
parent | 745af5309d32a34e5f8c6a305f12ce31cb2379b1 (diff) | |
download | dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar.gz dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar.bz2 dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar.lz dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar.xz dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.tar.zst dexon-sol-tools-ef6aa9f41b9f21d033034c51e8880ec9d70b6b40.zip |
Convert 0x.js scripts to TS, move the prepublishUtils script to `dev-utils` and also convert it to TS.
Diffstat (limited to 'packages/0x.js/monorepo_scripts')
-rw-r--r-- | packages/0x.js/monorepo_scripts/globals.d.ts | 12 | ||||
-rw-r--r-- | packages/0x.js/monorepo_scripts/postpublish.ts | 44 | ||||
-rw-r--r-- | packages/0x.js/monorepo_scripts/stagedocs.ts | 30 |
3 files changed, 86 insertions, 0 deletions
diff --git a/packages/0x.js/monorepo_scripts/globals.d.ts b/packages/0x.js/monorepo_scripts/globals.d.ts new file mode 100644 index 000000000..bbfbdaa6a --- /dev/null +++ b/packages/0x.js/monorepo_scripts/globals.d.ts @@ -0,0 +1,12 @@ +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/monorepo_scripts/postpublish.ts b/packages/0x.js/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..13ab013be --- /dev/null +++ b/packages/0x.js/monorepo_scripts/postpublish.ts @@ -0,0 +1,44 @@ +import { postpublishUtils } from '@0xproject/dev-utils'; +import { execAsync } from 'async-child-process'; +import * as _ from 'lodash'; + +import * as packageJSON from '../package.json'; +import * as tsConfig from '../tsconfig.json'; + +const cwd = `${__dirname}/..`; +const subPackageName = (packageJSON as any).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 as any).include, '../types/src/index.ts']; +const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); +const projectFiles = fileIncludesAdjusted.join(' '); +const S3BucketPath = 's3://0xjs-docs-jsons/'; + +(async () => { + const tagAndVersion = await postpublishUtils.getLatestTagAndVersionAsync(subPackageName); + const tag = tagAndVersion.tag; + const version = tagAndVersion.version; + + const releaseName = postpublishUtils.getReleaseName(subPackageName, version); + const assets = [`${__dirname}/../_bundles/index.js`, `${__dirname}/../_bundles/index.min.js`]; + const release = await postpublishUtils.publishReleaseNotesAsync(tag, releaseName, assets); + + // tslint:disable-next-line:no-console + console.log('POSTPUBLISH: Release successful, generating docs...'); + const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; + + const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { + cwd, + }); + if (!_.isEmpty(result.stderr)) { + throw new Error(result.stderr); + } + const fileName = `v${version}.json`; + // tslint:disable-next-line:no-console + 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(console.error); diff --git a/packages/0x.js/monorepo_scripts/stagedocs.ts b/packages/0x.js/monorepo_scripts/stagedocs.ts new file mode 100644 index 000000000..a62d8a014 --- /dev/null +++ b/packages/0x.js/monorepo_scripts/stagedocs.ts @@ -0,0 +1,30 @@ +import { postpublishUtils } from '@0xproject/dev-utils'; +import { execAsync } from 'async-child-process'; +import * as _ from 'lodash'; + +import * as tsConfig from '../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 as any).include, '../types/src/index.ts']; +const fileIncludesAdjusted = postpublishUtils.adjustFileIncludePaths(fileIncludes, __dirname); +const projectFiles = fileIncludesAdjusted.join(' '); +const jsonFilePath = `${__dirname}/../${postpublishUtils.generatedDocsDirectoryName}/index.json`; +const version = process.env.DOCS_VERSION; + +(async () => { + const result = await execAsync(`JSON_FILE_PATH=${jsonFilePath} PROJECT_FILES="${projectFiles}" yarn docs:json`, { + cwd, + }); + if (!_.isEmpty(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(console.error); |