Skip to content

Commit bc3c6a1

Browse files
Update app: updated to nodejs 16, multiple packages and fixes (#104)
Main Changes: Replaced redux-little-router package and deleted it Updated to Nodejs v16 Updated packages: storybook, jest, react-tooltip, jspdf, webpack (v5), scratch (-storage/-svg-renderer/-render-fonts/-paint/-audio/-blocks/-vm), serverless-offline, html-webpack-plugin, workbox-plugin, file-loader deleted: netlify-lambda Replaced svg loader for react components Commits: * added new library for redux/router, almost all replaced * deleted all uses of redux-little-router * run lint and fixes * changed nodejs version of deployment * fixed switch import, node version to 16 * replaced unsafe deprecated methods * packages updated: storybook, jest, react-tooltip * updated jspdf * webpack to v5. Changes for v3 of react-intl, cant update yet. Project loading but with errors * webpack compiling, svg errors stil * fixed bugs from scratch-storage, replaced store for helper, its running! * fixed serverless online bug, added catch to reject promise fix * updated workbox plugin, replaced file-loader, new loader for svg react components * deleted non valid option for webpack5 * modified netlify build command * not using deprecated netlify package, webpack file to v5§ * added missing import * deleted unused netlify-lambda
1 parent 31a332e commit bc3c6a1

72 files changed

Lines changed: 13111 additions & 10623 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,6 @@ yarn-error.log
4141

4242
# Jupyter Checkpoints
4343
.ipynb_checkpoints/
44+
45+
# docker-compose
46+
docker-compose.yml

.storybook/main.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,11 @@ module.exports = {
2121
// Return the altered config
2222
return config
2323
},
24+
stories: [
25+
{
26+
directory: '../src',
27+
files: ['**/*.stories.mdx', '**/*.stories.@(js|jsx|ts|tsx)'],
28+
}
29+
],
30+
framework: { name: "@storybook/react-webpack5" }
2431
}

.storybook/preview.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import React from 'react'
2-
import { configure, addDecorator } from '@storybook/react'
32
import { Provider } from 'react-redux'
4-
import { createStore, combineReducers } from 'redux'
3+
import { createStore } from 'redux'
54
import '../src/css/defaults.css'
65
import '../src/css/typography.css'
76

