oipage 1.4.0-alpha.1 → 1.4.1-alpha.0

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.
Files changed (71) hide show
  1. package/.github/FUNDING.yml +11 -11
  2. package/AUTHORS.txt +6 -6
  3. package/CHANGELOG +99 -83
  4. package/LICENSE +20 -20
  5. package/README.md +80 -80
  6. package/bin/data/mineTypes.json +104 -104
  7. package/bin/disk.js +31 -31
  8. package/bin/help.js +25 -24
  9. package/bin/intercept.js +15 -15
  10. package/bin/run +98 -96
  11. package/bin/serve.d.ts +55 -50
  12. package/bin/serve.js +150 -131
  13. package/bin/template/404.html +183 -171
  14. package/bin/tools/format.js +75 -75
  15. package/bin/tools/network.js +42 -42
  16. package/bin/tools/resolve404.js +83 -83
  17. package/bin/tools/resolveImport.js +88 -88
  18. package/bin/website-htmls/dialogs/index.js +43 -0
  19. package/bin/website-htmls/index.html +18 -0
  20. package/bin/website-htmls/logo.png +0 -0
  21. package/bin/website-htmls/main.js +10 -0
  22. package/bin/website-htmls/pages/App/index.html +4 -0
  23. package/bin/website-htmls/pages/App/index.js +23 -0
  24. package/bin/website-htmls/pages/App/index.scss +43 -0
  25. package/bin/website-htmls/pages/appStore/index.html +6 -0
  26. package/bin/website-htmls/pages/appStore/index.js +18 -0
  27. package/bin/website-htmls/pages/appStore/index.scss +27 -0
  28. package/bin/website-htmls/router.config.js +11 -0
  29. package/bin/website-htmls/styles/common.css +3 -0
  30. package/bin/website-htmls/styles/normalize.css +95 -0
  31. package/bin/website-plugins/intercept/head.js +9 -0
  32. package/bin/website-plugins/intercept/index.js +5 -0
  33. package/bin/website-plugins/intercept/oipage-zipaper-intercept.js +40 -0
  34. package/bin/website-plugins/loader/index.js +12 -0
  35. package/bin/website-plugins/loader/oipage-html-loader.js +8 -0
  36. package/bin/website-plugins/loader/oipage-scss-loader.js +150 -0
  37. package/nodejs/animation/index.d.ts +19 -19
  38. package/nodejs/animation/index.js +104 -104
  39. package/nodejs/cmdlog/index.d.ts +20 -20
  40. package/nodejs/cmdlog/index.js +75 -75
  41. package/nodejs/disk/index.d.ts +16 -16
  42. package/nodejs/disk/index.js +78 -78
  43. package/nodejs/format/index.d.ts +29 -0
  44. package/nodejs/format/index.js +114 -0
  45. package/nodejs/json/index.d.ts +9 -9
  46. package/nodejs/json/index.js +206 -206
  47. package/nodejs/logform/index.d.ts +18 -18
  48. package/nodejs/logform/index.js +94 -94
  49. package/nodejs/reader/index.d.ts +32 -32
  50. package/nodejs/reader/index.js +20 -20
  51. package/nodejs/throttle/index.d.ts +30 -30
  52. package/nodejs/throttle/index.js +50 -50
  53. package/package.json +42 -40
  54. package/web/XMLHttpRequest/index.d.ts +18 -0
  55. package/web/XMLHttpRequest/index.js +65 -0
  56. package/web/animation/index.d.ts +19 -19
  57. package/web/animation/index.js +104 -104
  58. package/web/format/index.d.ts +29 -0
  59. package/web/format/index.js +112 -0
  60. package/web/json/index.d.ts +9 -9
  61. package/web/json/index.js +206 -206
  62. package/web/onReady/index.d.ts +7 -7
  63. package/web/onReady/index.js +8 -8
  64. package/web/performChunk/index.d.ts +4 -4
  65. package/web/performChunk/index.js +19 -19
  66. package/web/reader/index.d.ts +32 -32
  67. package/web/reader/index.js +20 -20
  68. package/web/style/index.d.ts +21 -21
  69. package/web/style/index.js +19 -19
  70. package/web/throttle/index.d.ts +30 -30
  71. package/web/throttle/index.js +50 -50
@@ -1,100 +1,100 @@
1
1
  /*!
2
- * logform of OIPage v1.4.0-alpha.1
2
+ * logform of OIPage v1.4.1-alpha.0
3
3
  * git+https://github.com/oi-contrib/OIPage.git
4
4
  */
5
5
  const {linelog} = require("../cmdlog/index.js");
