Changed dev-ops build pattern #5

Merged
Ray merged 1 commits from release/0.2.0.121 into master 2024-08-10 13:31:12 +00:00
12 changed files with 2459 additions and 36 deletions
Showing only changes of commit 039a17f8a1 - Show all commits

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/dist
/node_modules

13
bbtimeline.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -10,11 +10,13 @@
<!-- <script src="http://cdn.hiimray.co.uk/8206c600-707c-469e-8d49-a76ae35782af/bootstrap/5.3.0/dist/js/bootstrap.bundle.min.js"></script> --> <!-- <script src="http://cdn.hiimray.co.uk/8206c600-707c-469e-8d49-a76ae35782af/bootstrap/5.3.0/dist/js/bootstrap.bundle.min.js"></script> -->
<!-- <link href="http://cdn.hiimray.co.uk/8206c600-707c-469e-8d49-a76ae35782af/bootstrap/5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> --> <!-- <link href="http://cdn.hiimray.co.uk/8206c600-707c-469e-8d49-a76ae35782af/bootstrap/5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> -->
<script src="bbtimeline.js"></script> <script src="dist//timeline.min.js"></script>
<script src="bbtimeline-canvas.js"></script>
<script src="bbtimeline-background-canvas.js"></script> <!-- <script src="bbtimeline.js"></script> -->
<script src="bbtimeline-flourish-canvas.js"></script> <!-- <script src="bbtimeline-canvas.js"></script> -->
<script src="bbtimeline-foreground-canvas.js"></script> <!-- <script src="bbtimeline-background-canvas.js"></script> -->
<!-- <script src="bbtimeline-flourish-canvas.js"></script> -->
<!-- <script src="bbtimeline-foreground-canvas.js"></script> -->
<!-- <script src="bbtimeline.min.js"></script> --> <!-- <script src="bbtimeline.min.js"></script> -->
@ -145,7 +147,7 @@ textarea {
<script> <script>
var timeline1 = new BBTimeline("myCanvas"); var timeline1 = new LiteRyzJS.Timeline("myCanvas");
timeline1.OnMouseDown = function(sender, e, event) { timeline1.OnMouseDown = function(sender, e, event) {
LogInfo(""); LogInfo("");
LogInfo("OnMouseDown"); LogInfo("OnMouseDown");

2343
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

11
package.json Normal file
View File

@ -0,0 +1,11 @@
{
"name": "LiteRyzJS/Timeline",
"version": "0.2.0.121",
"devDependencies": {
"webpack": "^5.93.0",
"webpack-cli": "^5.1.4"
},
"scripts": {
"build": "webpack"
}
}

5
src/index.js Normal file
View File

@ -0,0 +1,5 @@
// src/index.js
import Timeline from './timeline/timeline.js';
export { Timeline };

View File

@ -1,4 +1,7 @@
class BBTimelineBackgroundCanvas extends BBTimelineCanvas { import TimelineCanvas from './timeline-canvas.js';
class TimelineBackgroundCanvas extends TimelineCanvas {
constructor(parentEl, el) { constructor(parentEl, el) {
super(parentEl, el); super(parentEl, el);
} }
@ -219,3 +222,6 @@ class BBTimelineBackgroundCanvas extends BBTimelineCanvas {
} }
} }
export default TimelineBackgroundCanvas;

View File

@ -1,4 +1,4 @@
class BBTimelineCanvas { class TimelineCanvas {
constructor(parentEl, el) { constructor(parentEl, el) {
const a = this; const a = this;
@ -180,3 +180,6 @@ class BBTimelineCanvas {
} }
} }
export default TimelineCanvas;

View File

@ -1,4 +1,7 @@
class BBTimelineFlourishCanvas extends BBTimelineCanvas { import TimelineCanvas from './timeline-canvas.js';
class TimelineFlourishCanvas extends TimelineCanvas {
constructor(parentEl, el) { constructor(parentEl, el) {
super(parentEl, el); super(parentEl, el);
} }
@ -34,3 +37,6 @@ class BBTimelineFlourishCanvas extends BBTimelineCanvas {
} }
} }
export default TimelineFlourishCanvas;

View File

@ -1,4 +1,7 @@
class BBTimelineForegroundCanvas extends BBTimelineCanvas { import TimelineCanvas from './timeline-canvas.js';
class TimelineForegroundCanvas extends TimelineCanvas {
constructor(parentEl, el) { constructor(parentEl, el) {
super(parentEl, el); super(parentEl, el);
} }
@ -208,3 +211,6 @@ class BBTimelineForegroundCanvas extends BBTimelineCanvas {
} }
} }
export default TimelineForegroundCanvas;

View File

@ -1,8 +1,9 @@
/** import TimelineBackgroundCanvas from './timeline-background-canvas.js';
* BBTimeline import TimelineFlourishCanvas from './timeline-flourish-canvas.js';
* @version v0.1.1.277 apha (2023/11/12 0106) import TimelineForegroundCanvas from './timeline-foreground-canvas.js';
*/
class BBTimeline {
class Timeline {
constructor(el) { constructor(el) {
const a = this; const a = this;
@ -49,9 +50,9 @@ class BBTimeline {
const canvasList = a.Container.getElementsByTagName("canvas"); const canvasList = a.Container.getElementsByTagName("canvas");
a.Layer.Background = new BBTimelineBackgroundCanvas(a, canvasList[0]); a.Layer.Background = new TimelineBackgroundCanvas(a, canvasList[0]);
a.Layer.Flourish = new BBTimelineFlourishCanvas(a, canvasList[1]); a.Layer.Flourish = new TimelineFlourishCanvas(a, canvasList[1]);
a.Layer.Markers = new BBTimelineForegroundCanvas(a, canvasList[2]); a.Layer.Markers = new TimelineForegroundCanvas(a, canvasList[2]);
} }
@ -374,3 +375,6 @@ class BBTimeline {
OnDblClick(sender, e, event) { /* delegate */ } OnDblClick(sender, e, event) { /* delegate */ }
} }
export default Timeline;

48
webpack.config.js Normal file
View File

@ -0,0 +1,48 @@
const path = require('path');
const { version } = require('./package.json');
const webpack = require('webpack');
class PrependVersionPlugin {
apply(compiler) {
compiler.hooks.emit.tapAsync('PrependVersionPlugin', (compilation, callback) => {
Object.keys(compilation.assets).forEach((filename) => {
if (filename.endsWith('.js')) {
const asset = compilation.assets[filename];
const headerText = `/*!\n * LiteRyzJS/Timeline v${version}\n * Copyright 2023-2024 Ray Lam (https://www.hiimray.co.uk)\n *\n */\n`;
const newContent = headerText + asset.source();
compilation.assets[filename] = {
source: () => newContent,
size: () => newContent.length,
};
}
});
callback();
});
}
}
module.exports = {
entry: {
timeline: './src/index.js'
},
output: {
filename: `[name].dist.js`,
path: path.resolve(__dirname, 'dist'),
library: 'LiteRyzJS',
libraryTarget: 'umd',
globalObject: 'this'
},
mode: 'production', // development|production
plugins: [
new webpack.DefinePlugin({
'process.env.VERSION': JSON.stringify(version)
}),
new PrependVersionPlugin()
]
};