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 #15 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 0c5c261 + 690a3e4 commit ea7cd35
Show file tree
Hide file tree
Showing 22 changed files with 552 additions and 476 deletions.
17 changes: 10 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ parameters:
default: "tags"

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 @@ -28,7 +29,7 @@ jobs:
- <<: *setup
- run:
name: Audit
command: pnpm audit --audit-level high && pnpm audit || exit 0
command: pnpm audit || exit 0
- run:
name: Test
command: pnpm --if-present lint && pnpm --if-present ts:check && pnpm --if-present test
Expand All @@ -42,9 +43,10 @@ jobs:
- run:
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 >>"

Expand All @@ -65,9 +67,10 @@ 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 >>"

Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/tag_pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: Tag Pull Request

on:
pull_request_target:

jobs:
tag-pull-request:
uses: commercelayer/.github/.github/workflows/tag_pull_request.yaml@main
secrets: inherit
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ typings/
.yarn-integrity

# dotenv environment variables file
.env
.env.test
# .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
2 changes: 1 addition & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
//registry.npmjs.org/:_authToken=${NPM_READ_TOKEN}
use-node-version=18.15.0
use-node-version=20.11.0
auto-install-peers=true
11 changes: 7 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,18 @@
"license": "MIT",
"engines": {
"node": ">=18",
"pnpm": ">=7"
"pnpm": ">=8"
},
"workspaces": [
"packages/*"
],
"devDependencies": {
"husky": "^9.0.10",
"husky": "^9.0.11",
"lerna": "^8.1.2",
"lint-staged": "^15.2.2",
"npm-check-updates": "^16.14.14"
"npm-check-updates": "^16.14.15"
},
"resolutions": {
"ip": "^2.0.1"
}
}
}
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.

114 changes: 100 additions & 14 deletions packages/app/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,107 @@ logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
# System
.DS_Store

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

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
# .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

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# App
packages/*/public/config.local.js
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-tags.git && cd app-tags
```

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>Tags | 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_tags.init(document.getElementById('root-app'), {
organizationSlug: '%PUBLIC_SELF_HOSTED_SLUG%',
routerBase: '%PUBLIC_PROJECT_PATH%'
})
})
</script>
</body>
</html>
27 changes: 14 additions & 13 deletions packages/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,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",
"query-string": "^8.2.0",
"query-string": "^9.0.0",
"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",
"@phosphor-icons/react": "v2.1.3",
"@types/lodash": "^4.14.202",
"@types/node": "20.11.16",
"@types/react": "^18.2.55",
"@types/react-dom": "^18.2.19",
"@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"
}
}
3 changes: 3 additions & 0 deletions packages/app/public/config.preview-prd.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
window.clAppConfig = {
domain: 'commercelayer.io'
}
3 changes: 3 additions & 0 deletions packages/app/public/config.preview-stg.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
window.clAppConfig = {
domain: 'commercelayer.co'
}
Loading

0 comments on commit ea7cd35

Please sign in to comment.