From d8bb296d3ca837a18232b4174573512d5281d64d Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Thu, 20 Jan 2022 18:35:59 +0200 Subject: [PATCH 1/3] UI: Add script to generate types in the project --- ui-ngx/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index 7308a86c9e..1ae3b84cb9 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -6,6 +6,7 @@ "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve --configuration development --host 0.0.0.0 --open", "build": "ng build", "build:prod": "ng build --configuration production --vendor-chunk", + "build:type": "rm -rf target/type && ./node_modules/.bin/ngc --p src/tsconfig.app.json --declaration --outDir target/type && find target/type -type f -name '*.js*' -delete", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", From e538d4288d421a114d3183cf4b3157f29011de3c Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 21 Jan 2022 15:19:43 +0200 Subject: [PATCH 2/3] UI: Updated build:types script --- ui-ngx/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index 1ae3b84cb9..ea004ccfa2 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -6,7 +6,7 @@ "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve --configuration development --host 0.0.0.0 --open", "build": "ng build", "build:prod": "ng build --configuration production --vendor-chunk", - "build:type": "rm -rf target/type && ./node_modules/.bin/ngc --p src/tsconfig.app.json --declaration --outDir target/type && find target/type -type f -name '*.js*' -delete", + "build:types": "rm -rf target/types && ./node_modules/.bin/ngc --p src/tsconfig.app.json --declaration --outDir target/types/src && find target/types/src -type f -name '*.js*' -delete && cp src/app/modules/common/modules-map.ts target/types/src/app/modules/common/modules-map.ts", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", From a1cd5e6a132710e546fbc1625436dc18e48a2188 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 21 Jan 2022 16:16:41 +0200 Subject: [PATCH 3/3] UI: Created script generate-types --- ui-ngx/generate-types.js | 66 ++++++++++++++++++++++++++++++++++++++++ ui-ngx/package.json | 2 +- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 ui-ngx/generate-types.js diff --git a/ui-ngx/generate-types.js b/ui-ngx/generate-types.js new file mode 100644 index 0000000000..a24673cbd5 --- /dev/null +++ b/ui-ngx/generate-types.js @@ -0,0 +1,66 @@ +/* + * Copyright © 2016-2022 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const child_process = require("child_process"); +const fs = require('fs'); +const path = require('path'); +const typeDir = './target/types'; +const srcDir = typeDir + '/src'; +const moduleMapPath = "src/app/modules/common/modules-map.ts"; + +console.log(`Remove directory: ${typeDir}`); +try { + fs.rmSync(typeDir, {recursive: true, force: true,}); +} catch (err) { + console.error(`Remove directory error: ${err}`); +} + +const cliCommand = `./node_modules/.bin/ngc --p src/tsconfig.app.json --declaration --outDir ${srcDir}`; +console.log(cliCommand); +try { + child_process.execSync(cliCommand); +} catch (err) { + console.error("Build types", err); + process.exit(1); +} + +function fromDir(startPath, filter, callback) { + if (!fs.existsSync(startPath)) { + console.log("not dirs", startPath); + process.exit(1); + } + + const files = fs.readdirSync(startPath); + for (let i = 0; i < files.length; i++) { + const filename = path.join(startPath, files[i]); + const stat = fs.lstatSync(filename); + if (stat.isDirectory()) { + fromDir(filename, filter, callback); + } else if (filter.test(filename)) { + callback(filename) + } + } +} + + +fromDir(srcDir, /(\.js|\.js\.map)$/, function (filename) { + try { + fs.rmSync(filename); + } catch (err) { + console.error(`Remove file error ${filename}: ${err}`); + } +}); +fs.cpSync(moduleMapPath, `${typeDir}/${moduleMapPath}`); diff --git a/ui-ngx/package.json b/ui-ngx/package.json index ea004ccfa2..6c912e1fdf 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -6,7 +6,7 @@ "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve --configuration development --host 0.0.0.0 --open", "build": "ng build", "build:prod": "ng build --configuration production --vendor-chunk", - "build:types": "rm -rf target/types && ./node_modules/.bin/ngc --p src/tsconfig.app.json --declaration --outDir target/types/src && find target/types/src -type f -name '*.js*' -delete && cp src/app/modules/common/modules-map.ts target/types/src/app/modules/common/modules-map.ts", + "build:types": "node generate-types.js", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e",