diff --git a/Makefile b/Makefile index 5d9fa301bb323640ce5c1bd575fa3b23aee302e4..ea41626e4d4e2437944f19caf2e0807202aede96 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ SERVER_PKG_BUILD := "${PKG}" .PHONY: all build clean run -all: build run +all: build run bundle-libs dep: ## Get the dependencies dep ensure @@ -21,6 +21,9 @@ help: ## Display this help screen run: build ## Run app ./bin/app +bundle-libs: ## Builds JS bundles + cd javascript && yarn install && yarn build + fresh: rm -rf ./vendor rm -rf ./Gopkg.lock \ No newline at end of file diff --git a/javascript/.gitignore b/javascript/.gitignore index f06235c460c2de3d97efc8371125594b7b761b08..e40398241a87ca2dab9425550a659683e6f15c6d 100644 --- a/javascript/.gitignore +++ b/javascript/.gitignore @@ -1,2 +1,3 @@ node_modules dist +temp diff --git a/javascript/src/viamapi-client.js b/javascript/src/viamapi-client.js index 84789583619c4f5034850fc5d2feb1d7105f16a8..0a834db07981eac7ab7ae7a71608a559c5e31aff 100644 --- a/javascript/src/viamapi-client.js +++ b/javascript/src/viamapi-client.js @@ -1,9 +1,9 @@ const Penpal = require('penpal').default; -function setupViamAPI(divId, methodsArg) { +function setupViamAPI(divId, methodsArg, url) { const connection = Penpal.connectToChild({ // URL of page to load into iframe. - url: '{{urlArg}}', + url, // Container to which the iframe should be appended. appendTo: document.getElementById(divId), // Methods parent is exposing to child diff --git a/javascript/src/viamapi-iframe.js b/javascript/src/viamapi-iframe.js index 073f9850c531a98b24f1e1ec0c155735583c65b7..83c5ab21672b91864738304c16bdbd097025deac 100644 --- a/javascript/src/viamapi-iframe.js +++ b/javascript/src/viamapi-iframe.js @@ -2177,7 +2177,7 @@ const connection = Penpal.connectToParent({ }); }); }, - marketingЕxecuteEventForIdentificator(identificator, pincode, event) { + marketingExecuteEventForIdentificator(identificator, pincode, event) { return new Penpal.Promise(result => { viamApi.setIdentity("marketingapppublickey") @@ -2256,10 +2256,7 @@ const connection = Penpal.connectToParent({ result(res) }) }, - // Previously there was "//{{methods}}" placeholder, but we can't use it anymore since Uglify in webpack - // stripping this comment and there is no chance to preserve it - // (even with special words like @preserve or comment /*! */) - placeholderForExternalMethods:1 + //{{endpointsPlaceholder}} } }); diff --git a/javascript/webpack.config.js b/javascript/webpack.config.js index 2329bd5c193ae76d7a670813f70dd7b5ffaaf405..957709cd964aafbdc47b438ec4e4f634c441aa6e 100644 --- a/javascript/webpack.config.js +++ b/javascript/webpack.config.js @@ -2,8 +2,7 @@ module.exports = { mode: 'production', entry: { 'viamapi-client': ['core-js/fn/promise', './src/viamapi-client.js'], - 'viamapi-iframe': ['babel-polyfill', './src/viamapi-iframe.js'], - 'wopiapi-iframe': './src/wopiapi-iframe.js' + 'viamapi-iframe': ['babel-polyfill', './temp/viamapi-iframe.js'], }, module: { rules: [ diff --git a/main.go b/main.go index 817b975cfd3552b41fdc47ddcee4ac5175a08475..4246518c686a59fb308e589e6b946280179ea154 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,8 @@ import ( "code.vereign.com/code/restful-api/server" "fmt" "io/ioutil" + "os" + "path/filepath" "reflect" "sort" "strings" @@ -14,14 +16,22 @@ import ( func main() { iframeLibrary := buildIframeLibrary() - fmt.Print(iframeLibrary) + + newpath := filepath.Join(".", "javascript/temp") + os.MkdirAll(newpath, os.ModePerm) + + err := ioutil.WriteFile("./javascript/temp/viamapi-iframe.js", []byte(iframeLibrary), 0644) + + if err != nil { + fmt.Println(err.Error()) + } } func buildIframeLibrary() string { prefixes := []string{} endPoints := server.GetEndPoints(prefixes) - result := "<script>\n\n" + result := "" var keys []string for k := range endPoints { @@ -41,7 +51,7 @@ func buildIframeLibrary() string { methods := generatePenpalRemoteMethods(endPoints) methods += getWopiAPIPenpalMethods() - viamApi := strings.Replace(string(dat), "placeholderForExternalMethods:1", methods, 1) + viamApi := strings.Replace(string(dat), "//{{endpointsPlaceholder}}", methods, 1) if err != nil { fmt.Println(err.Error()) @@ -144,8 +154,6 @@ func buildIframeLibrary() string { } } - result += "</script>\n" - return result }