De nos jours, il existe au moins un meilleur outil, appelé slimit
:
SlimIt est un JavaScript minifier écrit en Python. Il compile
Le code JavaScript en code plus compact, afin qu'il télécharge et exécute
plus rapide.
SlimIt fournit également une bibliothèque qui comprend un parser JavaScript,
lexer, assez imprimante et un arbre visiteur.
Démo:
Imaginons que nous ayons le code javascript suivant:
$.ajax({
type: "POST",
url: 'http://www.example.com',
data: {
email: 'abc@g.com',
phone: '9999999999',
name: 'XYZ'
}
});
Et maintenant, nous devons obtenir de l' email
, phone
et name
des valeurs de l' data
objet.
L'idée ici serait de l'instancier un slimit
de l'analyseur, visiter tous les nœuds, filtre tous les travaux et de les mettre dans le dictionnaire:
from slimit import ast
from slimit.parser import Parser
from slimit.visitors import nodevisitor
data = """
$.ajax({
type: "POST",
url: 'http://www.example.com',
data: {
email: 'abc@g.com',
phone: '9999999999',
name: 'XYZ'
}
});
"""
parser = Parser()
tree = parser.parse(data)
fields = {getattr(node.left, 'value', ''): getattr(node.right, 'value', '')
for node in nodevisitor.visit(tree)
if isinstance(node, ast.Assign)}
print fields
Il imprime:
{'name': "'XYZ'",
'url': "'http://www.example.com'",
'type': '"POST"',
'phone': "'9999999999'",
'data': '',
'email': "'abc@g.com'"}