From f8c6430a26f5b489255c4f36629f245ed23bb280 Mon Sep 17 00:00:00 2001 From: Lihang Xu Date: Sun, 9 Oct 2022 22:48:59 +0800 Subject: [PATCH] feat(GCDWebServer): add plugin (#4302) * add GCDWebServer * fix plugin ref and add the server options interface * fix the pluginRef's case * update name * add docs --- docs/SUMMARY.md | 1 + docs/plugins/gcdwebserver.md | 19 +++++ docs/plugins/gcdwebserver/README.md | 19 +++++ .../plugins/gcdwebserver/index.ts | 69 +++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100755 docs/plugins/gcdwebserver.md create mode 100755 docs/plugins/gcdwebserver/README.md create mode 100755 src/@awesome-cordova-plugins/plugins/gcdwebserver/index.ts diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index be7d8f359a..c893b1a934 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -216,6 +216,7 @@ * [Printer](plugins/printer.md) * [Browser Tab](plugins/browser-tab.md) * [Dynamsoft Barcode Scanner](plugins/dynamsoft-barcode-scanner.md) + * [GCDWebServer](plugins/gcdwebserver.md) * [Installation](installation.md) * [FAQ](faq.md) diff --git a/docs/plugins/gcdwebserver.md b/docs/plugins/gcdwebserver.md new file mode 100755 index 0000000000..a3258b0582 --- /dev/null +++ b/docs/plugins/gcdwebserver.md @@ -0,0 +1,19 @@ +# GCDWebServer + +``` +$ ionic cordova plugin add cordova-plugin-gcdwebserver +$ npm install @awesome-cordova-plugins/gcdwebserver +``` + +## [Usage Documentation](https://danielsogl.gitbook.io/awesome-cordova-plugins/plugins/gcdwebserver/) + +Plugin Repo: [https://github.com/xulihang/cordova-plugin-gcdwebserver](https://github.com/xulihang/cordova-plugin-gcdwebserver) + +The [GCDWebServer](https://github.com/swisspol/GCDWebServer/) Plugin can start an HTTP server to serve static files. + +## Supported platforms + +iOS + + + diff --git a/docs/plugins/gcdwebserver/README.md b/docs/plugins/gcdwebserver/README.md new file mode 100755 index 0000000000..a3258b0582 --- /dev/null +++ b/docs/plugins/gcdwebserver/README.md @@ -0,0 +1,19 @@ +# GCDWebServer + +``` +$ ionic cordova plugin add cordova-plugin-gcdwebserver +$ npm install @awesome-cordova-plugins/gcdwebserver +``` + +## [Usage Documentation](https://danielsogl.gitbook.io/awesome-cordova-plugins/plugins/gcdwebserver/) + +Plugin Repo: [https://github.com/xulihang/cordova-plugin-gcdwebserver](https://github.com/xulihang/cordova-plugin-gcdwebserver) + +The [GCDWebServer](https://github.com/swisspol/GCDWebServer/) Plugin can start an HTTP server to serve static files. + +## Supported platforms + +iOS + + + diff --git a/src/@awesome-cordova-plugins/plugins/gcdwebserver/index.ts b/src/@awesome-cordova-plugins/plugins/gcdwebserver/index.ts new file mode 100755 index 0000000000..ba0012a7be --- /dev/null +++ b/src/@awesome-cordova-plugins/plugins/gcdwebserver/index.ts @@ -0,0 +1,69 @@ +import { Injectable } from '@angular/core'; +import { + Plugin, + Cordova, + CordovaProperty, + CordovaInstance, + InstanceProperty, + AwesomeCordovaNativePlugin, +} from '@awesome-cordova-plugins/core'; + +export interface ServerOptions { + port?: number; + folder?: string; +} + +/** + * @name gcdwebserver + * @description + * This plugin can start an HTTP server using GCDWebServer + * + * @usage + * ```typescript + * import { GCDWebServer } from '@awesome-cordova-plugins/gcdwebserver'; + * + * + * constructor(private gcdwebserver: GCDWebServer) { } + * + * ... + * + * + * await this.gcdwebserver.startServer({}); + * + * + * ``` + */ +@Plugin({ + pluginName: 'gcdwebserver', + plugin: 'cordova-plugin-gcdwebserver', + pluginRef: 'cordova.plugins.GCDServer', + repo: 'https://github.com/xulihang/cordova-plugin-gcdwebserver', + install: '', + installVariables: [], + platforms: ['iOS'], +}) +@Injectable() +export class GCDWebServer extends AwesomeCordovaNativePlugin { + /** + * start the server + * @param options {ServerOptions} + * @return {Promise} Returns a promise + */ + @Cordova({ + successIndex: 1, + errorIndex: 2 + }) + startServer(options: ServerOptions): Promise { + return; + } + + /** + * stop the server + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + stopServer(): Promise { + return; + } + +}