Skip to content
This repository has been archived by the owner on Sep 24, 2024. It is now read-only.

Commit

Permalink
Merge pull request #53 from commercelayer/mfe-setup
Browse files Browse the repository at this point in the history
Setup app to be loaded as MFE
  • Loading branch information
gciotola authored Mar 6, 2024
2 parents bf9f9bd + e04c4b4 commit 9c9624f
Show file tree
Hide file tree
Showing 15 changed files with 524 additions and 558 deletions.
96 changes: 49 additions & 47 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ parameters:
default: "webhooks"

orbs:
aws-s3: circleci/aws-s3@3.1.1
aws-cli: circleci/aws-cli@4.1.3
aws-s3: circleci/aws-s3@4.0.0

image: &image
docker:
- image: cimg/node:18.15.0
- image: cimg/node:20.11.0
resource_class: medium+

setup: &setup
Expand All @@ -27,8 +28,11 @@ jobs:
- checkout
- <<: *setup
- run:
name: Test
command: pnpm test
name: Audit
command: pnpm audit || exit 0
- run:
name: Test
command: pnpm --if-present lint && pnpm --if-present ts:check && pnpm --if-present test
build:
<<: *image
environment:
Expand All @@ -37,16 +41,15 @@ jobs:
- checkout
- <<: *setup
- run:
name: Audit
command: pnpm audit --audit-level high && pnpm audit || exit 0
- run:
name: Build
name: Build
command: pnpm build
- aws-cli/setup:
aws_access_key_id: AWS_ACCESS_KEY
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
- aws-s3/sync:
aws-access-key-id: AWS_ACCESS_KEY
aws-secret-access-key: AWS_SECRET_ACCESS_KEY
from: packages/app/dist
to: "s3://$S3_ASSETS_BUCKET/team/fe-static-apps/<< pipeline.parameters.project-name >>/<<pipeline.git.tag>>"
to: "s3://$S3_ASSETS_BUCKET/team/fe-static-apps/<< pipeline.parameters.project-name >>/<< pipeline.git.tag >>"

preview:
<<: *image
parameters:
Expand All @@ -64,23 +67,22 @@ jobs:
- run:
name: Inject configuration
command: "cp packages/app/public/config.preview-<< parameters.preview-env >>.js packages/app/dist/config.local.js"
- aws-cli/setup:
aws_access_key_id: AWS_ACCESS_KEY
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
- aws-s3/sync:
aws-access-key-id: AWS_ACCESS_KEY
aws-secret-access-key: AWS_SECRET_ACCESS_KEY
from: packages/app/dist
to: "s3://$S3_ASSETS_DEV_BUCKET/team/fe-static-apps/<< pipeline.parameters.project-name >>/<< pipeline.git.tag >>-<< parameters.preview-env >>"

workflows:
version: 2

run-tests:
jobs:
- test:
context: commercelayer
filters:
tags:
ignore: /v.*/
ignore: /v.*|pr-.*/

test-build-and-push:
jobs:
- test:
Expand All @@ -101,33 +103,33 @@ workflows:
ignore: /.*/

test-and-preview-link:
jobs:
- test:
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
- preview:
name: preview-prd
requires:
- test
preview-env: prd
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
- preview:
name: preview-stg
requires:
- test
preview-env: stg
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
jobs:
- test:
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
- preview:
name: preview-prd
requires:
- test
preview-env: prd
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
- preview:
name: preview-stg
requires:
- test
preview-env: stg
context: commercelayer
filters:
tags:
only: /^pr-(0|[1-9]\d*).*/
branches:
ignore: /.*/
14 changes: 6 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# System
.DS_Store

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

Expand Down Expand Up @@ -69,13 +72,8 @@ typings/
.yarn-integrity

# dotenv environment variables file
.env
.env.local
.env.test
.env.staging.local
.env.development.local
.env.test.local
.env.production.local
# .env --> we want to keep it versionated by default. Use `.env.(local|production)` for custom env to be ignored
.env.*

# parcel-bundler cache (https://parceljs.org/)
.cache
Expand Down Expand Up @@ -109,4 +107,4 @@ dist
.tern-port

