From d2245376db29014ffd061ffa85bfab9903b34a0c Mon Sep 17 00:00:00 2001 From: Bastian Ike Date: Mon, 11 Jan 2021 14:56:50 +0100 Subject: [PATCH] add static creator --- bin/tasks/create-static.js | 34 ++++++++++++++++++++++++++++++++++ bin/tasks/radarjson.js | 16 +++++++++++----- package.json | 3 ++- public/index.html | 4 ++-- tasks/create-static.ts | 29 +++++++++++++++++++++++++++++ tasks/radarjson.ts | 17 ++++++++++++----- tsconfig.json | 3 ++- 7 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 bin/tasks/create-static.js create mode 100644 tasks/create-static.ts diff --git a/bin/tasks/create-static.js b/bin/tasks/create-static.js new file mode 100644 index 0000000..0e138f2 --- /dev/null +++ b/bin/tasks/create-static.js @@ -0,0 +1,34 @@ +#!/usr/bin/env node +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const radar_1 = require("./radar"); +const fs_1 = require("fs"); +const config_1 = require("../src/config"); +(() => __awaiter(void 0, void 0, void 0, function* () { + try { + console.log('starting static'); + const radar = yield radar_1.createRadar(); + fs_1.copyFileSync('build/index.html', 'build/overview.html'); + fs_1.copyFileSync('build/index.html', 'build/help-and-about-tech-radar.html'); + config_1.quadrants.forEach(quadrant => { + fs_1.copyFileSync('build/index.html', 'build/' + quadrant + '.html'); + fs_1.mkdirSync('build/' + quadrant); + }); + radar.items.forEach(item => { + fs_1.copyFileSync('build/index.html', 'build/' + item.quadrant + '/' + item.name + '.html'); + }); + console.log('created static'); + } + catch (e) { + console.error('error:', e); + } +}))(); diff --git a/bin/tasks/radarjson.js b/bin/tasks/radarjson.js index 5371690..b6dd632 100755 --- a/bin/tasks/radarjson.js +++ b/bin/tasks/radarjson.js @@ -13,6 +13,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.radarJsonGenerator = void 0; const radar_1 = require("./radar"); const file_1 = require("./file"); +const fs_1 = require("fs"); +const config_1 = require("../src/config"); exports.radarJsonGenerator = (() => __awaiter(void 0, void 0, void 0, function* () { try { console.log('start'); @@ -33,11 +35,15 @@ ReactDOM.render( document.getElementById('root') ); `, 'index.tsx'); - // getPageNames(radar).map(pageName => { - // // const pageHtml = renderPage(radar, pageName); - // // save(pageHtml, `${pageName}.html`); - // save([pageName, radar], `${pageName}.html`) - // }); + fs_1.copyFileSync('build/index.html', 'build/overview.html'); + fs_1.copyFileSync('build/index.html', 'build/help-and-about-tech-radar.html'); + config_1.quadrants.forEach(quadrant => { + fs_1.copyFileSync('build/index.html', 'build/' + quadrant + '.html'); + fs_1.mkdirSync('build/' + quadrant); + }); + radar.items.forEach(item => { + fs_1.copyFileSync('build/index.html', 'build/' + item.quadrant + '/' + item.name + '.html'); + }); console.log('Built radar'); } catch (e) { diff --git a/package.json b/package.json index 7958c10..b2772c1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "build": "tsc" }, "bin": { - "aoe_technology_radar": "scripts/build.js" + "aoe_technology_radar": "scripts/build.js", + "aoe_technology_radar-static": "bin/tasks/create-static.js" }, "browserslist": { "production": [ diff --git a/public/index.html b/public/index.html index 6380c48..27a01ac 100644 --- a/public/index.html +++ b/public/index.html @@ -5,9 +5,9 @@ - + - + diff --git a/tasks/create-static.ts b/tasks/create-static.ts new file mode 100644 index 0000000..f83d9cb --- /dev/null +++ b/tasks/create-static.ts @@ -0,0 +1,29 @@ +#!/usr/bin/env node + +import {createRadar} from "./radar"; +import {save} from "./file"; +import {copyFileSync, mkdir, mkdirSync} from "fs"; +import {quadrants} from "../src/config"; + + +(async () => { + try { + console.log('starting static') + const radar = await createRadar(); + + copyFileSync('build/index.html', 'build/overview.html') + copyFileSync('build/index.html', 'build/help-and-about-tech-radar.html') + + quadrants.forEach(quadrant => { + copyFileSync('build/index.html', 'build/' + quadrant + '.html') + mkdirSync('build/' + quadrant) + }) + radar.items.forEach(item => { + copyFileSync('build/index.html', 'build/' + item.quadrant + '/' + item.name + '.html') + }) + + console.log('created static'); + } catch (e) { + console.error('error:', e); + } +})() diff --git a/tasks/radarjson.ts b/tasks/radarjson.ts index e149119..5ddecbf 100644 --- a/tasks/radarjson.ts +++ b/tasks/radarjson.ts @@ -2,6 +2,8 @@ import {createRadar} from "./radar"; import {save} from "./file"; +import {copyFileSync, mkdir, mkdirSync} from "fs"; +import {quadrants} from "../src/config"; export const radarJsonGenerator = (async () => { @@ -27,11 +29,16 @@ ReactDOM.render( ); `, 'index.tsx') - // getPageNames(radar).map(pageName => { - // // const pageHtml = renderPage(radar, pageName); - // // save(pageHtml, `${pageName}.html`); - // save([pageName, radar], `${pageName}.html`) - // }); + copyFileSync('build/index.html', 'build/overview.html') + copyFileSync('build/index.html', 'build/help-and-about-tech-radar.html') + + quadrants.forEach(quadrant => { + copyFileSync('build/index.html', 'build/' + quadrant + '.html') + mkdirSync('build/' + quadrant) + }) + radar.items.forEach(item => { + copyFileSync('build/index.html', 'build/' + item.quadrant + '/' + item.name + '.html') + }) console.log('Built radar'); } catch (e) { diff --git a/tsconfig.json b/tsconfig.json index 8b9a791..3bd829c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,6 +20,7 @@ "resolveJsonModule": true }, "files": [ - "tasks/radarjson.ts" + "tasks/radarjson.ts", + "tasks/create-static.ts" ] }