Playground Monorepo to learn more about SAP CAP, a bit of SolidJS and maybe even Fiori Elements.
- CAP Tests https://blogs.sap.com/2020/05/31/cap-unit-testing-using-mocha-and-chai/
- Vitest for SolidJS
- Working with Auth.?
- Trying out MTA, Bundling/Packaging in general
- Fiddle with deployment to BAS + HTML5 Repository
- Fiddling with Fiori Elements in addition to SolidJS
- Work with Stores
- Try embedding UI5 WebComponents
- Create, Read, Update and Deletion of Todos (KIS)
- Bundling/Packaging + with CAP
- Clean up
package.json
,.gitignore
files - Add LICENSE file(s)
- Add and configure scripts
After fiddling around a bit, reading some blogs and watching a few videos (like re>≡CAP) I think that extracting UIs from the CAP app
-folder is the right thing to do when not working with UI5 or Fiori Elements.
Here I want to note things that I've learned or looked into along the way.
... which btw. has an awesome documentation.
- configuration file (
cdsrc.json
& it'scds
prop in thepackage.json
) - rough overview of working with it's built-in authentication and how to extract it/annotate a service with it
- using
i18n
specifically in CAP - working with a db schema, annotating it with
i18n
, enhancing built-in aspects likecuid
with it's owni18n
- creating a FE App via a generator based on the CAP service and its annotations
- namespaces
Web Dev Concepts, not using SolidStart as it is in beta and I wanted to go "raw" here.
- components and their lifecycle
- lazy loading of components as well as dynamic import module name remapping for named xports to default export
- css modules
- signals, stores, resources
- JSX, Fragment shorthand
- embedding Web Components and extending the TS module declaration to make them "known"
- using a custom router
- it's way to observe changes, using signals (JS Proxies under the hood)
- Getting to know Vite & Vitest a bit better
- using the dev proxy in vite
- Learning a bit more about authentication thanks to this blog post which also made me realize that I can use "
credentials
=include
" in fetch when working with Basic Auth to let the browser do the work on manual (JS based) API calls - Working with/using ambient type, function, module or variable declarations and a better understanding for the
types.d.ts
file - Explored differences of package managers thanks to this blog post shared by Peter Muessig and started using pnpm due to its more efficient disk space usage
- Better understanding of Typescript Generics thanks to various blog posts and videos, just to mention two: