diff options
| author | Shulhan <ms@kilabit.info> | 2021-08-28 22:23:27 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2021-08-28 22:24:51 +0700 |
| commit | c246299101e47c28e064dbeacdbe718909bd7f17 (patch) | |
| tree | 71ba2799017c5172b4b917ed0b73d4bd17584f8a | |
| parent | 50c57f048eecab68570a0568f20922044935ecca (diff) | |
| download | pakakeh.ts-c246299101e47c28e064dbeacdbe718909bd7f17.tar.xz | |
all: use the WuiResponseInterface for non-void return type
This commit changes the WuiVfsOptions.istNodes and
WuiEditorOptions.OpenFile to WuiResponseInterface.
WuiResponseInterface define an interface that will be returned by function
or method with non-void type.
If the function/method success, the code should be set to 200 (equal to
HTTP OK), and the data will contains the expected data for that function.
If the function/method call failed, the code should be set to other value
beside 200 with a message describe why its failed.
| -rw-r--r-- | README.adoc | 2 | ||||
| -rw-r--r-- | editor/editor.d.ts | 4 | ||||
| -rw-r--r-- | editor/editor.js | 1 | ||||
| -rw-r--r-- | editor/editor.ts | 9 | ||||
| -rw-r--r-- | response.d.ts | 5 | ||||
| -rw-r--r-- | response.js | 3 | ||||
| -rw-r--r-- | response.ts | 15 | ||||
| -rw-r--r-- | vfs/example.html | 22 | ||||
| -rw-r--r-- | vfs/vfs.d.ts | 15 | ||||
| -rw-r--r-- | vfs/vfs.js | 35 | ||||
| -rw-r--r-- | vfs/vfs.ts | 31 |
11 files changed, 101 insertions, 41 deletions
diff --git a/README.adoc b/README.adoc index fddcc77..8f861ef 100644 --- a/README.adoc +++ b/README.adoc @@ -10,3 +10,5 @@ A HTML web-user interface components built with TypeScript. * An exported type or class. interface, type, method, or function name MUST start with an upper-case letter. * An exported class, type, interface, or function MUST be prefixed with "Wui". + +* Use the `WuiResponseInterface` for non-void return type. diff --git a/editor/editor.d.ts b/editor/editor.d.ts index 2c716ee..2784506 100644 --- a/editor/editor.d.ts +++ b/editor/editor.d.ts @@ -1,8 +1,8 @@ -import { WuiVfsResponseInterface } from "../vfs/vfs"; +import { WuiResponseInterface } from "../response"; export interface WuiEditorOptions { id: string; is_editable: boolean; - OpenFile(path: string): WuiVfsResponseInterface; + OpenFile(path: string): WuiResponseInterface; OnSelection(begin: number, end: number): void; OnSave(content: string): void; } diff --git a/editor/editor.js b/editor/editor.js index 3f0bad2..d6f0f1f 100644 --- a/editor/editor.js +++ b/editor/editor.js @@ -46,6 +46,7 @@ var WUI_EDITOR_CLASS_LINE_NUMBER = "wui_editor_line_number"; var WUI_EDITOR_CLASS_LINE_TEXT = "wui_editor_line_text"; var WuiEditor = /** @class */ (function () { function WuiEditor(opts) { + var _this = this; this.opts = opts; this.active_file = null; this.active_text = null; diff --git a/editor/editor.ts b/editor/editor.ts index e97b563..daa5cd2 100644 --- a/editor/editor.ts +++ b/editor/editor.ts @@ -7,13 +7,14 @@ const WUI_EDITOR_CLASS_LINE = "wui_editor_line" const WUI_EDITOR_CLASS_LINE_NUMBER = "wui_editor_line_number" const WUI_EDITOR_CLASS_LINE_TEXT = "wui_editor_line_text" -import { WuiVfsNodeInterface, WuiVfsResponseInterface } from "../vfs/vfs" +import { WuiResponseInterface } from "../response" +import { WuiVfsNodeInterface } from "../vfs/vfs" export interface WuiEditorOptions { id: string is_editable: boolean - OpenFile(path: string): WuiVfsResponseInterface + OpenFile(path: string): WuiResponseInterface // Handler that will be called when user select lines. OnSelection(begin: number, end: number): void @@ -317,10 +318,10 @@ export class WuiEditor { } } - async OpenFile(path: string): Promise<WuiVfsResponseInterface> { + async OpenFile(path: string): Promise<WuiResponseInterface> { let res = await this.opts.OpenFile(path) if (!res) { - return { code: 500 } as WuiVfsResponseInterface + return { code: 500 } as WuiResponseInterface } if (res.code != 200) { return res diff --git a/response.d.ts b/response.d.ts new file mode 100644 index 0000000..2e503a7 --- /dev/null +++ b/response.d.ts @@ -0,0 +1,5 @@ +export interface WuiResponseInterface { + code: number; + message?: string; + data?: any; +} diff --git a/response.js b/response.js new file mode 100644 index 0000000..6c55c1b --- /dev/null +++ b/response.js @@ -0,0 +1,3 @@ +"use strict"; +exports.__esModule = true; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
\ No newline at end of file diff --git a/response.ts b/response.ts new file mode 100644 index 0000000..e4122c6 --- /dev/null +++ b/response.ts @@ -0,0 +1,15 @@ +// +// WuiResponseInterface define an interface that will be returned by function +// or method with non-void type. +// +// If the function/method success, the code should be set to 200 (equal to +// HTTP OK), and the data will contains the expected data for that function. +// +// If the function/method call failed, the code should be set to other value +// beside 200 with a message describe why its failed. +// +export interface WuiResponseInterface { + code: number + message?: string + data?: any +} diff --git a/vfs/example.html b/vfs/example.html index 0fb1f82..3d8a772 100644 --- a/vfs/example.html +++ b/vfs/example.html @@ -9,6 +9,7 @@ <script> var exports = {} + var wui_vfs; </script> <script src="vfs.js"></script> <script> @@ -82,15 +83,19 @@ }, } - function main() { + async function main() { let opts = { id: "vfs", - is_editable: true, ListNodes: doListNodes, - GetNode: doGetNode, + OnClickNode: OnClickNode, } - let vfs = new Vfs(opts) + let res = await NewWuiVfs(opts) + if (res.code != 200) { + console.error(res) + return + } + wui_vfs = res.data } function doListNodes() { @@ -101,7 +106,11 @@ return res } - function doGetNode(path) { + function OnClickNode(path, is_dir) { + if (is_dir) { + return + } + let res = { code: 200, data: { @@ -132,7 +141,8 @@ res.code = 404 res.message = "path not found" } - return res + + console.log(res) } </script> </body> diff --git a/vfs/vfs.d.ts b/vfs/vfs.d.ts index 3d18e7d..706ccc8 100644 --- a/vfs/vfs.d.ts +++ b/vfs/vfs.d.ts @@ -1,3 +1,4 @@ +import { WuiResponseInterface } from "../response"; export interface WuiVfsNodeInterface { name: string; path: string; @@ -9,16 +10,12 @@ export interface WuiVfsNodeInterface { childs?: WuiVfsNodeInterface[]; content?: string; } -export interface WuiVfsResponseInterface { - code: number; - message?: string; - data?: WuiVfsNodeInterface | WuiPathNodeInterface; -} export interface WuiVfsOptions { id: string; - ListNodes: () => WuiPathNodeInterface; + ListNodes: () => WuiResponseInterface; OnClickNode(path: string, is_dir: boolean): void; } +export declare function NewWuiVfs(opts: WuiVfsOptions): Promise<WuiResponseInterface>; export declare class WuiVfs { opts: WuiVfsOptions; private el; @@ -26,11 +23,7 @@ export declare class WuiVfs { private com_list; private path_node; constructor(opts: WuiVfsOptions); - private init; + init(): Promise<WuiResponseInterface>; private open; OpenPath(this: WuiVfs, path: string): void; } -declare type WuiPathNodeInterface = { - [key: string]: WuiVfsNodeInterface; -}; -export {}; @@ -39,7 +39,27 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; exports.__esModule = true; -exports.WuiVfs = void 0; +exports.WuiVfs = exports.NewWuiVfs = void 0; +function NewWuiVfs(opts) { + return __awaiter(this, void 0, void 0, function () { + var vfs, res; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + vfs = new WuiVfs(opts); + return [4 /*yield*/, vfs.init()]; + case 1: + res = _a.sent(); + if (res.code != 200) { + return [2 /*return*/, res]; + } + res.data = vfs; + return [2 /*return*/, res]; + } + }); + }); +} +exports.NewWuiVfs = NewWuiVfs; var WuiVfs = /** @class */ (function () { function WuiVfs(opts) { this.opts = opts; @@ -59,16 +79,17 @@ var WuiVfs = /** @class */ (function () { // WuiVfs.prototype.init = function () { return __awaiter(this, void 0, void 0, function () { - var res_path_node, key, value, node; + var res, res_path_node, key, value, node; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.opts.ListNodes()]; case 1: - res_path_node = _a.sent(); - if (!res_path_node) { - return [2 /*return*/]; + res = _a.sent(); + if (res.code != 200) { + return [2 /*return*/, res]; } + res_path_node = res.data; for (key in res_path_node) { value = res_path_node[key]; node = new WuiVfsNode(value, function (node) { @@ -92,7 +113,7 @@ var WuiVfs = /** @class */ (function () { this.el.appendChild(this.com_list.el); // (3) this.open(this.path_node["/"]); - return [2 /*return*/]; + return [2 /*return*/, res]; } }); }); @@ -240,4 +261,4 @@ var WuiVfsPath = /** @class */ (function () { }; return WuiVfsPath; }()); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxrRUFBa0U7QUFDbEUseUVBQXlFO0FBQ3pFLDZCQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0I3QjtJQU1DLGdCQUFtQixJQUFtQjtRQUFuQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBRjlCLGNBQVMsR0FBZ0IsRUFBRSxDQUFBO1FBR2xDLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDekQsT0FBTTtTQUNOO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsRUFBRTtJQUNGLDRFQUE0RTtJQUM1RSw0QkFBNEI7SUFDNUIsNEJBQTRCO0lBQzVCLHdCQUF3QjtJQUN4QixFQUFFO0lBQ1kscUJBQUksR0FBbEI7Ozs7Ozs0QkFFcUIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBQTs7d0JBQTNDLGFBQWEsR0FBRyxTQUEyQjt3QkFDL0MsSUFBSSxDQUFDLGFBQWEsRUFBRTs0QkFDbkIsc0JBQU07eUJBQ047d0JBRUQsS0FBVyxHQUFHLElBQUksYUFBYSxFQUFFOzRCQUMxQixLQUFLLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBd0IsQ0FBQTs0QkFDakQsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFDLElBQWdCO2dDQUNuRCxJQUFJLEtBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29DQUMxQixLQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFB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
\ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxrRUFBa0U7QUFDbEUseUVBQXlFO0FBQ3pFLDZCQUE2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkI3QixTQUFzQixTQUFTLENBQUMsSUFBbUI7Ozs7OztvQkFDOUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNoQixxQkFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUE7O29CQUF0QixHQUFHLEdBQUcsU0FBZ0I7b0JBQzFCLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7d0JBQ3BCLHNCQUFPLEdBQUcsRUFBQTtxQkFDVjtvQkFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQTtvQkFDZCxzQkFBTyxHQUFHLEVBQUE7Ozs7Q0FDVjtBQVJELDhCQVFDO0FBRUQ7SUFNQyxnQkFBbUIsSUFBbUI7UUFBbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUY5QixjQUFTLEdBQWdCLEVBQUUsQ0FBQTtRQUdsQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQ3pELE9BQU07U0FDTjtRQUNELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO0lBQ2IsQ0FBQztJQUVELEVBQUU7SUFDRiw0RUFBNEU7SUFDNUUsNEJBQTRCO0lBQzVCLDRCQUE0QjtJQUM1Qix3QkFBd0I7SUFDeEIsRUFBRTtJQUNJLHFCQUFJLEdBQVY7Ozs7Ozs0QkFFVyxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFBOzt3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
\ No newline at end of file @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import { WuiResponseInterface } from "../response" + export interface WuiVfsNodeInterface { name: string path: string @@ -15,22 +17,26 @@ export interface WuiVfsNodeInterface { content?: string } -export interface WuiVfsResponseInterface { - code: number - message?: string - data?: WuiVfsNodeInterface | WuiPathNodeInterface -} - export interface WuiVfsOptions { id: string - ListNodes: () => WuiPathNodeInterface + ListNodes: () => WuiResponseInterface // OnClickNode define an handler that will be called everytime a node is // clicked. The is_dir will be true, if the node is a directory. OnClickNode(path: string, is_dir: boolean): void } +export async function NewWuiVfs(opts: WuiVfsOptions): Promise<WuiResponseInterface> { + let vfs = new WuiVfs(opts) + let res = await vfs.init() + if (res.code != 200) { + return res + } + res.data = vfs + return res +} + export class WuiVfs { private el!: HTMLElement private com_path!: WuiVfsPath @@ -52,13 +58,14 @@ export class WuiVfs { // (2) Create the WuiVfsList // (3) Open the root "/" // - private async init() { + async init(): Promise<WuiResponseInterface> { // (0) - let res_path_node = await this.opts.ListNodes() - if (!res_path_node) { - return + let res = await this.opts.ListNodes() + if (res.code != 200) { + return res } + let res_path_node = res.data as WuiPathNodeInterface for (const key in res_path_node) { const value = res_path_node[key] as WuiVfsNodeInterface const node = new WuiVfsNode(value, (node: WuiVfsNode) => { @@ -86,6 +93,8 @@ export class WuiVfs { // (3) this.open(this.path_node["/"]) + + return res } private open(node: WuiVfsNode) { |
