Skip to content

Commit d30e827

Browse files
committed
Breaking change: Cleanup and modernize source, add support for esm, update examples
1 parent 80d7e37 commit d30e827

File tree

159 files changed

+9059
-26882
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+9059
-26882
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.idea
22
.vscode
33
node_modules
4+
dist

Dockerfile

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
1-
FROM node:hydrogen-alpine3.17
1+
FROM node:20-alpine3.19 as build
22

33
WORKDIR /app
44
COPY package.json package-lock.json ./
55

66
RUN npm ci
77

8+
COPY . .
9+
RUN npx gulp app
10+
11+
FROM node:20-alpine3.19
12+
13+
WORKDIR /app
14+
COPY package.json package-lock.json ./
15+
16+
RUN npm ci --omit dev
17+
818
RUN mkdir /presentations
919
ENV PRESENTATION_PRESENTATION_PATH /presentations
10-
COPY . .
20+
COPY --from=build /app/dist .
1121

1222
USER 65534
1323
CMD ["node", "/app/index.js"]

gulpfile.js

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import {rollup} from 'rollup';
2+
import {default as terser} from '@rollup/plugin-terser';
3+
import babel from '@rollup/plugin-babel';
4+
import {default as commonjs} from '@rollup/plugin-commonjs';
5+
import {nodeResolve} from '@rollup/plugin-node-resolve';
6+
import gulp from 'gulp';
7+
8+
const babelConfig = {
9+
babelHelpers: 'bundled',
10+
ignore: ['node_modules'],
11+
compact: false,
12+
extensions: ['.js'],
13+
presets: [
14+
[
15+
'@babel/preset-env',
16+
{
17+
corejs: 3,
18+
useBuiltIns: 'usage',
19+
modules: false,
20+
targets: {
21+
browsers: [
22+
'last 2 Chrome versions',
23+
'last 2 Safari versions',
24+
'last 2 iOS versions',
25+
'last 2 Firefox versions',
26+
'last 2 Edge versions',
27+
]
28+
}
29+
}
30+
]
31+
]
32+
};
33+
34+
gulp.task('plugins', () =>
35+
Promise.all([
36+
{name: 'RevealRemote', file: 'remote'},
37+
{name: 'RevealRemoteZoom', file: 'remotezoom'},
38+
].flatMap(plugin =>
39+
rollup({
40+
input: `./plugin/${plugin.file}.js`,
41+
plugins: [
42+
nodeResolve(),
43+
commonjs(),
44+
babel({
45+
...babelConfig,
46+
ignore: [/node_modules\/.*/],
47+
}),
48+
terser()
49+
],
50+
external: ['../../socket.io/socket.io.esm.min.js'],
51+
}).then(bundle => [
52+
bundle.write({
53+
file: `./dist/static/plugin/${plugin.file}.esm.js`,
54+
name: plugin.name,
55+
format: 'es',
56+
}),
57+
58+
bundle.write({
59+
file: `./dist/static/plugin/${plugin.file}.js`,
60+
name: plugin.name,
61+
format: 'iife',
62+
globals: (file) => {
63+
if (file.endsWith("/socket.io/socket.io.esm.min.js"))
64+
return "io"
65+
else
66+
return file
67+
}
68+
})]
69+
)
70+
)
71+
));
72+
73+
gulp.task('server', () =>
74+
gulp.src('server/**/*')
75+
.pipe(gulp.dest('dist')));
76+
77+
78+
gulp.task('server-ui', () =>
79+
gulp.src('server-ui/**/*')
80+
.pipe(gulp.dest('dist/static/ui')));
81+
82+
gulp.task('demo-cjs', () =>
83+
gulp.src(['presentations/commonjs/index.html', 'presentations/reveal.js/**/*'])
84+
.pipe(gulp.dest('dist/presentations/commonjs')));
85+
86+
gulp.task('demo-esm', () =>
87+
gulp.src(['presentations/esm/index.html', 'presentations/reveal.js/**/*'])
88+
.pipe(gulp.dest('dist/presentations/esm')));
89+
90+
gulp.task('demo', gulp.parallel('demo-cjs', 'demo-esm'));
91+
gulp.task('app', gulp.parallel('plugins', 'server', 'server-ui'));
92+
93+
gulp.task('default', gulp.parallel('app', 'demo'));
94+

0 commit comments

Comments
 (0)