# App
packages/*/public/config.local.js
packages/*/public/config.local.js
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@
"license": "MIT",
"engines": {
"node": ">=18",
"pnpm": ">=7"
"pnpm": ">=8"
},
"workspaces": [
"packages/*"
],
"devDependencies": {
"husky": "^9.0.10",
"husky": "^9.0.11",
"ip": "^2.0.1",
"lerna": "^8.1.2",
"lint-staged": "^15.2.2",
"npm-check-updates": "^16.14.14"
"npm-check-updates": "^16.14.15"
}
}
}
4 changes: 4 additions & 0 deletions packages/app/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Base router path for the project
PUBLIC_PROJECT_PATH=
# When set it defines the slug for the self hosted version of the project
PUBLIC_SELF_HOSTED_SLUG=
2 changes: 0 additions & 2 deletions packages/app/.env.local.sample

This file was deleted.

66 changes: 21 additions & 45 deletions packages/app/.gitignore
Original file line number Diff line number Diff line change
@@ -1,48 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build
/dist

# misc
.DS_Store
*.pem
.yalc
yalc.lock

# debug
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# envs
.env
.env.local
.env.test
.env.staging.local
.env.development.local
.env.test.local
.env.production.local

# vercel
.vercel

# typescript
*.tsbuildinfo
/test-results/
/playwright-report/
/playwright/.cache/
/dist-pw/
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
2 changes: 1 addition & 1 deletion packages/app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ You need a local Node.JS (version 18+) environment and some React.JS knowledge t
git clone https://github.com/<your username>/app-webhooks.git && cd app-webhooks
```

3. Set your environment by creating a new `/src/app/.env.local` file starting from `/src/app/.env.local.sample` (not required for local development)
3. Set your environment by creating a new `/src/app/.env.local` file starting from `/src/app/.env` (not required for local development)


4. Install dependencies and run the development server:
Expand Down
17 changes: 0 additions & 17 deletions packages/app/global.d.ts

This file was deleted.

17 changes: 15 additions & 2 deletions packages/app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,35 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Webhooks | Commerce Layer</title>
<title>Commerce Layer</title>
<link
rel="icon"
type="image/png"
href="https://data.commercelayer.app/assets/images/favicons/favicon-32x32.png"
/>
<link rel="preconnect" href="https://fonts.gstatic.com" />
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<link
href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div id="root"></div>
<div id="root-app"></div>

<script src="/config.local.js"></script>
<script src="/config.js"></script>

<script type="module" src="/src/main.tsx"></script>

<script>
window.addEventListener('DOMContentLoaded', () => {
window.clApp_webhooks.init(document.getElementById('root-app'), {
organizationSlug: '%PUBLIC_SELF_HOSTED_SLUG%',
routerBase: '%PUBLIC_PROJECT_PATH%'
})
})
</script>
</body>
</html>
27 changes: 15 additions & 12 deletions packages/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,30 +30,33 @@
"prepare": "touch ./public/config.local.js"
},
"dependencies": {
"@commercelayer/app-elements": "1.14.0",
"@commercelayer/sdk": "5.31.1",
"@commercelayer/app-elements": "1.16.0",
"@commercelayer/sdk": "5.33.1",
"@hookform/resolvers": "^3.3.4",
"lodash": "^4.17.21",
"phosphor-react": "^1.4.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hook-form": "^7.50.1",
"swr": "^2.2.4",
"type-fest": "^4.10.2",
"wouter": "^3.0.0",
"react-hook-form": "^7.51.0",
"swr": "^2.2.5",
"type-fest": "^4.11.1",
"wouter": "^3.0.1",
"zod": "^3.22.4"
},
"devDependencies": {
"@commercelayer/eslint-config-ts-react": "^1.3.0",
"@types/node": "20.11.16",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.18",
"@types/lodash": "^4.14.202",
"@types/node": "20.11.24",
"@types/react": "^18.2.63",
"@types/react-dom": "^18.2.20",
"@vitejs/plugin-react": "^4.2.1",
"eslint": "^8.56.0",
"eslint": "^8.57.0",
"jsdom": "^24.0.0",
"rollup-plugin-external-globals": "^0.9.2",
"typescript": "^5.3.3",
"vite": "^5.0.12",
"vite": "^5.1.5",
"vite-tsconfig-paths": "^4.3.1",
"vitest": "^1.2.2"
"vitest": "^1.3.1"
},
"engines": {
"node": ">=18"
Expand Down
Loading

0 comments on commit 9c9624f

Please sign in to comment.