From 8b8d94c78a9c996c2da6916b2e883c6bb7f0641d Mon Sep 17 00:00:00 2001 From: ahocevar Date: Thu, 17 May 2018 11:40:18 -0500 Subject: [PATCH] Remove babelrc, transform using babel-core --- .babelrc | 9 --------- package.json | 6 +++--- tasks/transform-types.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) delete mode 100644 .babelrc create mode 100644 tasks/transform-types.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 242e95ee03..0000000000 --- a/.babelrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "plugins": ["jsdoc-closure"], - "parserOpts": { - "parser": "recast" - }, - "generatorOpts": { - "generator": "recast" - } -} diff --git a/package.json b/package.json index 46b2cefc05..565f2df9ed 100644 --- a/package.json +++ b/package.json @@ -16,11 +16,11 @@ "karma": "karma start test/karma.config.js", "serve-examples": "mkdir -p build/examples && webpack --config examples/webpack/config.js --watch & serve build/examples", "build-examples": "webpack --config examples/webpack/config.js --env=prod", - "build-index": "node tasks/generate-index.js", + "build-index": "node tasks/generate-index", "prebuild": "npm run build-index", "build": "webpack --config config/webpack.js", "presrc-closure": "npm run prebuild", - "src-closure": "babel -q --out-dir build/src-closure src/", + "src-closure": "node tasks/transform-types", "pretypecheck": "npm run src-closure", "typecheck": "node tasks/typecheck", "apidoc": "jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json -P package.json -d build/apidoc" @@ -44,7 +44,6 @@ "rbush": "2.0.2" }, "devDependencies": { - "babel-cli": "6.26.0", "babel-minify-webpack-plugin": "^0.3.0", "babel-plugin-jsdoc-closure": "1.5.1", "chaikin-smooth": "1.0.4", @@ -56,6 +55,7 @@ "expect.js": "0.3.1", "front-matter": "^2.1.2", "fs-extra": "^6.0.0", + "glob": "^7.1.2", "google-closure-compiler": "20180506.0.0", "handlebars": "4.0.11", "html-webpack-plugin": "^3.0.1", diff --git a/tasks/transform-types.js b/tasks/transform-types.js new file mode 100644 index 0000000000..90ffb7a6e8 --- /dev/null +++ b/tasks/transform-types.js @@ -0,0 +1,31 @@ +/** + * @filedesc + * Transforms type comments in all source files to types that Closure Compiler + * understands. + */ + +const glob = require('glob'); +const mkdirp = require('mkdirp').sync; +const fs = require('fs'); +const path = require('path'); +const transform = require('babel-core').transformFileSync; + +const options = { + plugins: 'jsdoc-closure', + parserOpts: { + parser: 'recast' + }, + generatorOpts: { + generator: 'recast' + } +}; + +const outDir = path.join('build', 'src-closure'); + +glob('src/**/*.js', (err, matches) => { + matches.forEach(match => { + const out = path.join(outDir, path.relative('src', match)); + mkdirp(path.dirname(out)); + fs.writeFileSync(out, transform(match, options).code, 'utf-8'); + }); +});