6
- let getTitle = function (title) {
7
- return "➤ " + title;
8
- };
9
-
10
- let closeForm = function () {
11
- process.removeAllListeners("keypress");
12
- rl.close();
13
- };
14
-
15
- let selectView = (title, list, index) => {
16
- let txtArray = [];
17
- for (let i = 0; i < list.length; i++) {
18
- txtArray.push(" " + (i == index ? "●" : "○") + " " + list[i]);
19
- }
20
-
21
- linelog(`${title}\n${txtArray.join("\n")}\n`);
22
- };
23
-
24
- function logform(config) {
25
- const rl = require("readline").createInterface({
26
- input: process.stdin,
27
- output: process.stdout
28
- });
29
-
30
- return new Promise(function (resolve, reject) {
31
- let result = [], keyback = () => { };
32
-
33
- console.log("");
34
-
35
- process.stdin.on("keypress", (_str, key) => {
36
- keyback(key.name);
37
- });
38
-
39
- let getResult = (index) => {
40
- if (index >= config.length) {
41
- closeForm();
42
- resolve(result);
43
- } else {
44
- let item = config[index];
45
-
46
- // 文本输入
47
- if (item.type == "input") {
48
-
49
- rl.question(getTitle(item.label), (answer) => {
50
- result.push(answer);
51
- setTimeout(() => {
52
- console.log("");
53
- getResult(index + 1);
54
- }, 50);
55
- });
56
-
57
- }
58
-
59
- // 列表选择
60
- else if (item.type == "select") {
61
- let title = getTitle(item.label);
62
-
63
- let selectIndex = 0;
64
- selectView(title, item.value, selectIndex);
65
- keyback = (keyname) => {
66
- if (keyname == "return") {
67
- result.push(selectIndex);
68
- keyback = () => { };
69
- linelog();
70
- setTimeout(() => {
71
- getResult(index + 1);
72
- }, 50);
73
- } else {
74
- if (keyname == "left" || keyname == "up") {
75
- if (selectIndex > 0) selectIndex -= 1;
76
- else selectIndex = item.value.length - 1;
77
- } else if (keyname == "right" || keyname == "down") {
78
- if (selectIndex < item.value.length - 1) selectIndex += 1;
79
- else selectIndex = 0;
80
- } else {
81
- return;
82
- }
83
- selectView(title, item.value, selectIndex);
84
- }
85
- };
86
-
87
- }
88
-
89
- // 非法类型
90
- else {
91
- closeForm();
92
- reject(new Error("Illegal type!"));
93
- }
94
- }
95
-
96
- };
97
- getResult(0);
98
- });
6
+ let getTitle = function (title) {
7
+ return "➤ " + title;
8
+ };
9
+
10
+ let closeForm = function (rl) {
11
+ process.removeAllListeners("keypress");
12
+ rl.close();
13
+ };
14
+
15
+ let selectView = (title, list, index) => {
16
+ let txtArray = [];
17
+ for (let i = 0; i < list.length; i++) {
18
+ txtArray.push(" " + (i == index ? "●" : "○") + " " + list[i]);
19
+ }
20
+
21
+ linelog(`${title}\n${txtArray.join("\n")}\n`);
22
+ };
23
+
24
+ function logform(config) {
25
+ const rl = require("readline").createInterface({
26
+ input: process.stdin,
27
+ output: process.stdout
28
+ });
29
+
30
+ return new Promise(function (resolve, reject) {
31
+ let result = [], keyback = () => { };
32
+
33
+ console.log("");
34
+
35
+ process.stdin.on("keypress", (_str, key) => {
36
+ keyback(key.name);
37
+ });
38
+
39
+ let getResult = (index) => {
40
+ if (index >= config.length) {
41
+ closeForm(rl);
42
+ resolve(result);
43
+ } else {
44
+ let item = config[index];
45
+
46
+ // 文本输入
47
+ if (item.type == "input") {
48
+
49
+ rl.question(getTitle(item.label), (answer) => {
50
+ result.push(answer);
51
+ setTimeout(() => {
52
+ console.log("");
53
+ getResult(index + 1);
54
+ }, 50);
55
+ });
56
+
57
+ }
58
+
59
+ // 列表选择
60
+ else if (item.type == "select") {
61
+ let title = getTitle(item.label);
62
+
63
+ let selectIndex = 0;
64
+ selectView(title, item.value, selectIndex);
65
+ keyback = (keyname) => {
66
+ if (keyname == "return") {
67
+ result.push(selectIndex);
68
+ keyback = () => { };
69
+ linelog();
70
+ setTimeout(() => {
71
+ getResult(index + 1);
72
+ }, 50);
73
+ } else {
74
+ if (keyname == "left" || keyname == "up") {
75
+ if (selectIndex > 0) selectIndex -= 1;
76
+ else selectIndex = item.value.length - 1;
77
+ } else if (keyname == "right" || keyname == "down") {
78
+ if (selectIndex < item.value.length - 1) selectIndex += 1;
79
+ else selectIndex = 0;
80
+ } else {
81
+ return;
82
+ }
83
+ selectView(title, item.value, selectIndex);
84
+ }
85
+ };
86
+
87
+ }
88
+
89
+ // 非法类型
90
+ else {
91
+ closeForm();
92
+ reject(new Error("Illegal type!"));
93
+ }
94
+ }
95
+
96
+ };
97
+ getResult(0);
98
+ });
99
99
  }
100
100
  exports.logform = logform;
@@ -1,33 +1,33 @@
1
- /**
2
- * 文本分析读取器
3
- */
4
-
5
- export interface readerInstanceType {
6
-
7
- /**
8
- * 当前字符位置
9
- */
10
- index: number
11
-
12
- /**
13
- * 当前字符内容
14
- */
15
- value: string
16
-
17
- /**
18
- * 读取下一个字符
19
- */
20
- readNext(): string
21
-
22
- /**
23
- * 获取往后count个值
24
- * @param count
25
- */
26
- getNextN(count: number): string
27
- }
28
-
29
- export interface readerType {
30
- (plain: string): readerInstanceType
31
- }
32
-
1
+ /**
2
+ * 文本分析读取器
3
+ */
4
+
5
+ export interface readerInstanceType {
6
+
7
+ /**
8
+ * 当前字符位置
9
+ */
10
+ index: number
11
+
12
+ /**
13
+ * 当前字符内容
14
+ */
15
+ value: string
16
+
17
+ /**
18
+ * 读取下一个字符
19
+ */
20
+ readNext(): string
21
+
22
+ /**
23
+ * 获取往后count个值
24
+ * @param count
25
+ */
26
+ getNextN(count: number): string
27
+ }
28
+
29
+ export interface readerType {
30
+ (plain: string): readerInstanceType
31
+ }
32
+
33
33
  export let reader: readerType
@@ -1,26 +1,26 @@
1
1
  /*!
2
- * reader of OIPage v1.4.0-alpha.1
2
+ * reader of OIPage v1.4.1-alpha.0
3
3
  * git+https://github.com/oi-contrib/OIPage.git
4
4
  */
5
5
 
6
- function reader(plain) {
7
-
8
- let handler = {
9
- index: -1,
10
- value: null
11
- };
12
-
13
- // 读取下一个字符
14
- handler.readNext = function () {
15
- handler.value = handler.index++ < plain.length - 1 ? plain[handler.index] : null;
16
- return handler.value;
17
- };
18
-
19
- // 获取往后num个值
20
- handler.getNextN = function (num) {
21
- return plain.substring(handler.index, num + handler.index > plain.length ? plain.length : num + handler.index);
22
- };
23
-
24
- return handler;
6
+ function reader(plain) {
7
+
8
+ let handler = {
9
+ index: -1,
10
+ value: null
11
+ };
12
+
13
+ // 读取下一个字符
14
+ handler.readNext = function () {
15
+ handler.value = handler.index++ < plain.length - 1 ? plain[handler.index] : null;
16
+ return handler.value;
17
+ };
18
+
19
+ // 获取往后num个值
20
+ handler.getNextN = function (num) {
21
+ return plain.substring(handler.index, num + handler.index > plain.length ? plain.length : num + handler.index);
22
+ };
23
+
24
+ return handler;
25
25
  }
26
26
  exports.reader = reader;
@@ -1,31 +1,31 @@
1
- export type throttleOpportunityType = "begin" | "end" | "wide"
2
-
3
- export interface throttleOptionType {
4
-
5
- /**
6
- * 节流时长
7
- */
8
- time?: number
9
-
10
- /**
11
- * 是否持续节流
12
- */
13
- keep?: boolean
14
-
15
- /**
16
- * 执行时机
17
- *
18
- * begin(开始触发)、end(结束触发)、wide(第一次开始触发,其余结束触发)
19
- */
20
- opportunity?: throttleOpportunityType
21
-
22
- }
23
-
24
- /**
25
- * 节流函数
26
- */
27
- export interface throttleType {
28
- (callback: Function, option?: throttleOptionType): Function
29
- }
30
-
1
+ export type throttleOpportunityType = "begin" | "end" | "wide"
2
+
3
+ export interface throttleOptionType {
4
+
5
+ /**
6
+ * 节流时长
7
+ */
8
+ time?: number
9
+
10
+ /**
11
+ * 是否持续节流
12
+ */
13
+ keep?: boolean
14
+
15
+ /**
16
+ * 执行时机
17
+ *
18
+ * begin(开始触发)、end(结束触发)、wide(第一次开始触发,其余结束触发)
19
+ */
20
+ opportunity?: throttleOpportunityType
21
+
22
+ }
23
+
24
+ /**
25
+ * 节流函数
26
+ */
27
+ export interface throttleType {
28
+ (callback: Function, option?: throttleOptionType): Function
29
+ }
30
+
31
31
  export let throttle: throttleType
@@ -1,56 +1,56 @@
1
1
  /*!
2
- * throttle of OIPage v1.4.0-alpha.1
2
+ * throttle of OIPage v1.4.1-alpha.0
3
3
  * git+https://github.com/oi-contrib/OIPage.git
4
4
  */
5
5
 
6
- function throttle(callback, _option) {
7
-
8
- // 缺省值
9
- var option = {
10
- time: 200,
11
- keep: false,
12
- opportunity: "end"
13
- };
14
-
15
- // 校对
16
- if (_option) {
17
- for (var key in _option) {
18
- option[key] = _option[key];
19
- }
20
- }
21
-
22
- var hadInterval = false, hadClick = false, oneClick = false, arg;
23
- return function () {
24
- const _this = this;
25
- arg = arguments;
26
-
27
- // 如果前置任务都完成了
28
- if (!hadInterval) {
29
- if (option.opportunity != 'end') {
30
- callback.apply(_this, arg);
31
- }
32
- hadInterval = true;
33
-
34
- var interval = setInterval(() => {
35
- if (hadClick) {
36
- if (!option.keep) {
37
- callback.apply(_this, arg);
38
- }
39
- } else {
40
- if (option.opportunity != 'begin') {
41
- if (oneClick || option.opportunity == 'end') callback.apply(_this, arg);
42
- }
43
- hadInterval = false;
44
- oneClick = false;
45
- clearInterval(interval);
46
- }
47
- hadClick = false;
48
- }, option.time);
49
- } else {
50
- hadClick = true;
51
- oneClick = true;
52
- }
53
-
54
- };
6
+ function throttle(callback, _option) {
7
+
8
+ // 缺省值
9
+ var option = {
10
+ time: 200,
11
+ keep: false,
12
+ opportunity: "end"
13
+ };
14
+
15
+ // 校对
16
+ if (_option) {
17
+ for (var key in _option) {
18
+ option[key] = _option[key];
19
+ }
20
+ }
21
+
22
+ var hadInterval = false, hadClick = false, oneClick = false, arg;
23
+ return function () {
24
+ const _this = this;
25
+ arg = arguments;
26
+
27
+ // 如果前置任务都完成了
28
+ if (!hadInterval) {
29
+ if (option.opportunity != 'end') {
30
+ callback.apply(_this, arg);
31
+ }
32
+ hadInterval = true;
33
+
34
+ var interval = setInterval(() => {
35
+ if (hadClick) {
36
+ if (!option.keep) {
37
+ callback.apply(_this, arg);
38
+ }
39
+ } else {
40
+ if (option.opportunity != 'begin') {
41
+ if (oneClick || option.opportunity == 'end') callback.apply(_this, arg);
42
+ }
43
+ hadInterval = false;
44
+ oneClick = false;
45
+ clearInterval(interval);
46
+ }
47
+ hadClick = false;
48
+ }, option.time);
49
+ } else {
50
+ hadClick = true;
51
+ oneClick = true;
52
+ }
53
+
54
+ };
55
55
  }
56
56
  exports.throttle = throttle;
package/package.json CHANGED
@@ -1,40 +1,42 @@
1
- {
2
- "name": "oipage",
3
- "version": "1.4.0-alpha.1",
4
- "description": "前端网页或应用快速开发助手,包括开发服务器、辅助命令、实用API等",
5
- "sideEffects": false,
6
- "scripts": {
7
- "dev": "node ./build/index.js watch",
8
- "build": "node ./build/index.js",
9
- "serve": "node ./bin/run serve --config ./oipage.config.js"
10
- },
11
- "bin": {
12
- "oipage-cli": "bin/run"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/oi-contrib/OIPage.git"
17
- },
18
- "keywords": [
19
- "dev",
20
- "server",
21
- "style",
22
- "css",
23
- "nodejs",
24
- "core",
25
- "oipage",
26
- "browser"
27
- ],
28
- "author": {
29
- "name": "zxl20070701",
30
- "url": "https://zxl20070701.github.io/notebook/home.html"
31
- },
32
- "license": "MIT",
33
- "bugs": {
34
- "url": "https://github.com/oi-contrib/OIPage/issues"
35
- },
36
- "homepage": "https://oi-contrib.github.io/OIPage",
37
- "dependencies": {
38
- "vislite": "^1.4.0"
39
- }
40
- }
1
+ {
2
+ "name": "oipage",
3
+ "version": "1.4.1-alpha.0",
4
+ "description": "前端网页或应用快速开发助手,包括开发服务器、辅助命令、实用API等",
5
+ "sideEffects": false,
6
+ "scripts": {
7
+ "dev": "node ./build/index.js watch",
8
+ "build": "node ./build/index.js",
9
+ "serve": "node ./bin/run serve --config ./oipage.config.js"
10
+ },
11
+ "bin": {
12
+ "oipage-cli": "bin/run"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/oi-contrib/OIPage.git"
17
+ },
18
+ "keywords": [
19
+ "dev",
20
+ "server",
21
+ "style",
22
+ "css",
23
+ "nodejs",
24
+ "core",
25
+ "oipage",
26
+ "browser"
27
+ ],
28
+ "author": {
29
+ "name": "zxl20070701",
30
+ "url": "https://zxl20070701.github.io/notebook/home.html"
31
+ },
32
+ "license": "MIT",
33
+ "bugs": {
34
+ "url": "https://github.com/oi-contrib/OIPage/issues"
35
+ },
36
+ "homepage": "https://oi-contrib.github.io/OIPage",
37
+ "dependencies": {
38
+ "vislite": "^1.4.0",
39
+ "xhtml-to-json": "^0.1.0",
40
+ "zipaper": "^0.2.0"
41
+ }
42
+ }
@@ -0,0 +1,18 @@
1
+ export interface callbackType {
2
+ (type: "send" | "send@error" | "open" | "error" | "timeout" | "end", params: {
3
+ [key: string]: any
4
+ }): void
5
+ }
6
+
7
+ export interface callbackFactoryType {
8
+ (): callbackType
9
+ }
10
+
11
+ /**
12
+ * XHR拦截
13
+ */
14
+ export interface XHRInterceptType {
15
+ (callbackFactory: callbackFactoryType): void
16
+ }
17
+
18
+ export let XHRIntercept: XHRInterceptType
@@ -0,0 +1,65 @@
1
+ /*!
2
+ * XMLHttpRequest of OIPage v1.4.1-alpha.0
3
+ * git+https://github.com/oi-contrib/OIPage.git
4
+ */
5
+
6
+ export function XHRIntercept(callbackFactory) {
7
+
8
+ // 原生的请求方法
9
+ var { open, send } = window.XMLHttpRequest.prototype;
10
+
11
+ window.XMLHttpRequest.prototype.open = function (method, url) {
12
+ this.callback = callbackFactory();
13
+
14
+ // 响应
15
+ let { ontimeout, onerror, onloadend } = this;
16
+
17
+ this.onloadend = function () {
18
+ if (onloadend) { onloadend.apply(this, arguments); }
19
+
20
+
21
+ if (this.readyState == 4) {
22
+ let response = "";
23
+ try { response = JSON.parse(this.response); } catch (e) { response = this.response; }
24
+
25
+ this.callback("end", {
26
+ url: this.responseURL,
27
+ status: this.status,
28
+ statusText: this.statusText,
29
+ response: response,
30
+ responseText: this.responseText
31
+ });
32
+ }
33
+ };
34
+
35
+ this.ontimeout = function () {
36
+ if (ontimeout) { ontimeout.apply(this, arguments); }
37
+ this.callback("timeout", {});
38
+ };
39
+
40
+ this.onerror = function () {
41
+ if (onerror) { onerror.apply(this, arguments); }
42
+ this.callback("error", {});
43
+ };
44
+
45
+ open.apply(this, arguments);
46
+ this.callback("open", {
47
+ method: method,
48
+ url: url
49
+ });
50
+ };
51
+
52
+ // 拦截发送
53
+ window.XMLHttpRequest.prototype.send = function (data) {
54
+ try {
55
+ send.apply(this, arguments);
56
+ this.callback("send", {
57
+ data: data
58
+ });
59
+ } catch (error) {
60
+ this.callback("send@error", {
61
+ error: error
62
+ });
63
+ }
64
+ }
65
+ }