{ "info": { "author": "kdmal", "author_email": "kdmal@yandex.ru", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "**esprima-compiler** is a es6-compatible javascript minifier written by python.\n**esprima-compiler** uses `esprima-python `__\nas javascript parser library\n\nFeatures\n~~~~~~~~\n\n- ES6 support\n- Mangling function and variable names\n- Ident output\n- Obfuscate strings\n\nInstallation\n~~~~~~~~~~~~\n\n.. code:: shell\n\n pip install esprima-compiler\n\nExamples\n~~~~~~~~\n\nExample javascript file\n\n.. code:: javascript\n\n const Aconst = Math.PI, Bconst = \"Bconst\";\n const Cconst = \"Cconst\";\n\n function add(a, b){\n function foo(){\n return a+b;\n }\n return foo();\n }\n\n const Dconst=\"Dconst\";\n\n function mul(a, b){\n return a*b;\n }\n\n\n const Econst=\"Econst\";\n let Alet=\"Alet\";\n const Fconst=\"Fconst\", Gconst=\"Gconst\";\n\n\nRearrange and mangle variables:\n\n.. code:: shell\n\n python -m esprima_compiler -r --mangle-variable test.js\n\n.. code:: javascript\n\n const Aconst=Math.PI,Bconst=\"Bconst\",Cconst=\"Cconst\";\n function add($a,$b){\n function foo(){\n return $a+$b;\n }\n return foo();\n }\n const Dconst=\"Dconst\";\n function mul($a,$b){\n return $a*$b;\n }\n const Econst=\"Econst\",Fconst=\"Fconst\",Gconst=\"Gconst\";\n let Alet=\"Alet\";\n\n\nRearrange variables and mangle variables (include top level) and function names (except top-level):\n\n.. code:: shell\n\n python -m esprima_compiler -r --mangle-variable-top --mangle-function test.js\n\n\n.. code:: javascript\n\n const $a=Math.PI,$b=\"Bconst\",$c=\"Cconst\";\n function add($d,$e){\n function $f(){\n return $d+$e;\n }\n return $f();\n }\n const $d=\"Dconst\";\n function mul($e,$f){\n return $e*$f;\n }\n const $e=\"Econst\",$f=\"Fconst\",$g=\"Gconst\";\n let $h=\"Alet\";\n\nRearrange variables and mangle variables and function names (include top level) without identing:\n\n.. code:: shell\n\n python -m esprima_compiler -i 0 -r --mangle-variable-top --mangle-function-top --mangle-function test.js\n\n.. code:: javascript\n\n const $a=Math.PI,$b=\"Bconst\",$c=\"Cconst\";function $d($e,$f){function $g(){return $e+$f;}return $g();}const $e=\"Dconst\";function $f($g,$h){return $g*$h;}const $g=\"Econst\",$h=\"Fconst\",$i=\"Gconst\";let $j=\"Alet\";\n\n\nAPI\n~~~\n\nCompile javascript string:\n\n.. code:: python\n\n >>> from esprima_compiler.compiler import Compiler\n >>> c = Compiler(rearrange=True, mangle_variable=True, mangle_variable_top=True)\n >>> js = \"\"\"\n ... const A=1;\n ... const B=2;\n ... let C=3;\n ...\n ... class TestClass extends Object{\n ... constructor(a, b){\n ... this._a=a;\n ... this.b=b;\n ... }\n ... static get a(){\n ... return this._a;\n ... }\n ... set b(b){\n ... this.b=b;\n ... }\n ...\n ... static async sum(){\n ... return this.a+this.b\n ... }\n ... }\n ... \"\"\"\n >>> buf = c.compile(js)\n >>> print(buf.read())\n const $a=1,$b=2;\n let $c=3;\n class TestClass extends Object{\n constructor($d,$e){\n this._a=$d;\n this.b=$e;\n }\n static get a(){\n return this._a;\n }\n set b($d){\n this.b=$d;\n }\n static async sum(){\n return this.a+this.b;\n }\n }\n >>>", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/humkanet/esprimajs", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "esprimajs", "package_url": "https://pypi.org/project/esprimajs/", "platform": "", "project_url": "https://pypi.org/project/esprimajs/", "project_urls": { "Homepage": "https://github.com/humkanet/esprimajs" }, "release_url": "https://pypi.org/project/esprimajs/0.1.0/", "requires_dist": null, "requires_python": ">=3", "summary": "es6-compatible javascript minifier", "version": "0.1.0" }, "last_serial": 5653978, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8859e09cac45155eb26aacd78bd94362", "sha256": "590511d479eba35f389a9caa64d274c2a6aa4243ac2a910b0e27dbe7927a298f" }, "downloads": -1, "filename": "esprimajs-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8859e09cac45155eb26aacd78bd94362", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13312, "upload_time": "2019-08-09T07:16:46", "url": "https://files.pythonhosted.org/packages/6c/29/941f3a74cf776ddad73832596516e68aef6ab87d5512754347ac96478233/esprimajs-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8859e09cac45155eb26aacd78bd94362", "sha256": "590511d479eba35f389a9caa64d274c2a6aa4243ac2a910b0e27dbe7927a298f" }, "downloads": -1, "filename": "esprimajs-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8859e09cac45155eb26aacd78bd94362", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13312, "upload_time": "2019-08-09T07:16:46", "url": "https://files.pythonhosted.org/packages/6c/29/941f3a74cf776ddad73832596516e68aef6ab87d5512754347ac96478233/esprimajs-0.1.0.tar.gz" } ] }