Created
April 24, 2021 11:00
-
-
Save netchampfaris/dae0d164be1edec8e0528334c4fbc0db to your computer and use it in GitHub Desktop.
This file contains 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
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors | |
# MIT License. See license.txt | |
from __future__ import unicode_literals | |
import io | |
import re | |
def execute(file_path): | |
with open(file_path, 'r') as f: | |
content = f.read() | |
# Class.extend -> class ClassName | |
content = re.sub(r'(\w+)\s*=\s*Class.extend\(', r'\1 = class \1 ', content) | |
# ExtendedClass.extend -> class ClassName extends ExtendedClass | |
content = re.sub(r'(\w+)\s*=\s*([\w.]+)\.extend\(', r'\1 = class \1 extends \2 ', content) | |
# render: function() -> render() | |
content = re.sub(r'(\n\t\w+):\s*function', r'\1', content) | |
# }, -> } | |
content = re.sub(r'(\n\t\}),', r'\1', content) | |
# doesn't work | |
content = re.sub(r'\n\}\);\n,', r'\n};\n', content) | |
# init() -> constructor() | |
content = content.replace('\tinit(', '\tconstructor(') | |
# this._super() -> super. | |
# this step needs manual review | |
content = content.replace('this._super', 'super.') | |
with open(file_path, 'w') as f: | |
f.write(content) | |
files = [ | |
# "frappe/public/js/frappe/ui/iconbar.js", | |
# "frappe/public/js/frappe/ui/page.js", | |
# "frappe/public/js/frappe/ui/sort_selector.js", | |
# "frappe/public/js/frappe/ui/tag_editor.js", | |
# "frappe/public/js/frappe/ui/filters/field_select.js", | |
# "frappe/public/js/frappe/ui/toolbar/awesome_bar.js", | |
# "frappe/public/js/frappe/views/container.js", | |
# "frappe/public/js/frappe/views/treeview.js", | |
# "frappe/public/js/frappe/views/calendar/calendar.js", | |
# "frappe/public/js/frappe/views/image/image_view.js", | |
# "frappe/public/js/frappe/form/sidebar/attachments.js", | |
# "frappe/public/js/frappe/form/controls/attach.js", | |
# "frappe/public/js/frappe/form/controls/barcode.js", | |
# "frappe/public/js/frappe/form/controls/base_input.js", | |
# "frappe/public/js/frappe/form/controls/button.js", | |
# "frappe/public/js/frappe/form/controls/check.js", | |
# "frappe/public/js/frappe/form/controls/code.js", | |
# "frappe/public/js/frappe/form/controls/color.js", | |
# "frappe/public/js/frappe/form/controls/comment.js", | |
# "frappe/public/js/frappe/form/controls/currency.js", | |
# "frappe/public/js/frappe/form/controls/data.js", | |
# "frappe/public/js/frappe/form/controls/date_range.js", | |
# "frappe/public/js/frappe/form/controls/date.js", | |
# "frappe/public/js/frappe/form/controls/datetime.js", | |
# "frappe/public/js/frappe/form/controls/duration.js", | |
# "frappe/public/js/frappe/form/controls/dynamic_link.js", | |
# "frappe/public/js/frappe/form/controls/float.js", | |
# "frappe/public/js/frappe/form/controls/geolocation.js", | |
# "frappe/public/js/frappe/form/controls/heading.js", | |
# "frappe/public/js/frappe/form/controls/html_editor.js", | |
# "frappe/public/js/frappe/form/controls/html.js", | |
# "frappe/public/js/frappe/form/controls/image.js", | |
# "frappe/public/js/frappe/form/controls/int.js", | |
# "frappe/public/js/frappe/form/controls/link.js", | |
# "frappe/public/js/frappe/form/controls/markdown_editor.js", | |
# "frappe/public/js/frappe/form/controls/multicheck.js", | |
# "frappe/public/js/frappe/form/controls/multiselect_list.js", | |
# "frappe/public/js/frappe/form/controls/multiselect_pills.js", | |
# "frappe/public/js/frappe/form/controls/multiselect.js", | |
# "frappe/public/js/frappe/form/controls/password.js", | |
# "frappe/public/js/frappe/form/controls/rating.js", | |
# "frappe/public/js/frappe/form/controls/read_only.js", | |
# "frappe/public/js/frappe/form/controls/select.js", | |
# "frappe/public/js/frappe/form/controls/signature.js", | |
# "frappe/public/js/frappe/form/controls/table_multiselect.js", | |
# "frappe/public/js/frappe/form/controls/table.js", | |
# "frappe/public/js/frappe/form/controls/text_editor.js", | |
# "frappe/public/js/frappe/form/controls/text.js", | |
# "frappe/public/js/frappe/form/controls/time.js", | |
# "frappe/public/js/frappe/ui/field_group.js", | |
# "erpnext/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js", | |
# "erpnext/erpnext/healthcare/doctype/exercise_type/exercise_type.js", | |
# "erpnext/erpnext/hr/doctype/employee_attendance_tool/employee_attendance_tool.js", | |
# "erpnext/erpnext/public/js/utils/item_selector.js", | |
# "erpnext/erpnext/public/js/utils/serial_no_batch_selector.js", | |
# "erpnext/erpnext/stock/dashboard/item_dashboard.js", | |
# "erpnext/erpnext/templates/includes/rfq.js", | |
# "erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.js", | |
# "erpnext/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js", | |
# "erpnext/erpnext/accounts/doctype/pos_invoice/pos_invoice.js", | |
# "erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js", | |
# "erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.js", | |
# "erpnext/erpnext/buying/doctype/purchase_order/purchase_order.js", | |
# "erpnext/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js", | |
# "erpnext/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js", | |
# "erpnext/erpnext/crm/doctype/lead/lead.js", | |
# "erpnext/erpnext/crm/doctype/opportunity/opportunity.js", | |
# "erpnext/erpnext/hr/doctype/employee/employee.js", | |
# "erpnext/erpnext/hr/doctype/upload_attendance/upload_attendance.js", | |
# "erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js", | |
# "erpnext/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js", | |
# "erpnext/erpnext/manufacturing/doctype/bom/bom.js", | |
# "erpnext/erpnext/public/js/account_tree_grid.js", | |
# "erpnext/erpnext/public/js/stock_analytics.js", | |
# "erpnext/erpnext/public/js/stock_grid_report.js", | |
# "erpnext/erpnext/public/js/telephony.js", | |
# "erpnext/erpnext/public/js/controllers/buying.js", | |
# "erpnext/erpnext/public/js/controllers/stock_controller.js", | |
# "erpnext/erpnext/public/js/controllers/taxes_and_totals.js", | |
# "erpnext/erpnext/public/js/controllers/transaction.js", | |
# "erpnext/erpnext/public/js/payment/payments.js", | |
# "erpnext/erpnext/public/js/utils/customer_quick_entry.js", | |
# "erpnext/erpnext/public/js/utils/item_quick_entry.js", | |
# "erpnext/erpnext/selling/sales_common.js", | |
# "erpnext/erpnext/selling/doctype/installation_note/installation_note.js", | |
# "erpnext/erpnext/selling/doctype/quotation/quotation.js", | |
# "erpnext/erpnext/selling/doctype/sales_order/sales_order.js", | |
# "erpnext/erpnext/stock/doctype/delivery_note/delivery_note.js", | |
# "erpnext/erpnext/stock/doctype/item/item.js", | |
# "erpnext/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js", | |
# "erpnext/erpnext/stock/doctype/material_request/material_request.js", | |
# "erpnext/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js", | |
# "erpnext/erpnext/stock/doctype/stock_entry/stock_entry.js", | |
# "erpnext/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js", | |
# "erpnext/erpnext/support/doctype/warranty_claim/warranty_claim.js", | |
] | |
# process 5 files at a time | |
for file in files[:5]: | |
print("/Users/farisansari/Projects/benches/frappe-bench/apps/" + file) | |
execute(file) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment