Created
October 13, 2016 08:26
-
-
Save legend80s/5c0d509422ee74e71315d7f1c365fdc9 to your computer and use it in GitHub Desktop.
Transform form JavaScript's ES6 `import` to `require`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
def to_require(import_str): | |
''' Transform form JavaScript's ES6 `import` to `require`. | |
>>> to_require("import webpack from 'webpack'") | |
"const webpack = require('webpack')" | |
>>> to_require('import webpack from "webpack"') | |
'const webpack = require("webpack")' | |
>>> to_require("import webpack from 'webpack';") | |
"const webpack = require('webpack');" | |
>>> to_require("import webpack from 'webpack'") | |
"const webpack = require('webpack')" | |
>>> to_require("import webpack from 'webpack'") | |
"const webpack = require('webpack')" | |
>>> to_require("import webpack from 'webpack'") | |
"const webpack = require('webpack')" | |
>>> to_require("import webpack from 'webpack' ") | |
"const webpack = require('webpack') " | |
>>> to_require("import ProgressBarPlugin from 'progress-bar-webpack-plugin';") | |
"const ProgressBarPlugin = require('progress-bar-webpack-plugin');" | |
''' | |
return re.sub(r'import\s+(\w+)\s+from\s+([\'"])([\w-]+)[\'"]', r'const \1 = require(\2\3\2)', import_str) | |
# require_str = import_str.replace('import ', 'const ').replace('from ', '= require(') | |
# semicolon = re.sub(r';$', ');', require_str); | |
# return re.sub(r'([\'"])$', r'\1)', semicolon) | |
if __name__ == '__main__': | |
import doctest | |
doctest.testmod() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment