@tuya-sat/micro-dev-loader 0.0.4 → 1.0.0-rc.4
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/dist/index.d.ts +4 -0
- package/dist/index.js +3 -3
- package/dist/manifestDom.d.ts +2 -0
- package/dist/plugins/layoutMock/index.d.ts +4 -0
- package/dist/plugins/layoutMock/index.js +5 -97
- package/dist/plugins/layoutMock/layout-static/index.html +100 -10
- package/dist/transform.d.ts +27 -0
- package/dist/transform.js +28 -10
- package/dist/utils/getFakeMenu.d.ts +10 -0
- package/dist/utils/getFakeMenu.js +73 -0
- package/dist/utils/getLang.d.ts +1 -0
- package/dist/utils/getLang.js +68 -0
- package/dist/utils/parseManifest.d.ts +21 -0
- package/package.json +5 -4
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
|
@@ -21,14 +21,14 @@ function _interopRequireDefault(obj) {
|
|
|
21
21
|
}
|
|
22
22
|
var addjsLoader = function addjsLoader(sourceCode) {
|
|
23
23
|
var ref = (0, _loaderUtils).getOptions(this), _authedCode = ref.authedCode, authedCode = _authedCode === void 0 ? [] : _authedCode, microFramework = ref.microFramework;
|
|
24
|
-
var
|
|
24
|
+
var manifest = (0, _parseManifest).default();
|
|
25
25
|
var codeMaker = new _transform.default({
|
|
26
26
|
sourceCode: sourceCode,
|
|
27
27
|
microFramework: microFramework
|
|
28
28
|
});
|
|
29
29
|
codeMaker.changeAst({
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
authedCode: authedCode,
|
|
31
|
+
manifest: manifest
|
|
32
32
|
});
|
|
33
33
|
return codeMaker.gtAst() + _manifestDom.default;
|
|
34
34
|
};
|
|
@@ -9,14 +9,8 @@ var _ejs = _interopRequireDefault(require("ejs"));
|
|
|
9
9
|
var _cheerio = _interopRequireDefault(require("cheerio"));
|
|
10
10
|
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
|
|
11
11
|
var _parseManifest = _interopRequireDefault(require("../../utils/parseManifest"));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
15
|
-
return arr2;
|
|
16
|
-
}
|
|
17
|
-
function _arrayWithHoles(arr) {
|
|
18
|
-
if (Array.isArray(arr)) return arr;
|
|
19
|
-
}
|
|
12
|
+
var _getLang = require("../../utils/getLang");
|
|
13
|
+
var _getFakeMenu = require("../../utils/getFakeMenu");
|
|
20
14
|
function _classCallCheck(instance, Constructor) {
|
|
21
15
|
if (!(instance instanceof Constructor)) {
|
|
22
16
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -36,80 +30,12 @@ function _createClass(Constructor, protoProps, staticProps) {
|
|
|
36
30
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
37
31
|
return Constructor;
|
|
38
32
|
}
|
|
39
|
-
function _defineProperty(obj, key, value) {
|
|
40
|
-
if (key in obj) {
|
|
41
|
-
Object.defineProperty(obj, key, {
|
|
42
|
-
value: value,
|
|
43
|
-
enumerable: true,
|
|
44
|
-
configurable: true,
|
|
45
|
-
writable: true
|
|
46
|
-
});
|
|
47
|
-
} else {
|
|
48
|
-
obj[key] = value;
|
|
49
|
-
}
|
|
50
|
-
return obj;
|
|
51
|
-
}
|
|
52
33
|
function _interopRequireDefault(obj) {
|
|
53
34
|
return obj && obj.__esModule ? obj : {
|
|
54
35
|
default: obj
|
|
55
36
|
};
|
|
56
37
|
}
|
|
57
|
-
function _iterableToArrayLimit(arr, i) {
|
|
58
|
-
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
59
|
-
if (_i == null) return;
|
|
60
|
-
var _arr = [];
|
|
61
|
-
var _n = true;
|
|
62
|
-
var _d = false;
|
|
63
|
-
var _s, _e;
|
|
64
|
-
try {
|
|
65
|
-
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
66
|
-
_arr.push(_s.value);
|
|
67
|
-
if (i && _arr.length === i) break;
|
|
68
|
-
}
|
|
69
|
-
} catch (err) {
|
|
70
|
-
_d = true;
|
|
71
|
-
_e = err;
|
|
72
|
-
} finally{
|
|
73
|
-
try {
|
|
74
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
75
|
-
} finally{
|
|
76
|
-
if (_d) throw _e;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return _arr;
|
|
80
|
-
}
|
|
81
|
-
function _nonIterableRest() {
|
|
82
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
83
|
-
}
|
|
84
|
-
function _objectSpread(target) {
|
|
85
|
-
for(var i = 1; i < arguments.length; i++){
|
|
86
|
-
var source = arguments[i] != null ? arguments[i] : {
|
|
87
|
-
};
|
|
88
|
-
var ownKeys = Object.keys(source);
|
|
89
|
-
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
90
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
91
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
ownKeys.forEach(function(key) {
|
|
95
|
-
_defineProperty(target, key, source[key]);
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return target;
|
|
99
|
-
}
|
|
100
|
-
function _slicedToArray(arr, i) {
|
|
101
|
-
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
102
|
-
}
|
|
103
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
104
|
-
if (!o) return;
|
|
105
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
106
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
107
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
108
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
109
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
110
|
-
}
|
|
111
38
|
var manifest = (0, _parseManifest).default();
|
|
112
|
-
var lang = _fsExtra.default.readJSONSync(_path.default.resolve(process.cwd(), "_locales/zh-CN.json"));
|
|
113
39
|
var layoutMockTpl = _fsExtra.default.readFileSync(_path.default.resolve(__dirname, "./layout-static/index.html"), {
|
|
114
40
|
encoding: "utf-8"
|
|
115
41
|
});
|
|
@@ -125,29 +51,11 @@ var LayoutMockPlugin = /*#__PURE__*/ function() {
|
|
|
125
51
|
compiler.hooks.compilation.tap("MyPlugin", function(compilation) {
|
|
126
52
|
_htmlWebpackPlugin.default.getHooks(compilation).beforeEmit.tapAsync("LayoutMockPlugin", function(data, cb) {
|
|
127
53
|
var $ = _cheerio.default.load(data.html);
|
|
128
|
-
var
|
|
129
|
-
var nameProcesser = function(name) {
|
|
130
|
-
var ref = _slicedToArray(name.split("."), 2), _ = ref[0], key = ref[1];
|
|
131
|
-
return lang[key] || name;
|
|
132
|
-
};
|
|
54
|
+
var name = manifest.name, defaultMenuIcon = manifest.defaultMenuIcon;
|
|
133
55
|
data.html = _ejs.default.render(layoutMockTpl, {
|
|
134
|
-
appName:
|
|
56
|
+
appName: (0, _getLang).nameProcesser2(name)[0],
|
|
135
57
|
appIcon: defaultMenuIcon.url,
|
|
136
|
-
|
|
137
|
-
var processer = function(item) {
|
|
138
|
-
return _objectSpread({
|
|
139
|
-
}, item, {
|
|
140
|
-
langName: nameProcesser(item.name)
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
var entries$ = entries.length ? entries : [
|
|
144
|
-
{
|
|
145
|
-
name: name1,
|
|
146
|
-
path: "/"
|
|
147
|
-
},
|
|
148
|
-
];
|
|
149
|
-
return entries$.map(processer);
|
|
150
|
-
}(),
|
|
58
|
+
menu: (0, _getFakeMenu).getFakeMenu(manifest),
|
|
151
59
|
appHtml: [
|
|
152
60
|
$("head").html(),
|
|
153
61
|
$("body").html()
|
|
@@ -103,7 +103,17 @@
|
|
|
103
103
|
color: rgba(0, 0, 0, 0.85);
|
|
104
104
|
}
|
|
105
105
|
.c-debugger-menu-name {
|
|
106
|
+
flex: 1 1 auto;
|
|
106
107
|
margin-left: 10px;
|
|
108
|
+
overflow: hidden;
|
|
109
|
+
text-overflow: ellipsis;
|
|
110
|
+
}
|
|
111
|
+
.c-debugger-menu-suffix {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
width: 14px;
|
|
115
|
+
height: 14px;
|
|
116
|
+
margin: 0 10px 0 0;
|
|
107
117
|
}
|
|
108
118
|
.c-debugger-menu:hover {
|
|
109
119
|
color: #1890ff;
|
|
@@ -114,14 +124,53 @@
|
|
|
114
124
|
<div class="c-debugger-container">
|
|
115
125
|
<div class="c-debugger-header">
|
|
116
126
|
<div class="c-debugger-logo">
|
|
117
|
-
<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
<svg
|
|
128
|
+
version="1.1"
|
|
129
|
+
id="Layer_1"
|
|
130
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
131
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
132
|
+
x="0px"
|
|
133
|
+
y="0px"
|
|
134
|
+
width="28px"
|
|
135
|
+
height="28px"
|
|
136
|
+
viewBox="0 0 28 28"
|
|
137
|
+
enable-background="new 0 0 28 28"
|
|
138
|
+
xml:space="preserve"
|
|
139
|
+
>
|
|
140
|
+
<image
|
|
141
|
+
id="image0"
|
|
142
|
+
width="28"
|
|
143
|
+
height="28"
|
|
144
|
+
x="0"
|
|
145
|
+
y="0"
|
|
146
|
+
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
|
|
147
|
+
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABYlBMVEUAAAAxY/QwYfMxYvMx
|
|
148
|
+
YvQwYPMvYfMwYvMjWegdTdYyYvQyY/QwYfQwZfY4aPc3ZPQwYvQ1ZPYzZvhMhP8vYPIxYvUhWOQr
|
|
149
|
+
WOwvYfIxYfQwYvUwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMw
|
|
150
|
+
YfMwYfMwYfMwYfMzZPgwYfMwYfMwYfQwYfQxYvMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMxYfMw
|
|
151
|
+
YfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfQwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMy
|
|
152
|
+
YvQxYvQwYfMwYfMxYvQwYfMwYfMwYfMwYfMwYfMwYfMxYvQwYfMwYfMwYfMzZPcxYvMwYfMwYfMw
|
|
153
|
+
YfMxYvMxY/QxY/UwYvQwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfMwYfP///98
|
|
154
|
+
NzqoAAAAdHRSTlMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVZ7S8PwRaMj2Orz9V+NW7Pt2
|
|
155
|
+
Afl/BwYLWhMKh/c378YMuPVUZP6cK+nRzgi7B7kNxyHhTwINrmcFhIL44jknAzCp6wEK5EkaBwIB
|
|
156
|
+
BhdCklvZuqemt9b0FNHt+VwAAAABYktHRHWoapj7AAAAB3RJTUUH5QweCh8zgHYHYgAAAXtJREFU
|
|
157
|
+
KM9t0/dXwjAQB/BwxIW4xUULbdlYxImICoqguAcOcOPe8/7/51VALeZ+6/ukeblvLoxRWQDAKcku
|
|
158
|
+
t6K4XbLkpE8Lq5SVg6p5vFgpr0dTgVvLxnmdzx/APxXw++o5N6yBNwZDWFOhcJOBNl4XHKw11CND
|
|
159
|
+
3GZjAL5//2F0eATqARiofoGNwtj4BKEWEFlsMq4Bc3pEBlMJnHYyySsymJnFZIrJIqNjzs1jmrlE
|
|
160
|
+
xpphIYNZ5hYZoyYWMcEUoTH7Ug51E/4ag+UVQrfQGKyu0bYuobXA+gYdSBYZtbIZpVaqIZjMwrdk
|
|
161
|
+
I4RKfCZrpfgyRnzl4E3WBrC9g4F85cpMZgPY3VMwp8L3ZeuGtds7DOrkHMb2D7BQpOU0JuHICMQO
|
|
162
|
+
jwCsnLcDdB2fKHgqdXOHMWA9Z3A+WUpfXF5d39ze3T+UEAtSb3n8OG30GEeMPz2/vL69f9Bo5op9
|
|
163
|
+
ZaNywKc2naymkVzL01D3V883YDyHVDqb0PVENp36eQ5fpMSxyXHqNUQAAABEZVhJZk1NACoAAAAI
|
|
164
|
+
AAGHaQAEAAAAAQAAABoAAAAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAQSgAwAEAAAAAQAAAQQA
|
|
165
|
+
AAAA4WKbRgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMi0zMFQxMDozMTo1MSswMDowMFxFjZgA
|
|
166
|
+
AAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTItMzBUMTA6MzE6NTErMDA6MDAtGDUkAAAAEXRFWHRl
|
|
167
|
+
eGlmOkNvbG9yU3BhY2UAMQ+bAkkAAAASdEVYdGV4aWY6RXhpZk9mZnNldAAyNlMbomUAAAAYdEVY
|
|
168
|
+
dGV4aWY6UGl4ZWxYRGltZW5zaW9uADI2MBIuWbIAAAAYdEVYdGV4aWY6UGl4ZWxZRGltZW5zaW9u
|
|
169
|
+
ADI2MI8huMQAAAAASUVORK5CYII="
|
|
170
|
+
/>
|
|
171
|
+
</svg>
|
|
122
172
|
<div class="c-debugger-title"><%= appName %></div>
|
|
123
173
|
</div>
|
|
124
|
-
|
|
125
174
|
<div class="c-debugger-lang-trigger">
|
|
126
175
|
<span id="c-debugger-lang-name"></span>
|
|
127
176
|
<div class="c-debugger-lang-list">
|
|
@@ -132,7 +181,7 @@
|
|
|
132
181
|
</div>
|
|
133
182
|
<div class="c-debugger-main">
|
|
134
183
|
<div class="c-debugger-side">
|
|
135
|
-
<%
|
|
184
|
+
<% if (!menu.sub_entry_list.length) { %>
|
|
136
185
|
<div class="c-debugger-menu" onclick="toPage('<%= menu.path %>')">
|
|
137
186
|
<svg
|
|
138
187
|
viewBox="0 0 1024 1024"
|
|
@@ -148,9 +197,51 @@
|
|
|
148
197
|
p-id="2324"
|
|
149
198
|
></path>
|
|
150
199
|
</svg>
|
|
151
|
-
<div class="c-debugger-menu-name"
|
|
200
|
+
<div class="c-debugger-menu-name">
|
|
201
|
+
<%= menu.micro_app_name[0] %>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<% } else { %>
|
|
205
|
+
<div class="c-debugger-menu">
|
|
206
|
+
<svg
|
|
207
|
+
viewBox="0 0 1024 1024"
|
|
208
|
+
version="1.1"
|
|
209
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
210
|
+
p-id="2323"
|
|
211
|
+
width="14"
|
|
212
|
+
height="14"
|
|
213
|
+
>
|
|
214
|
+
<path
|
|
215
|
+
d="M192.037 287.953h640.124c17.673 0 32-14.327 32-32s-14.327-32-32-32H192.037c-17.673 0-32 14.327-32 32s14.327 32 32 32zM192.028 543.17h638.608c17.673 0 32-14.327 32-32s-14.327-32-32-32H192.028c-17.673 0-32 14.327-32 32s14.327 32 32 32zM832.161 735.802H192.037c-17.673 0-32 14.327-32 32s14.327 32 32 32h640.124c17.673 0 32-14.327 32-32s-14.327-32-32-32z"
|
|
216
|
+
fill=""
|
|
217
|
+
p-id="2324"
|
|
218
|
+
></path>
|
|
219
|
+
</svg>
|
|
220
|
+
<div class="c-debugger-menu-name">
|
|
221
|
+
<%= menu.micro_app_name[0] %>
|
|
222
|
+
</div>
|
|
223
|
+
<div class="c-debugger-menu-suffix">
|
|
224
|
+
<svg
|
|
225
|
+
viewBox="0 0 1024 1024"
|
|
226
|
+
version="1.1"
|
|
227
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
228
|
+
p-id="2307"
|
|
229
|
+
width="12"
|
|
230
|
+
height="12"
|
|
231
|
+
>
|
|
232
|
+
<path
|
|
233
|
+
d="M881.975333 774.688841 512 404.713508 142.024667 774.688841 64.322981 696.987155 512 249.311159 959.677019 696.987155Z"
|
|
234
|
+
p-id="2308"
|
|
235
|
+
></path>
|
|
236
|
+
</svg>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
<% menu.sub_entry_list.forEach(function(subMenu){ %>
|
|
240
|
+
<div class="c-debugger-menu" onclick="toPage('<%= subMenu.path %>')">
|
|
241
|
+
<div style="width: 14px; height: 14px"></div>
|
|
242
|
+
<div class="c-debugger-menu-name"><%= subMenu.entry_name[0] %></div>
|
|
152
243
|
</div>
|
|
153
|
-
<% })
|
|
244
|
+
<% }) %> <% } %>
|
|
154
245
|
</div>
|
|
155
246
|
<div class="c-debugger-content"><%- appHtml %></div>
|
|
156
247
|
</div>
|
|
@@ -163,7 +254,6 @@
|
|
|
163
254
|
};
|
|
164
255
|
const localLng = localStorage.getItem("i18nextLng");
|
|
165
256
|
const lng = lngMap[localLng] ? localLng : "zh-CN";
|
|
166
|
-
console.log(lng);
|
|
167
257
|
document.querySelector("#c-debugger-lang-name").textContent =
|
|
168
258
|
lngMap[lng];
|
|
169
259
|
})();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ParseResult } from "@babel/core";
|
|
2
|
+
import { Manifest } from "./utils/parseManifest";
|
|
3
|
+
export declare type MICRO_FRAMEWORKS_TYPE = "REACT_TS" | "REACT_JS" | "VUE_TS" | "VUE_JS";
|
|
4
|
+
interface ChangeAstProps {
|
|
5
|
+
authedCode: string[];
|
|
6
|
+
manifest: Manifest;
|
|
7
|
+
}
|
|
8
|
+
interface CodeMakerProps {
|
|
9
|
+
sourceCode: string;
|
|
10
|
+
microFramework: MICRO_FRAMEWORKS_TYPE;
|
|
11
|
+
}
|
|
12
|
+
export default class CodeMaker {
|
|
13
|
+
private ast;
|
|
14
|
+
private microFramework;
|
|
15
|
+
constructor({ sourceCode, microFramework }: CodeMakerProps);
|
|
16
|
+
parse(code: string): ParseResult;
|
|
17
|
+
changeAst(props: ChangeAstProps): void;
|
|
18
|
+
gtAst(): string;
|
|
19
|
+
vueReRenderTemp(): string;
|
|
20
|
+
reactReRenderTemp(): string;
|
|
21
|
+
getMenuCode(manifest: Manifest): string;
|
|
22
|
+
getAuthTemp(props: {
|
|
23
|
+
privileges: Manifest["privileges"];
|
|
24
|
+
authedCode: ChangeAstProps["authedCode"];
|
|
25
|
+
}): string;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
package/dist/transform.js
CHANGED
|
@@ -7,6 +7,7 @@ var _core = require("@babel/core");
|
|
|
7
7
|
var _template = _interopRequireDefault(require("@babel/template"));
|
|
8
8
|
var _generator = _interopRequireDefault(require("@babel/generator"));
|
|
9
9
|
var _pluginSyntaxTypescript = _interopRequireDefault(require("@babel/plugin-syntax-typescript"));
|
|
10
|
+
var _getFakeMenu = require("./utils/getFakeMenu");
|
|
10
11
|
function _classCallCheck(instance, Constructor) {
|
|
11
12
|
if (!(instance instanceof Constructor)) {
|
|
12
13
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -67,19 +68,29 @@ var CodeMaker = /*#__PURE__*/ function() {
|
|
|
67
68
|
{
|
|
68
69
|
key: "changeAst",
|
|
69
70
|
value: function changeAst(props) {
|
|
70
|
-
var
|
|
71
|
+
var manifest = props.manifest, authedCode = props.authedCode;
|
|
72
|
+
var privileges = manifest.privileges;
|
|
73
|
+
var authTemp = this.getAuthTemp({
|
|
74
|
+
authedCode: authedCode,
|
|
75
|
+
privileges: privileges
|
|
76
|
+
});
|
|
77
|
+
var menuTemp = this.getMenuCode(manifest);
|
|
71
78
|
(0, _core).traverse(this.ast, {
|
|
72
79
|
ExportNamedDeclaration: function ExportNamedDeclaration(path) {
|
|
73
80
|
var isTarget = false;
|
|
74
81
|
try {
|
|
75
|
-
isTarget = path.node.declaration.kind === "let" && path.node.declaration.declarations[0].id.name === "
|
|
76
|
-
} catch (e) {
|
|
77
|
-
}
|
|
82
|
+
isTarget = path.node.declaration.kind === "let" && path.node.declaration.declarations[0].id.name === "microProps";
|
|
83
|
+
} catch (e) {}
|
|
78
84
|
if (!isTarget) {
|
|
79
85
|
return;
|
|
80
86
|
}
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
[
|
|
88
|
+
authTemp,
|
|
89
|
+
menuTemp,
|
|
90
|
+
"microProps = {}"
|
|
91
|
+
].forEach(function(temp) {
|
|
92
|
+
path.insertAfter(_template.default.ast(temp));
|
|
93
|
+
});
|
|
83
94
|
}
|
|
84
95
|
});
|
|
85
96
|
}
|
|
@@ -104,10 +115,17 @@ var CodeMaker = /*#__PURE__*/ function() {
|
|
|
104
115
|
}
|
|
105
116
|
},
|
|
106
117
|
{
|
|
107
|
-
key: "
|
|
108
|
-
value: function
|
|
109
|
-
var
|
|
110
|
-
|
|
118
|
+
key: "getMenuCode",
|
|
119
|
+
value: function getMenuCode(manifest) {
|
|
120
|
+
var temp = "\n {\n microProps.getOwnMenu = ()=> {\n const localLng = localStorage.getItem(\"i18nextLng\");\n let index = localLng === \"zh-CN\" ? 0 : 1\n const ownMenu = ".concat(JSON.stringify((0, _getFakeMenu).getFakeMenu(manifest)), "\n ownMenu.micro_app_name = ownMenu.micro_app_name[index]\n ownMenu.entry_name = ownMenu.entry_name[index]\n ownMenu.sub_entry_list = ownMenu.sub_entry_list.map(item=>({\n ...item,\n micro_app_name:item.micro_app_name[index],\n entry_name:item.entry_name[index]\n }))\n return ownMenu\n }\n }\n ");
|
|
121
|
+
return temp;
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
key: "getAuthTemp",
|
|
126
|
+
value: function getAuthTemp(props) {
|
|
127
|
+
var _privileges = props.privileges, privileges = _privileges === void 0 ? [] : _privileges, _authedCode = props.authedCode, authedCode = _authedCode === void 0 ? [] : _authedCode;
|
|
128
|
+
var temp = "\n {\n window._allCodesStatusMap = new Map()\n window._authedCodeInfoProxy = {}\n microProps.hasPermission = (code) => {\n return window._allCodesStatusMap.get(code)\n };\n const changeAuthedMap = (authedCode) => {\n const privileges = ".concat(JSON.stringify(privileges), "\n const allCodesStatus = privileges?.map(\n ({ name, code }) => [\n code,\n authedCode.includes(code),\n ]\n );\n window._allCodesStatusMap = new Map(allCodesStatus)\n }\n \n ").concat(REACT_TYPES.includes(this.microFramework) ? this.reactReRenderTemp() : this.vueReRenderTemp(), "\n const authedCodeInfo = {\n authedCode:").concat(JSON.stringify(authedCode), "\n }\n \n changeAuthedMap(authedCodeInfo.authedCode)\n window._authedCodeInfoProxy = new Proxy(authedCodeInfo,{\n get(target,prop){\n return target[prop]\n },\n set(target,prop,value){\n target[prop] = value\n if(prop === 'authedCode') {\n changeAuthedMap(value)\n reRender()\n }\n return true\n }\n })\n\n }\n ");
|
|
111
129
|
return temp;
|
|
112
130
|
}
|
|
113
131
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Manifest } from "./parseManifest";
|
|
2
|
+
interface FakeMenu {
|
|
3
|
+
micro_app_name: string[];
|
|
4
|
+
entry_name: string[];
|
|
5
|
+
path: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
sub_entry_list: FakeMenu[];
|
|
8
|
+
}
|
|
9
|
+
export declare function getFakeMenu(manifest: Manifest): FakeMenu;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.getFakeMenu = getFakeMenu;
|
|
6
|
+
var _getLang = require("./getLang");
|
|
7
|
+
function _defineProperty(obj, key, value) {
|
|
8
|
+
if (key in obj) {
|
|
9
|
+
Object.defineProperty(obj, key, {
|
|
10
|
+
value: value,
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
obj[key] = value;
|
|
17
|
+
}
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
function _objectSpread(target) {
|
|
21
|
+
for(var i = 1; i < arguments.length; i++){
|
|
22
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
23
|
+
var ownKeys = Object.keys(source);
|
|
24
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
25
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
26
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
ownKeys.forEach(function(key) {
|
|
30
|
+
_defineProperty(target, key, source[key]);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return target;
|
|
34
|
+
}
|
|
35
|
+
function getFakeMenu(manifest) {
|
|
36
|
+
var appName = manifest.name, _entries = manifest.entries, entries = _entries === void 0 ? [] : _entries;
|
|
37
|
+
var appNameLang = (0, _getLang).nameProcesser2(appName);
|
|
38
|
+
var fakeMenuDefault = {
|
|
39
|
+
micro_app_name: appNameLang,
|
|
40
|
+
sub_entry_list: []
|
|
41
|
+
};
|
|
42
|
+
var fakeMenu = null;
|
|
43
|
+
switch(entries.length){
|
|
44
|
+
case 0:
|
|
45
|
+
fakeMenu = _objectSpread({
|
|
46
|
+
entry_name: appNameLang,
|
|
47
|
+
path: ""
|
|
48
|
+
}, fakeMenuDefault);
|
|
49
|
+
break;
|
|
50
|
+
case 1:
|
|
51
|
+
var ref = entries[0], name1 = ref.name, path1 = ref.path;
|
|
52
|
+
fakeMenu = _objectSpread({
|
|
53
|
+
entry_name: (0, _getLang).nameProcesser2(name1),
|
|
54
|
+
path: path1
|
|
55
|
+
}, fakeMenuDefault);
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
fakeMenu = _objectSpread({
|
|
59
|
+
entry_name: appNameLang,
|
|
60
|
+
path: ""
|
|
61
|
+
}, fakeMenuDefault, {
|
|
62
|
+
sub_entry_list: entries.map(function(param) {
|
|
63
|
+
var name = param.name, path = param.path;
|
|
64
|
+
return _objectSpread({
|
|
65
|
+
entry_name: (0, _getLang).nameProcesser2(name),
|
|
66
|
+
path: path
|
|
67
|
+
}, fakeMenuDefault);
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
return fakeMenu;
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const nameProcesser2: (name: any) => any[];
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.nameProcesser2 = void 0;
|
|
6
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
7
|
+
var _path = _interopRequireDefault(require("path"));
|
|
8
|
+
function _arrayLikeToArray(arr, len) {
|
|
9
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
10
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
11
|
+
return arr2;
|
|
12
|
+
}
|
|
13
|
+
function _arrayWithHoles(arr) {
|
|
14
|
+
if (Array.isArray(arr)) return arr;
|
|
15
|
+
}
|
|
16
|
+
function _interopRequireDefault(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function _iterableToArrayLimit(arr, i) {
|
|
22
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
23
|
+
if (_i == null) return;
|
|
24
|
+
var _arr = [];
|
|
25
|
+
var _n = true;
|
|
26
|
+
var _d = false;
|
|
27
|
+
var _s, _e;
|
|
28
|
+
try {
|
|
29
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
30
|
+
_arr.push(_s.value);
|
|
31
|
+
if (i && _arr.length === i) break;
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
_d = true;
|
|
35
|
+
_e = err;
|
|
36
|
+
} finally{
|
|
37
|
+
try {
|
|
38
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
39
|
+
} finally{
|
|
40
|
+
if (_d) throw _e;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return _arr;
|
|
44
|
+
}
|
|
45
|
+
function _nonIterableRest() {
|
|
46
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
47
|
+
}
|
|
48
|
+
function _slicedToArray(arr, i) {
|
|
49
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
50
|
+
}
|
|
51
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
52
|
+
if (!o) return;
|
|
53
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
54
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
55
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
56
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
57
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
58
|
+
}
|
|
59
|
+
var zhLang = _fsExtra.default.readJSONSync(_path.default.resolve(process.cwd(), "_locales/zh-CN.json"));
|
|
60
|
+
var enLang = _fsExtra.default.readJSONSync(_path.default.resolve(process.cwd(), "_locales/en.json"));
|
|
61
|
+
var nameProcesser2 = function(name) {
|
|
62
|
+
var ref = _slicedToArray(name.split("."), 2), _ = ref[0], key = ref[1];
|
|
63
|
+
return [
|
|
64
|
+
zhLang[key] || name,
|
|
65
|
+
enLang[key] || name
|
|
66
|
+
];
|
|
67
|
+
};
|
|
68
|
+
exports.nameProcesser2 = nameProcesser2;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface Privilege {
|
|
2
|
+
name: string;
|
|
3
|
+
code: string;
|
|
4
|
+
}
|
|
5
|
+
export interface Manifest {
|
|
6
|
+
name: string;
|
|
7
|
+
defaultMenuIcon?: {
|
|
8
|
+
type: "URL";
|
|
9
|
+
url: string;
|
|
10
|
+
};
|
|
11
|
+
entries: {
|
|
12
|
+
type: string;
|
|
13
|
+
code: string;
|
|
14
|
+
appIcon?: Object;
|
|
15
|
+
name: string;
|
|
16
|
+
path: string;
|
|
17
|
+
ratio?: number;
|
|
18
|
+
}[];
|
|
19
|
+
privileges: Privilege[];
|
|
20
|
+
}
|
|
21
|
+
export default function parseManifest(): Manifest;
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuya-sat/micro-dev-loader",
|
|
3
|
-
"version": "0.0.4",
|
|
3
|
+
"version": "1.0.0-rc.4",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"dev": "swc src -D -w -d dist",
|
|
8
|
-
"build": "swc src -D -d dist",
|
|
7
|
+
"dev": "rm -rf dist/ && tsc --emitDeclarationOnly && swc src -D -w -d dist",
|
|
8
|
+
"build": "rm -rf dist/ && tsc --emitDeclarationOnly && swc src -D -d dist",
|
|
9
9
|
"prepublish": "yarn build",
|
|
10
10
|
"test": "jest --verbose ./__tests__"
|
|
11
11
|
},
|
|
@@ -35,5 +35,6 @@
|
|
|
35
35
|
"saas",
|
|
36
36
|
"cloud",
|
|
37
37
|
"tuya"
|
|
38
|
-
]
|
|
38
|
+
],
|
|
39
|
+
"stableVersion": "0.0.4"
|
|
39
40
|
}
|