8-
const req = require.context('../src/components', true, /\.stories\.jsx?$/)
9-
107
const BackgroundDecorator = (story) => (
118
<div style={{ backgroundColor: 'darkorange', minHeight: '100vh' }}>
129
{story()}
@@ -19,7 +16,6 @@ const ReduxDecorator = (story) => (
1916
<Provider store={mockStore}>{story()}</Provider>
2017
)
2118

22-
addDecorator(BackgroundDecorator)
23-
addDecorator(ReduxDecorator)
24-
25-
configure(req, module)
19+
export default {
20+
decorators: [BackgroundDecorator, ReduxDecorator],
21+
}

assets/img/maus_question.svg

Lines changed: 1 addition & 4 deletions
Loading

babel.config.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
1+
// module.exports = {
2+
// plugins: [
3+
// '@babel/syntax-dynamic-import',
4+
// '@babel/transform-async-to-generator',
5+
// [
6+
// 'react-intl',
7+
// {
8+
// messagesDir: './translations/messages/',
9+
// },
10+
// ],
11+
// ],
12+
// presets: ['@babel/env', '@babel/react'],
13+
// }
14+
15+
// for react-intl v3
116
module.exports = {
217
plugins: [
318
'@babel/syntax-dynamic-import',
419
'@babel/transform-async-to-generator',
520
[
6-
'react-intl',
21+
'formatjs',
722
{
8-
messagesDir: './translations/messages/',
23+
idInterpolationPattern: '[sha512:contenthash:base64:6]',
24+
ast: true,
925
},
1026
],
1127
],

docker-compose.yml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@ version: '3.5'
22

33
services:
44
entry:
5-
image: traefik
5+
image: traefik:1.7
66
command: -c /dev/null --api --docker --docker.domain=localhost
77
volumes:
88
- /var/run/docker.sock:/var/run/docker.sock
99
ports:
10-
- "8601:80"
10+
# - "8601:80"
1111
- "8080:8080"
1212
labels:
1313
traefik.enable: false
14-
app:
15-
image: node:alpine
16-
command: /src/node_modules/.bin/yarn start
17-
working_dir: /src
18-
environment:
19-
DOCKER_WATCH: 1
20-
AWS_ACCESS_KEY_ID: shaiChotufuochizi7ei
21-
AWS_SECRET_ACCESS_KEY: thaacooG9iequeexooreiKoh9daihoo8ta0aifoh1ChahBi1ko
22-
AWS_REGION: eu-central-1
23-
volumes:
24-
- ".:/src"
25-
labels:
26-
traefik.port: 8601
27-
traefik.frontend.rule: Host:localhost
14+
# app:
15+
# image: node:16.3.0-alpine
16+
# command: /src/node_modules/.bin/yarn start
17+
# working_dir: /src
18+
# environment:
19+
# DOCKER_WATCH: 1
20+
# AWS_ACCESS_KEY_ID: shaiChotufuochizi7ei
21+
# AWS_SECRET_ACCESS_KEY: thaacooG9iequeexooreiKoh9daihoo8ta0aifoh1ChahBi1ko
22+
# AWS_REGION: eu-central-1
23+
# volumes:
24+
# - ".:/src"
25+
# labels:
26+
# traefik.port: 8601
27+
# traefik.frontend.rule: Host:localhost
2828
backend:
29-
image: node:alpine
29+
image: node:16.3.0-alpine
3030
command: /src/node_modules/.bin/yarn start:backend -o 0.0.0.0
3131
working_dir: /src
3232
environment:

package.json

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"main": "./dist/scratch-gui.js",
66
"scripts": {
77
"postinstall": "patch-package",
8-
"build": "webpack --colors --bail",
9-
"build:backend:netlify": "netlify-lambda build src/backend -c webpack.netlify-functions.js",
10-
"build:netlify": "yarn assets:netlify && yarn build && yarn build:backend:netlify",
8+
"build": "webpack --bail",
9+
"build:backend:netlify": "webpack -c webpack.netlify-functions.js",
10+
"build:netlify": "yarn build && yarn build:backend:netlify",
1111
"build:patternlib": "build-storybook -o .patternlib",
1212
"build:printserver:win": "pkg -t node10-win --out-path dist/ scripts/print-server.js",
1313
"clean": "rimraf ./build && mkdirp build && rimraf ./dist && mkdirp dist",
@@ -19,8 +19,8 @@
1919
"i18n:src": "babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/ ./translations/",
2020
"import-sprites": "ts-node scripts/import-sprites.ts",
2121
"lint": "eslint . --ext .js,.jsx",
22+
"lint:fix": "eslint --fix --ext .js,.jsx .",
2223
"assets:download": "aws s3 sync s3://code4maus-assets assets",
23-
"assets:netlify": "AWS_ACCESS_KEY_ID=$DEPLOY_AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$DEPLOY_AWS_SECRET_ACCESS_KEY npm run assets:download",
2424
"assets:upload": "aws s3 sync --exclude .gitkeep --exclude .DS_Store assets s3://code4maus-assets",
2525
"start": "webpack-dev-server",
2626
"start:backend": "serverless offline",
@@ -42,10 +42,8 @@
4242
"@babel/preset-env": "^7.3.1",
4343
"@babel/preset-react": "^7.0.0",
4444
"@babel/register": "^7.4.4",
45-
"@storybook/addon-actions": "^5.3.17",
46-
"@storybook/addon-links": "^5.3.17",
47-
"@storybook/addons": "^5.3.17",
48-
"@storybook/react": "^5.3.17",
45+
"@storybook/react": "^6.0.0",
46+
"@svgr/webpack": "^8.1.0",
4947
"@types/node": "^11.11.3",
5048
"arraybuffer-loader": "^1.0.3",
5149
"autoprefixer": "^9.5.0",
@@ -56,7 +54,7 @@
5654
"bowser": "^1.9.3",
5755
"chromedriver": "^2.39.0",
5856
"classnames": "^2.2.5",
59-
"copy-webpack-plugin": "^5.0.1",
57+
"copy-webpack-plugin": "^7.0.0",
6058
"css-loader": "^3.4.2",
6159
"dotenv": "^7.0.0",
6260
"envsubstr": "^0.0.1",
@@ -77,9 +75,9 @@
7775
"get-user-media-promise": "^1.1.4",
7876
"gh-pages": "^2.0.1",
7977
"globby": "^9.1.0",
80-
"html-webpack-plugin": "^3.2.0",
78+
"html-webpack-plugin": "^5.0.0",
8179
"immutable": "^3.8.2",
82-
"jest": "^24.5.0",
80+
"jest": "^28.0.2",
8381
"lodash.bindall": "^4.4.0",
8482
"lodash.debounce": "^4.0.8",
8583
"lodash.defaultsdeep": "^4.6.0",
@@ -90,7 +88,6 @@
9088
"minilog": "^3.1.0",
9189
"mkdirp": "^0.5.1",
9290
"nanoid": "^2.0.1",
93-
"netlify-lambda": "1.4.3",
9491
"patch-package": "^6.2.1",
9592
"pkg": "^4.3.7",
9693
"platform": "^1.3.5",
@@ -103,64 +100,60 @@
103100
"prop-types": "^15.5.10",
104101
"raf": "^3.4.0",
105102
"raw-loader": "^2.0.0",
106-
"react": "^16.8.4",
103+
"react": "16.14.0",
107104
"react-contextmenu": "^2.9.2",
108-
"react-dom": "^16.8.4",
105+
"react-dom": "16.14.0",
109106
"react-draggable": "^3.0.5",
110-
"react-intl": "^2.4.0",
107+
"react-intl-2": "npm:react-intl@3.2.0",
111108
"react-intl-redux": "^2.1.0",
112109
"react-markdown-loader": "^1.1.14",
113110
"react-modal": "^3.4.4",
114-
"react-popover": "^0.5.7",
115111
"react-redux": "^6.0.1",
116112
"react-responsive": "^6.1.1",
117113
"react-style-proptype": "^3.2.1",
118114
"react-tabs": "^3.0.0",
119115
"react-test-renderer": "^16.8.4",
120-
"react-tooltip": "^3.6.1",
116+
"react-tooltip": "^5.28.0",
121117
"react-virtualized": "^9.19.1",
122118
"redux": "^4.0.1",
123-
"redux-little-router": "^15.1.1",
124119
"redux-logger": "^3.0.6",
125120
"redux-mock-store": "^1.2.3",
126121
"redux-throttle": "^0.1.1",
127122
"request": "^2.88.0",
128123
"request-promise-native": "^1.0.5",
129124
"rimraf": "^2.6.1",
130-
"scratch-paint": "0.2.0-prerelease.20181120191526",
131-
"scratch-render": "0.1.0-prerelease.20210325231800",
132-
"scratch-render-fonts": "1.0.0-prerelease.20210401210003",
133-
"scratch-storage": "1.2.2",
134-
"scratch-svg-renderer": "0.2.0-prerelease.20210511195415",
125+
"scratch-paint": "2.2.21",
126+
"scratch-render": "1.0.38",
127+
"scratch-render-fonts": "^1.0.0",
128+
"scratch-storage": "2.3.3",
129+
"scratch-svg-renderer": "1.0.0",
135130
"selenium-webdriver": "4.0.0-alpha.1",
136131
"serverless": "^1.83.3",
137132
"serverless-domain-manager": "^3.1.0",
138133
"serverless-dotenv-plugin": "^2.0.1",
139-
"serverless-offline": "^4.9.2",
134+
"serverless-offline": "^8.8.0",
140135
"serverless-pseudo-parameters": "^2.2.0",
141136
"serverless-webpack": "^5.2.0",
142137
"startaudiocontext": "1.2.1",
143138
"style-loader": "^0.23.1",
144139
"svg-to-image": "^1.1.3",
145-
"svgo": "^1.2.2",
146-
"svgo-loader": "^2.2.0",
140+
"svgo-loader": "^4.0.0",
147141
"text-encoding": "^0.7.0",
148142
"ts-node": "^8.0.2",
149143
"typescript": "^3.2.4",
150144
"wav-encoder": "^1.3.0",
151145
"web-audio-test-api": "^0.5.2",
152-
"webpack": "^4.25.1",
153-
"webpack-cli": "^3.1.2",
154-
"webpack-dev-server": "^3.1.10",
146+
"webpack": "^5.67.0",
147+
"webpack-cli": "^5.0.0",
148+
"webpack-dev-server": "^4.0.10",
155149
"webpack-visualizer-plugin": "^0.1.11",
156-
"workbox-webpack-plugin": "^4.1.1",
150+
"workbox-webpack-plugin": "^5.1.3",
157151
"xhr": "^2.5.0",
158152
"yarn": "^1.9.4"
159153
},
160154
"jest": {
161155
"setupFiles": [
162-
"raf/polyfill",
163-
"<rootDir>/test/helpers/enzyme-setup.js"
156+
"raf/polyfill"
164157
],
165158
"testPathIgnorePatterns": [
166159
"src/test.js"
@@ -171,23 +164,31 @@
171164
}
172165
},
173166
"dependencies": {
167+
"@formatjs/intl-pluralrules": "^5.2.14",
168+
"@formatjs/intl-relativetimeformat": "^11.2.14",
174169
"@react-hook/window-size": "^1.0.13",
175170
"audio-context": "^1.0.3",
171+
"babel-plugin-formatjs": "^10.5.16",
172+
"connected-react-router": "^6.9.3",
176173
"cors": "^2.8.5",
177174
"ejs-loader": "^0.3.3",
178175
"express": "^4.16.4",
179176
"ffmpeg.js": "^3.1.9001",
180177
"gifshot": "^0.4.5",
181178
"hls.js": "^0.12.4",
182179
"html2canvas": "^1.0.0-alpha.12",
183-
"jspdf": "^1.5.3",
180+
"jspdf": "^2.5.1",
184181
"lodash.keyby": "^4.6.0",
185182
"multer": "^1.4.1",
186183
"piano-analytics-js": "^6.8.3",
187184
"qrcode.react": "^0.9.3",
188-
"scratch-audio": "0.1.0-prerelease.20200528195344",
189-
"scratch-blocks": "0.1.0-prerelease.20210529032338",
190-
"scratch-vm": "0.2.0-prerelease.20210510162256",
185+
"react-intl": "2.9.0",
186+
"react-popover": "^0.5.10",
187+
"react-router": "5.0.0",
188+
"react-router-dom": "5.0.0",
189+
"scratch-audio": "1.0.0",
190+
"scratch-blocks": "1.1.6",
191+
"scratch-vm": "3.0.9",
191192
"shortid": "^2.2.14",
192193
"slugg": "^1.2.1",
193194
"uuid": "^3.3.2",
@@ -197,7 +198,9 @@
197198
"printer": "^0.2.2"
198199
},
199200
"resolutions": {
200-
"history": "4.7.2"
201+
"history": "4.9.0",
202+
"cheerio": "1.0.0-rc.12",
203+
"isomorphic-dompurify": "1.9.0"
201204
},
202205
"prettier": {
203206
"tabWidth": 2,

serverless.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ service: hackingstudio-code4maus
22

33
provider:
44
name: aws
5-
runtime: nodejs14.x
5+
runtime: nodejs16.x
66
region: eu-central-1
77
role: 'arn:aws:iam::#{AWS::AccountId}:role/hackingstudio/code4maus/hackingstudio-code4maus-functions'
88
stage: ${file(scripts/env.js):stage}

src/backend/prepareAssetUpload.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ const s3 = initS3(customEndpoint)
1010
export const handler = async (event) => {
1111
const { filename } = JSON.parse(event.body)
1212

13-
console.log("filename for handler", filename)
14-
1513
if (!filename) {
1614
return respond.error(400, "Missing request body key 'filename'.")
1715
}
@@ -21,8 +19,6 @@ export const handler = async (event) => {
2119
Key: `data/assets/${filename}`,
2220
}
2321

24-
console.log("params", params)
25-
2622
try {
2723
await s3.headObject(params).promise()
2824
return respond.error(409, 'Asset already exists.', { exists: true })

0 commit comments

Comments
 (0)