lila/ui/site/rollup.config.js

189 lines
4.7 KiB
JavaScript

import { execSync } from 'child_process';
import { dirname } from 'path';
import { rollupProject } from '@build/rollupProject';
import copy from 'rollup-plugin-copy';
import replace from '@rollup/plugin-replace';
export default rollupProject({
main: {
input: 'src/site.ts',
output: 'site',
plugins: [
copy({
targets: [
// hopscotch
{
src: require.resolve('hopscotch/dist/js/hopscotch.min.js'),
dest: '../../public/vendor/hopscotch/dist/js',
},
{
src: require.resolve('hopscotch/dist/css/hopscotch.min.css'),
dest: '../../public/vendor/hopscotch/dist/css',
},
{
src: dirname(require.resolve('hopscotch/package.json')) + '/dist/img/*',
dest: '../../public/vendor/hopscotch/dist/img',
},
// highcharts
{
src: [
'highcharts/highcharts.js',
'highcharts/highcharts-more.js',
'highcharts/highstock.js',
].map(require.resolve),
dest: '../../public/vendor/highcharts-4.2.5',
},
// tagify
{
src: require.resolve('@yaireo/tagify/dist/tagify.min.js'),
dest: '../../public/vendor/tagify',
},
// stockfish.js
{
src: [
'stockfish.js/stockfish.js',
'stockfish.js/stockfish.wasm',
'stockfish.js/stockfish.wasm.js',
].map(require.resolve),
dest: '../../public/vendor/stockfish.js',
},
// stockfish.wasm
{
src: [
'stockfish.wasm/stockfish.js',
'stockfish.wasm/stockfish.wasm',
'stockfish.wasm/stockfish.worker.js',
].map(require.resolve),
dest: '../../public/vendor/stockfish.wasm',
},
// stockfish-mv.wasm
{
src: [
'stockfish-mv.wasm/stockfish.js',
'stockfish-mv.wasm/stockfish.wasm',
'stockfish-mv.wasm/stockfish.worker.js',
].map(require.resolve),
dest: '../../public/vendor/stockfish-mv.wasm',
},
],
}),
replace({
__info__: JSON.stringify({
date: new Date(new Date().toUTCString()).toISOString().split('.')[0] + '+00:00',
commit: execSync('git rev-parse -q --short HEAD', {encoding: 'utf-8'}).trim(),
message: execSync('git log -1 --pretty=%s', {encoding: 'utf-8'}).trim(),
}),
}),
],
},
tvEmbed: {
input: 'src/tvEmbed.ts',
output: 'tvEmbed',
},
puzzleEmbed: {
input: 'src/puzzleEmbed.ts',
output: 'puzzle.embed',
},
analyseEmbed: {
input: 'src/analyseEmbed.ts',
output: 'analysisBoard.embed',
name: 'analyseEmbed'
},
user: {
input: 'src/user.ts',
output: 'user',
},
modUser: {
input: 'src/modUser.ts',
output: 'mod.user',
},
clas: {
input: 'src/clas.ts',
output: 'clas',
},
coordinate: {
input: 'src/coordinate.ts',
output: 'coordinate',
},
captcha: {
input: 'src/captcha.ts',
output: 'captcha',
},
expandText: {
input: 'src/expandText.ts',
output: 'expandText',
},
team: {
input: 'src/team.ts',
output: 'team',
name: 'teamStart'
},
forum: {
input: 'src/forum.ts',
output: 'forum',
},
account: {
input: 'src/account.ts',
output: 'account',
},
passwordComplexity: {
input: 'src/passwordComplexity.ts',
output: 'passwordComplexity',
name: 'passwordComplexity'
},
coachForm: {
input: 'src/coachForm.ts',
output: 'coach.form',
},
coachShow: {
input: 'src/coachShow.ts',
output: 'coach.show',
},
challengePage: {
input: 'src/challengePage.ts',
output: 'challengePage',
name: 'challengePageStart'
},
checkout: {
input: 'src/checkout.ts',
output: 'checkout',
name: 'checkoutStart'
},
login: {
input: 'src/login.ts',
output: 'login',
name: 'loginSignup'
},
teamBattleForm: {
input: 'src/teamBattleForm.ts',
output: 'teamBattleForm'
},
tourForm: {
input: 'src/tourForm.ts',
output: 'tourForm'
},
gameSearch: {
input: 'src/gameSearch.ts',
output: 'gameSearch'
},
userComplete: {
input: 'src/userComplete.ts',
output: 'userComplete',
name: 'UserComplete'
},
infiniteScroll: {
input: 'src/infiniteScroll.ts',
output: 'infiniteScroll',
name: 'InfiniteScroll'
},
flatpickr: {
input: 'src/flatpickr.ts',
output: 'flatpickr',
name: 'LichessFlatpickr'
},
teamAdmin: {
input: 'src/teamAdmin.ts',
output: 'team.admin',
}
});