jsgui3-server 0.0.75 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/controls/_html-server-color-palette.js +114 -114
- package/examples/controls/html-server-combo-box.js +104 -104
- package/examples/controls/html-server-list.js +98 -98
- package/examples/controls/html-server-popup-menu-button.js +114 -114
- package/examples/controls/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/scs-arrow-button.js +36 -36
- package/examples/controls/scs-date-picker.js +157 -157
- package/examples/controls/scs-file-browser.js +82 -82
- package/examples/controls/scs-item.js +159 -159
- package/examples/controls/scs-month-arrow-selector.js +126 -126
- package/examples/controls/scs-month-view.js +95 -95
- package/examples/controls/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/scs-tree.js +49 -49
- package/examples/controls/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/demos/square_box.js +324 -324
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +100 -100
- package/fs2.js +1836 -1836
- package/module.js +21 -21
- package/old/single-control-server.js +418 -418
- package/package.json +44 -42
- package/publishing/function-publisher.js +202 -202
- package/publishing/notes.md +5 -5
- package/publishing/observable-publisher.js +118 -118
- package/publishing/resource-publisher.js +306 -306
- package/resources/data-resource.js +104 -104
- package/resources/fs-resource.js +148 -148
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -0
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +42 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +94 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +228 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +338 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +97 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +73 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +93 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +160 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +179 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +88 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +92 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +137 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +74 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +86 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +41 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +55 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +46 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +344 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +39 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +31 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +27 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +22 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +87 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +28 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +737 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +65 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +306 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +78 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +249 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +139 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +101 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +61 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +180 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +201 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +44 -0
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +77 -0
- package/resources/jsbuilder/JS_AST/query/all.js +0 -0
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +228 -0
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +405 -0
- package/resources/jsbuilder/JS_AST/query/node_queries.js +9 -0
- package/resources/jsbuilder/JS_AST/query/root_queries.js +0 -0
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +12 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +86 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +124 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +88 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +11 -0
- package/resources/jsbuilder/JS_Builder.js +10 -36
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +32 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +79 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +18 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +9 -0
- package/resources/jsbuilder/JS_File/JS_File.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -0
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -0
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -0
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -0
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +414 -0
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +415 -0
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -0
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +32 -0
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -0
- package/resources/jsbuilder/JS_File/JS_Files.js +16 -0
- package/resources/jsbuilder/Module.js +14 -0
- package/resources/jsbuilder/Platform.js +13 -53
- package/resources/jsbuilder/Platforms.js +69 -15
- package/resources/jsbuilder/Project.js +109 -0
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -7
- package/resources/jsbuilder/Scope.js +30 -0
- package/resources/jsbuilder/Variable_Name_Provider.js +43 -0
- package/resources/jsbuilder/_JS_File.js +226 -0
- package/resources/jsbuilder/ast_query.js +21 -0
- package/resources/jsbuilder/babel/babel_consts.js +150 -0
- package/resources/jsbuilder/babel/babel_node_tools.js +542 -0
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +604 -0
- package/resources/jsbuilder/build.js +16 -0
- package/resources/jsbuilder/platform_notes.md +66 -0
- package/resources/jsbuilder/test/test_ast_node.js +451 -0
- package/resources/jsbuilder/test/test_js_file.js +303 -11
- package/resources/jsbuilder/test/test_project.js +157 -0
- package/resources/local-server-info-resource.js +78 -78
- package/resources/process-js.js +537 -537
- package/resources/server-resource-pool.js +84 -84
- package/resources/website-css-resource.js +411 -411
- package/resources/website-javascript-resource.js +761 -751
- package/resources/website-resource.js +390 -390
- package/resources/website-static-html-resource.js +196 -196
- package/server.js +170 -170
- package/single-control-server.js +398 -398
- package/single-page-app.js +129 -129
- package/resources/jsbuilder/Declaration.js +0 -15
- package/resources/jsbuilder/Declaration_Sequence.js +0 -15
- package/resources/jsbuilder/JS_File.js +0 -77
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
|
|
2
|
+
const type_abbreviations = {
|
|
3
|
+
//'ArrowFunctionExpression': 'AFE',
|
|
4
|
+
'ArrowFunctionExpression': 'AFE',
|
|
5
|
+
'AssignmentExpression': 'AsE',
|
|
6
|
+
'AssignmentPattern': 'AsP',
|
|
7
|
+
'ArrayExpression': 'ArE',
|
|
8
|
+
'ArrayPattern': 'ArP',
|
|
9
|
+
'BinaryExpression': 'BE',
|
|
10
|
+
'BlockStatement': 'BS',
|
|
11
|
+
'BooleanLiteral': 'BL',
|
|
12
|
+
'CallExpression': 'CE', // change to CaE? Need to change sigs being looked for.
|
|
13
|
+
'ClassBody': 'CB',
|
|
14
|
+
'ClassDeclaration': 'CD',
|
|
15
|
+
'ClassMethod': 'CM',
|
|
16
|
+
'ConditionalExpression': 'CoE',
|
|
17
|
+
'EmptyStatement': '__',
|
|
18
|
+
'ExpressionStatement': 'ES',
|
|
19
|
+
'File': 'F',
|
|
20
|
+
'ForStatement': 'FS',
|
|
21
|
+
'FunctionExpression': 'FE',
|
|
22
|
+
'Identifier': 'ID',
|
|
23
|
+
'IfStatement': 'IS',
|
|
24
|
+
'LogicalExpression': 'LE',
|
|
25
|
+
'MemberExpression': 'ME',
|
|
26
|
+
'NullLiteral': 'null',
|
|
27
|
+
'NumericLiteral': 'NumL',
|
|
28
|
+
'NewExpression': 'NE',
|
|
29
|
+
'ObjectExpression': 'OE',
|
|
30
|
+
'ObjectMethod': 'OM',
|
|
31
|
+
'ObjectPattern': 'OPa',
|
|
32
|
+
'ObjectProperty': 'OPr',
|
|
33
|
+
'Program': 'P',
|
|
34
|
+
'ReturnStatement': 'RS',
|
|
35
|
+
'StringLiteral': 'SL',
|
|
36
|
+
'Super': 'S',
|
|
37
|
+
'ThisExpression': 'TE',
|
|
38
|
+
'ThrowStatement': 'TS',
|
|
39
|
+
'UnaryExpression': 'UnE',
|
|
40
|
+
'UpdateExpression': 'UpE',
|
|
41
|
+
'VariableDeclaration': 'VDn',
|
|
42
|
+
'VariableDeclarator': 'VDr',
|
|
43
|
+
'WhileStatement': 'WS'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// ArrowFunctionExpression
|
|
47
|
+
|
|
48
|
+
const map_expression_categories = {
|
|
49
|
+
'ArrowFunctionExpression': true,
|
|
50
|
+
'AssignmentExpression': true,
|
|
51
|
+
'ArrayExpression': true,
|
|
52
|
+
'BinaryExpression': true,
|
|
53
|
+
'CallExpression': true,
|
|
54
|
+
'ConditionalExpression': true,
|
|
55
|
+
// ExpressionStatement false because it's a statement
|
|
56
|
+
'FunctionExpression': true,
|
|
57
|
+
'LogicalExpression': true,
|
|
58
|
+
'MemberExpression': true,
|
|
59
|
+
'NewExpression': true,
|
|
60
|
+
'ObjectExpression': true,
|
|
61
|
+
'ThisExpression': true,
|
|
62
|
+
'UnaryExpression': true,
|
|
63
|
+
'UpdateExpression': true
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const map_literal_categories = {
|
|
67
|
+
'BooleanLiteral': true,
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
'NullLiteral': true,
|
|
71
|
+
'NumericLiteral': true,
|
|
72
|
+
'StringLiteral': true
|
|
73
|
+
|
|
74
|
+
// Must be more
|
|
75
|
+
|
|
76
|
+
// ExpressionStatement false because it's a statement
|
|
77
|
+
/*
|
|
78
|
+
'FunctionExpression': true,
|
|
79
|
+
'LogicalExpression': true,
|
|
80
|
+
'MemberExpression': true,
|
|
81
|
+
'NewExpression': true,
|
|
82
|
+
'ObjectExpression': true,
|
|
83
|
+
'ThisExpression': true,
|
|
84
|
+
'UnaryExpression': true,
|
|
85
|
+
'UpdateExpression': true
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const map_statement_categories = {
|
|
91
|
+
BlockStatement: true,
|
|
92
|
+
EmptyStatement: true,
|
|
93
|
+
ExpressionStatement: true,
|
|
94
|
+
ForStatement: true,
|
|
95
|
+
ReturnStatement: true,
|
|
96
|
+
ThrowStatement: true,
|
|
97
|
+
WhileStatement: true
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const map_categories = {
|
|
101
|
+
//'ArrowFunctionExpression': 'AFE',
|
|
102
|
+
'ArrowFunctionExpression': 'Expression',
|
|
103
|
+
'AssignmentExpression': 'Expression',
|
|
104
|
+
'AssignmentPattern': 'Pattern',
|
|
105
|
+
'ArrayExpression': 'Expression',
|
|
106
|
+
'ArrayPattern': 'APPattern',
|
|
107
|
+
'BinaryExpression': 'Expression',
|
|
108
|
+
'BlockStatement': 'Statement',
|
|
109
|
+
'BooleanLiteral': 'Literal',
|
|
110
|
+
'CallExpression': 'Expression',
|
|
111
|
+
'ClassBody': 'Body',
|
|
112
|
+
'ClassDeclaration': 'Declaration',
|
|
113
|
+
'ClassMethod': 'Method',
|
|
114
|
+
'ConditionalExpression': 'Expression',
|
|
115
|
+
'EmptyStatement': 'Statement',
|
|
116
|
+
'ExpressionStatement': 'Statement',
|
|
117
|
+
'ForStatement': 'Statement',
|
|
118
|
+
'File': 'File',
|
|
119
|
+
'FunctionExpression': 'Expression',
|
|
120
|
+
'Identifier': 'Identifier',
|
|
121
|
+
'IfStatement': 'Statement',
|
|
122
|
+
'LogicalExpression': 'Expression',
|
|
123
|
+
'MemberExpression': 'Expression',
|
|
124
|
+
'NullLiteral': 'Literal',
|
|
125
|
+
'NumericLiteral': 'Literal',
|
|
126
|
+
'NewExpression': 'Expression',
|
|
127
|
+
'ObjectExpression': 'Expression',
|
|
128
|
+
'ObjectMethod': 'Method',
|
|
129
|
+
'ObjectPattern': 'Pattern',
|
|
130
|
+
'ObjectProperty': 'Property',
|
|
131
|
+
'Program': 'Program',
|
|
132
|
+
'ReturnStatement': 'Statement',
|
|
133
|
+
'StringLiteral': 'Literal',
|
|
134
|
+
'Super': 'Super',
|
|
135
|
+
'ThisExpression': 'Expression',
|
|
136
|
+
'ThrowStatement': 'Statement',
|
|
137
|
+
'UnaryExpression': 'Expression',
|
|
138
|
+
'UpdateExpression': 'Expression',
|
|
139
|
+
'VariableDeclaration': 'Declaration',
|
|
140
|
+
'VariableDeclarator': 'Declarator',
|
|
141
|
+
'WhileStatement': 'Statement'
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
module.exports = {
|
|
145
|
+
type_abbreviations: type_abbreviations,
|
|
146
|
+
map_expression_categories: map_expression_categories,
|
|
147
|
+
map_literal_categories: map_literal_categories,
|
|
148
|
+
map_categories: map_categories,
|
|
149
|
+
map_statement_categories: map_statement_categories
|
|
150
|
+
}
|
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
//const { resolvePlugin } = require('@babel/core');
|
|
2
|
+
const {each} = require('lang-mini');
|
|
3
|
+
|
|
4
|
+
const deep_iterate_babel_node = require('./deep_iterate/deep_iterate_babel');
|
|
5
|
+
|
|
6
|
+
const old_code = () => {
|
|
7
|
+
|
|
8
|
+
const iterate_babel_class_method_node = (babel_node, str_source, callback) => {
|
|
9
|
+
const {key, computed, kind, id, generator, async, params} = babel_node;
|
|
10
|
+
iterate_babel_node(key, str_source, callback);
|
|
11
|
+
if (id) {
|
|
12
|
+
console.log('babel_node', babel_node);
|
|
13
|
+
throw 'NYI';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
each(params, x => iterate_babel_node(x, str_source, callback));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const iterate_babel_class_body_node = (babel_node, str_source, callback) => {
|
|
20
|
+
const {extra, body} = babel_node;
|
|
21
|
+
//iterate_babel_node(body, str_source, callback);
|
|
22
|
+
each(body, x => iterate_babel_node(x, str_source, callback));
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const iterate_babel_class_declaration_node = (babel_node, str_source, callback) => {
|
|
27
|
+
//console.log('babel_node', babel_node);
|
|
28
|
+
|
|
29
|
+
const {extra, id, superclass, body} = babel_node;
|
|
30
|
+
iterate_babel_node(id, str_source, callback);
|
|
31
|
+
|
|
32
|
+
if (superclass) {
|
|
33
|
+
console.log('babel_node', babel_node);
|
|
34
|
+
throw 'NYI';
|
|
35
|
+
}
|
|
36
|
+
iterate_babel_node(body, str_source, callback);
|
|
37
|
+
|
|
38
|
+
//throw 'stop';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const iterate_babel_object_pattern_node = (babel_node, str_source, callback) => {
|
|
42
|
+
const {extra, properties} = babel_node;
|
|
43
|
+
each(properties, x => iterate_babel_node(x, str_source, callback));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const iterate_babel_while_statement_node = (babel_node, str_source, callback) => {
|
|
47
|
+
const {extra, body, test} = babel_node;
|
|
48
|
+
iterate_babel_node(test, str_source, callback);
|
|
49
|
+
iterate_babel_node(body, str_source, callback);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const iterate_babel_assignment_pattern_node = (babel_node, str_source, callback) => {
|
|
53
|
+
const {extra, left, right} = babel_node;
|
|
54
|
+
iterate_babel_node(left, str_source, callback);
|
|
55
|
+
iterate_babel_node(right, str_source, callback);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const iterate_babel_throw_statement_node = (babel_node, str_source, callback) => {
|
|
59
|
+
const {extra, argument} = babel_node;
|
|
60
|
+
|
|
61
|
+
iterate_babel_node(argument, str_source, callback);
|
|
62
|
+
|
|
63
|
+
//iterate_babel_node(right, str_source);
|
|
64
|
+
//each(elements, element => iterate_babel_node(element, str_source));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const iterate_babel_boolean_literal_node = (babel_node, str_source, callback) => {
|
|
68
|
+
const {value} = babel_node;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const iterate_babel_null_literal_node = (babel_node, str_source, callback) => {
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const iterate_babel_empty_statement_node = (babel_node, str_source, callback) => {
|
|
76
|
+
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const iterate_babel_new_expression_node = (babel_node, str_source, callback) => {
|
|
80
|
+
const {extra, callee} = babel_node;
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
iterate_babel_node(callee, str_source, callback);
|
|
84
|
+
each(babel_node.arguments, x => iterate_babel_node(x, str_source, callback));
|
|
85
|
+
//iterate_babel_node(right, str_source);
|
|
86
|
+
//each(elements, element => iterate_babel_node(element, str_source));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const iterate_babel_update_expression_node = (babel_node, str_source, callback) => {
|
|
90
|
+
const {extra, operator, prefix, argument} = babel_node;
|
|
91
|
+
|
|
92
|
+
iterate_babel_node(argument, str_source, callback);
|
|
93
|
+
|
|
94
|
+
//iterate_babel_node(right, str_source);
|
|
95
|
+
//each(elements, element => iterate_babel_node(element, str_source));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const iterate_babel_numeric_literal_node = (babel_node, str_source, callback) => {
|
|
99
|
+
const {extra, value} = babel_node;
|
|
100
|
+
|
|
101
|
+
//iterate_babel_node(right, str_source);
|
|
102
|
+
//each(elements, element => iterate_babel_node(element, str_source));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
const iterate_babel_for_statement_node = (babel_node, str_source, callback) => {
|
|
107
|
+
const {extra, init, test, update, body} = babel_node;
|
|
108
|
+
iterate_babel_node(init, str_source, callback);
|
|
109
|
+
iterate_babel_node(test, str_source, callback);
|
|
110
|
+
iterate_babel_node(update, str_source, callback);
|
|
111
|
+
iterate_babel_node(body, str_source, callback);
|
|
112
|
+
//iterate_babel_node(right, str_source);
|
|
113
|
+
//each(elements, element => iterate_babel_node(element, str_source));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const iterate_babel_array_expression_node = (babel_node, str_source, callback) => {
|
|
117
|
+
const {extra, elements} = babel_node;
|
|
118
|
+
//iterate_babel_node(left, str_source);
|
|
119
|
+
//iterate_babel_node(right, str_source);
|
|
120
|
+
each(elements, element => iterate_babel_node(element, str_source, callback));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const iterate_babel_assignment_expression_node = (babel_node, str_source, callback) => {
|
|
124
|
+
const {extra, left, operator, right} = babel_node;
|
|
125
|
+
iterate_babel_node(left, str_source, callback);
|
|
126
|
+
iterate_babel_node(right, str_source, callback);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const iterate_babel_expression_statement_node = (babel_node, str_source, callback) => {
|
|
130
|
+
const {extra, left, operator, right} = babel_node;
|
|
131
|
+
iterate_babel_node(left, str_source, callback);
|
|
132
|
+
iterate_babel_node(right, str_source, callback);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const iterate_babel_variable_declarator_node = (babel_node, str_source, callback) => {
|
|
136
|
+
const {extra, id, init} = babel_node;
|
|
137
|
+
iterate_babel_node(id, str_source, callback);
|
|
138
|
+
iterate_babel_node(init, str_source, callback);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const iterate_babel_logical_expression_node = (babel_node, str_source, callback) => {
|
|
142
|
+
const {extra, left, operator, right} = babel_node;
|
|
143
|
+
iterate_babel_node(left, str_source, callback);
|
|
144
|
+
iterate_babel_node(right, str_source, callback);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const iterate_babel_function_expression_node = (babel_node, str_source, callback) => {
|
|
148
|
+
//console.log('iterate_babel_function_expression_node', babel_node);
|
|
149
|
+
|
|
150
|
+
const {extra, id, generator, async, params, body} = babel_node;
|
|
151
|
+
|
|
152
|
+
iterate_babel_node(id, str_source, callback);
|
|
153
|
+
each(params, param => iterate_babel_node(param, str_source, callback));
|
|
154
|
+
iterate_babel_node(body, str_source, callback);
|
|
155
|
+
|
|
156
|
+
//const {extra, object, computed /*bool*/, property} = babel_node;
|
|
157
|
+
//throw 'NYI'
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const iterate_babel_member_expression_node = (babel_node, str_source, callback) => {
|
|
161
|
+
//console.log('iterate_babel_member_expression_node', babel_node);
|
|
162
|
+
const {extra, object, computed /*bool*/, property} = babel_node;
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
if (extra) {
|
|
167
|
+
throw 'NYI'
|
|
168
|
+
};
|
|
169
|
+
iterate_babel_node(object, str_source, callback);
|
|
170
|
+
iterate_babel_node(property, str_source, callback);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const iterate_babel_call_expression_node = (babel_node, str_source, callback) => {
|
|
174
|
+
//console.log('iterate_babel_object_property_node', babel_node);
|
|
175
|
+
|
|
176
|
+
const {extra, callee} = babel_node;
|
|
177
|
+
|
|
178
|
+
if (extra) {
|
|
179
|
+
//throw 'NYI';
|
|
180
|
+
const {parenthasized, parenStart} = extra;
|
|
181
|
+
}
|
|
182
|
+
iterate_babel_node(callee, str_source, callback);
|
|
183
|
+
|
|
184
|
+
each(babel_node.arguments, argument => {
|
|
185
|
+
iterate_babel_node(argument, str_source, callback);
|
|
186
|
+
})
|
|
187
|
+
|
|
188
|
+
//throw 'stop';
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const iterate_babel_object_property_node = (babel_node, str_source, callback) => {
|
|
192
|
+
//console.log('iterate_babel_object_property_node', babel_node);
|
|
193
|
+
|
|
194
|
+
const {method, key, computed, shorthand, value} = babel_node;
|
|
195
|
+
//const {properties} = babel_node;
|
|
196
|
+
|
|
197
|
+
iterate_babel_node(key, str_source, callback);
|
|
198
|
+
iterate_babel_node(value, str_source, callback);
|
|
199
|
+
|
|
200
|
+
//throw 'stop';
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const iterate_babel_object_expression_node = (babel_node, str_source, callback) => {
|
|
204
|
+
//console.log('iterate_babel_object_expression_node', babel_node);
|
|
205
|
+
const {properties} = babel_node;
|
|
206
|
+
|
|
207
|
+
each(properties, property => {
|
|
208
|
+
iterate_babel_node(property, str_source, callback);
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
//throw 'stop';
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const iterate_babel_return_statement_node = (babel_node, str_source, callback) => {
|
|
215
|
+
//console.log('iterate_babel_return_statement_node', babel_node);
|
|
216
|
+
|
|
217
|
+
const {argument} = babel_node;
|
|
218
|
+
iterate_babel_node(argument, str_source, callback);
|
|
219
|
+
|
|
220
|
+
//throw 'stop';
|
|
221
|
+
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
const iterate_babel_if_statement_node = (babel_node, str_source, callback) => {
|
|
225
|
+
//console.log('iterate_babel_if_statement_node', babel_node);
|
|
226
|
+
|
|
227
|
+
const {test, concequent, alternate} = babel_node;
|
|
228
|
+
iterate_babel_node(test, str_source, callback);
|
|
229
|
+
iterate_babel_node(concequent, str_source, callback);
|
|
230
|
+
iterate_babel_node(alternate, str_source, callback);
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
//throw 'stop';
|
|
234
|
+
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
const iterate_babel_block_statement_node = (babel_node, str_source, callback) => {
|
|
238
|
+
const {params, body} = babel_node;
|
|
239
|
+
if (params && params.length > 0) {
|
|
240
|
+
console.log('params', params);
|
|
241
|
+
throw 'stop';
|
|
242
|
+
}
|
|
243
|
+
each(body, body_item => {
|
|
244
|
+
iterate_babel_node(body_item, str_source, callback);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const iterate_babel_arrow_function_expression_node = (babel_node, str_source, callback) => {
|
|
249
|
+
//console.log('iterate_babel_arrow_function_expression_node', babel_node);
|
|
250
|
+
|
|
251
|
+
const {generator, async, params, body} = babel_node;
|
|
252
|
+
|
|
253
|
+
// Assume the params are nodes.
|
|
254
|
+
|
|
255
|
+
if (params.length > 0) {
|
|
256
|
+
//console.log('params', params);
|
|
257
|
+
//throw 'NYI';
|
|
258
|
+
each(params, param => {
|
|
259
|
+
iterate_babel_node(param, str_source, callback);
|
|
260
|
+
})
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
iterate_babel_node(body, str_source, callback);
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
//throw 'stop';
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const iterate_babel_variable_declaration_node = (babel_node, str_source, callback) => {
|
|
271
|
+
//console.log('iterate_babel_variable_declaration_node', babel_node);
|
|
272
|
+
|
|
273
|
+
const {kind, declarations} = babel_node;
|
|
274
|
+
each(declarations, declaration => iterate_babel_node(declaration, str_source, callback));
|
|
275
|
+
//throw 'stop';
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
const iterate_babel_string_literal_node = (babel_node, str_source, callback) => {
|
|
279
|
+
//console.log('iterate_babel_string_literal_node', babel_node);
|
|
280
|
+
const {value} = babel_node;
|
|
281
|
+
//throw 'stop';
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
const iterate_babel_identifier_node = (babel_node, str_source, callback) => {
|
|
285
|
+
//console.log('iterate_babel_identifier_node', babel_node);
|
|
286
|
+
const {name} = babel_node;
|
|
287
|
+
|
|
288
|
+
//throw 'stop';
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const iterate_babel_unary_expression_node = (babel_node, str_source, callback) => {
|
|
292
|
+
//console.log('iterate_babel_unary_expression_node', babel_node);
|
|
293
|
+
const {operator, argument} = babel_node;
|
|
294
|
+
|
|
295
|
+
iterate_babel_node(argument, str_source, callback);
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
const iterate_babel_binary_expression_node = (babel_node, str_source, callback) => {
|
|
301
|
+
//console.log('iterate_babel_binary_expression_node babel_node', babel_node);
|
|
302
|
+
|
|
303
|
+
const {left, operator, right} = babel_node;
|
|
304
|
+
iterate_babel_node(left, str_source, callback);
|
|
305
|
+
iterate_babel_node(right, str_source, callback);
|
|
306
|
+
|
|
307
|
+
//throw 'stop';
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const iterate_babel_node = (babel_node, str_source, callback) => {
|
|
311
|
+
//console.log('babel_node', babel_node);
|
|
312
|
+
|
|
313
|
+
if (babel_node) {
|
|
314
|
+
|
|
315
|
+
let stopped = false;
|
|
316
|
+
|
|
317
|
+
const stop = () => stopped = true;
|
|
318
|
+
|
|
319
|
+
if (callback) {
|
|
320
|
+
callback(babel_node, stop);
|
|
321
|
+
}
|
|
322
|
+
const {type} = babel_node;
|
|
323
|
+
|
|
324
|
+
if (!stopped) {
|
|
325
|
+
|
|
326
|
+
if (type === 'BinaryExpression') {
|
|
327
|
+
return iterate_babel_binary_expression_node(babel_node, str_source, callback);
|
|
328
|
+
} else if (type === 'UnaryExpression') {
|
|
329
|
+
return iterate_babel_unary_expression_node(babel_node, str_source, callback);
|
|
330
|
+
} else if (type === 'Identifier') {
|
|
331
|
+
return iterate_babel_identifier_node(babel_node, str_source, callback);
|
|
332
|
+
} else if (type === 'StringLiteral') {
|
|
333
|
+
return iterate_babel_string_literal_node(babel_node, str_source, callback);
|
|
334
|
+
} else if (type === 'VariableDeclaration') {
|
|
335
|
+
return iterate_babel_variable_declaration_node(babel_node, str_source, callback);
|
|
336
|
+
} else if (type === 'ArrowFunctionExpression') {
|
|
337
|
+
return iterate_babel_arrow_function_expression_node(babel_node, str_source, callback);
|
|
338
|
+
} else if (type === 'BlockStatement') {
|
|
339
|
+
return iterate_babel_block_statement_node(babel_node, str_source, callback);
|
|
340
|
+
} else if (type === 'IfStatement') {
|
|
341
|
+
return iterate_babel_if_statement_node(babel_node, str_source, callback);
|
|
342
|
+
} else if (type === 'ReturnStatement') {
|
|
343
|
+
return iterate_babel_return_statement_node(babel_node, str_source, callback);
|
|
344
|
+
} else if (type === 'ObjectExpression') {
|
|
345
|
+
return iterate_babel_object_expression_node(babel_node, str_source, callback);
|
|
346
|
+
} else if (type === 'ObjectProperty') {
|
|
347
|
+
return iterate_babel_object_property_node(babel_node, str_source, callback);
|
|
348
|
+
} else if (type === 'CallExpression') {
|
|
349
|
+
return iterate_babel_call_expression_node(babel_node, str_source, callback);
|
|
350
|
+
} else if (type === 'MemberExpression') {
|
|
351
|
+
return iterate_babel_member_expression_node(babel_node, str_source, callback);
|
|
352
|
+
} else if (type === 'FunctionExpression') {
|
|
353
|
+
return iterate_babel_function_expression_node(babel_node, str_source, callback);
|
|
354
|
+
} else if (type === 'LogicalExpression') {
|
|
355
|
+
return iterate_babel_logical_expression_node(babel_node, str_source, callback);
|
|
356
|
+
} else if (type === 'VariableDeclarator') {
|
|
357
|
+
return iterate_babel_variable_declarator_node(babel_node, str_source, callback);
|
|
358
|
+
} else if (type === 'ExpressionStatement') {
|
|
359
|
+
return iterate_babel_expression_statement_node(babel_node, str_source, callback);
|
|
360
|
+
} else if (type === 'AssignmentExpression') {
|
|
361
|
+
return iterate_babel_assignment_expression_node(babel_node, str_source, callback);
|
|
362
|
+
} else if (type === 'ArrayExpression') {
|
|
363
|
+
return iterate_babel_array_expression_node(babel_node, str_source, callback);
|
|
364
|
+
} else if (type === 'ForStatement') {
|
|
365
|
+
return iterate_babel_for_statement_node(babel_node, str_source, callback);
|
|
366
|
+
} else if (type === 'NumericLiteral') {
|
|
367
|
+
return iterate_babel_numeric_literal_node(babel_node, str_source, callback);
|
|
368
|
+
} else if (type === 'UpdateExpression') {
|
|
369
|
+
return iterate_babel_update_expression_node(babel_node, str_source, callback);
|
|
370
|
+
} else if (type === 'NewExpression') {
|
|
371
|
+
return iterate_babel_new_expression_node(babel_node, str_source, callback);
|
|
372
|
+
} else if (type === 'EmptyStatement') {
|
|
373
|
+
return iterate_babel_empty_statement_node(babel_node, str_source, callback);
|
|
374
|
+
} else if (type === 'NullLiteral') {
|
|
375
|
+
return iterate_babel_null_literal_node(babel_node, str_source, callback);
|
|
376
|
+
} else if (type === 'BooleanLiteral') {
|
|
377
|
+
return iterate_babel_boolean_literal_node(babel_node, str_source, callback);
|
|
378
|
+
} else if (type === 'ThrowStatement') {
|
|
379
|
+
return iterate_babel_throw_statement_node(babel_node, str_source, callback);
|
|
380
|
+
} else if (type === 'AssignmentPattern') {
|
|
381
|
+
return iterate_babel_assignment_pattern_node(babel_node, str_source, callback);
|
|
382
|
+
} else if (type === 'WhileStatement') {
|
|
383
|
+
return iterate_babel_while_statement_node(babel_node, str_source, callback);
|
|
384
|
+
} else if (type === 'ObjectPattern') {
|
|
385
|
+
return iterate_babel_object_pattern_node(babel_node, str_source, callback);
|
|
386
|
+
} else if (type === 'ClassDeclaration') {
|
|
387
|
+
return iterate_babel_class_declaration_node(babel_node, str_source, callback);
|
|
388
|
+
} else if (type === 'ClassBody') {
|
|
389
|
+
return iterate_babel_class_body_node(babel_node, str_source, callback);
|
|
390
|
+
} else if (type === 'ClassMethod') {
|
|
391
|
+
return iterate_babel_class_method_node(babel_node, str_source, callback);
|
|
392
|
+
} else {
|
|
393
|
+
console.log('');
|
|
394
|
+
console.log('type', type);
|
|
395
|
+
console.log('');
|
|
396
|
+
console.log('babel_node', babel_node);
|
|
397
|
+
throw 'stop';
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
// ConditionalExpression
|
|
401
|
+
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Seems broken in current state.
|
|
409
|
+
/*
|
|
410
|
+
const iterate_babel_child_nodes = (babel_node, str_source, callback) => iterate_babel_node(babel_node, str_source, (node2) => {
|
|
411
|
+
if (babel_node !== node2) {
|
|
412
|
+
callback(node2);
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
*/
|
|
416
|
+
|
|
417
|
+
// each_babel_child_node
|
|
418
|
+
|
|
419
|
+
// iterate_find maybe?
|
|
420
|
+
|
|
421
|
+
//const iterate_babel_find = (babel_node, str_source, fn_match, callback) =
|
|
422
|
+
|
|
423
|
+
// each_babel_child_node
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// accumulate function?
|
|
431
|
+
|
|
432
|
+
/*
|
|
433
|
+
const get_babel_child_nodes = (babel_node, str_source) => {
|
|
434
|
+
const res = [];
|
|
435
|
+
iterate_babel_child_nodes(babel_node, str_source, (node => res.push(node)));
|
|
436
|
+
return res;
|
|
437
|
+
}
|
|
438
|
+
*/
|
|
439
|
+
|
|
440
|
+
const get_identifier_names = babel_node => {
|
|
441
|
+
const arr_names = [], map_names = {};
|
|
442
|
+
iterate_babel_node(babel_node, undefined, (babel_node) => {
|
|
443
|
+
const {type, name} = babel_node;
|
|
444
|
+
if (type === 'Identifier') {
|
|
445
|
+
if (!map_names[name]) {
|
|
446
|
+
arr_names.push(name);
|
|
447
|
+
map_names[name] = true;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
//console.log('get_identifier_names cb babel_node', babel_node);
|
|
451
|
+
//c++;
|
|
452
|
+
});
|
|
453
|
+
return arr_names;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
const get_named_call = (babel_node, target_name) => {
|
|
457
|
+
let res;
|
|
458
|
+
iterate_babel_node(babel_node, undefined, (babel_node) => {
|
|
459
|
+
|
|
460
|
+
//console.log('babel_node', babel_node);
|
|
461
|
+
|
|
462
|
+
// if it is a function call
|
|
463
|
+
// with the name require / ?, or id name require.
|
|
464
|
+
const {type, name} = babel_node;
|
|
465
|
+
|
|
466
|
+
/*
|
|
467
|
+
if (type === 'Identifier') {
|
|
468
|
+
|
|
469
|
+
if (name === 'require') {
|
|
470
|
+
throw 'stop!';
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
}
|
|
474
|
+
*/
|
|
475
|
+
if (type === 'CallExpression') {
|
|
476
|
+
//throw 'stop';
|
|
477
|
+
const {callee} = babel_node;
|
|
478
|
+
const args = babel_node.arguments;
|
|
479
|
+
|
|
480
|
+
if (callee) {
|
|
481
|
+
const {type, name} = callee;
|
|
482
|
+
if (type === 'Identifier') {
|
|
483
|
+
|
|
484
|
+
if (name === target_name) {
|
|
485
|
+
if (args.length === 1) {
|
|
486
|
+
const {value} = args[0];
|
|
487
|
+
//return babel_node;
|
|
488
|
+
res = babel_node;
|
|
489
|
+
} else {
|
|
490
|
+
throw 'stop';
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
//throw 'stop!';
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
} else {
|
|
497
|
+
throw 'stop';
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
} else {
|
|
502
|
+
throw 'stop';
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
return res;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
const count_nodes = babel_node => {
|
|
510
|
+
let c = 0;
|
|
511
|
+
iterate_babel_node(babel_node, str_source, (babel_node) => {
|
|
512
|
+
//console.log('cb babel_node', babel_node);
|
|
513
|
+
c++;
|
|
514
|
+
});
|
|
515
|
+
return c;
|
|
516
|
+
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
const get_require_call = babel_node => get_named_call(babel_node, 'require');
|
|
520
|
+
const has_require_call = babel_node => !!get_require_call(babel_node);
|
|
521
|
+
|
|
522
|
+
// getting the names (string literal values) of whatever is required.
|
|
523
|
+
|
|
524
|
+
// pattern signatures and matching looks like the best way to go.
|
|
525
|
+
//
|
|
526
|
+
|
|
527
|
+
// structure patterns
|
|
528
|
+
// could ignore variable names?
|
|
529
|
+
|
|
530
|
+
// or run some kind of deep copy / clone on babel nodes and transform them.
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
const babel_node_tools = {
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
deep_iterate_babel_node: deep_iterate_babel_node,
|
|
537
|
+
get_identifier_names: get_identifier_names,
|
|
538
|
+
get_require_call: get_require_call,
|
|
539
|
+
has_require_call, has_require_call
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
module.exports = babel_node_tools;
|