Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: align package documentation with latest changes #2119

Merged
merged 6 commits into from
Aug 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

This document describes advanced strategies of using [dependency injection (DI)](/docs/scos/dev/front-end-development/{{page.version}}/oryx/dependency-injection/dependency-injection.html).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

This document describes the conventions we use and recommend for defining services in Oryx.

## String-based token
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

To use and inject services, they must be provided in the DI container. Oryx offers several types of providers:

- `ClassProvider<T>`: binds a token to a class constructor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

There are two primary methods for injecting services and dependencies:

- `inject`: usually used inside services.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Dependency injection (DI) is a design pattern that provides loosely-coupled, maintainable, and testable code. It improves modularity, maintainability, testability, and is easily customizable and extensible.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ template: concept-topic-template
last_updated: Apr 13, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

The service layer in Oryx serves as the foundation for the business logic. The main objective of the service layer is to abstract all the system functionality, including querying backend services, data caching and reloading, state management, and reactivity. Dependency injection (DI) plays a crucial role in achieving this objective.

Furthermore, DI is utilized by many higher-level elements and concepts in Oryx, ranging from adapters and normalizers to HTTP interceptors, authentication, product loading, cart management, and the checkout process.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ description: Environment of the Oryx Application
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

`AppEnvironment` represents environment variables that are used in an Oryx application. It's a typesafe global object that can be extended wherever an environment variable is needed for a feature to work properly.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@ description: Feature of the Oryx Application
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

`AppFeature` is a higher level collection of lower-level primitives, such as the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@ description: Orchestration of the Oryx Application
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

An Oryx application starts with the application orchestration. It lets you bootstrap and configure your application from reusable bits and pieces, such as the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ description: Plugins of the Oryx Application
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

When you create an Oryx Application with the `appBuilder()` function, it creates an instance of `App`. `App` is a a shell that can be enhanced with custom plugins: `AppPlugin`. Plugins let you extend Oryx core behavior without modifying the core code of the framework.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@ description: App of the Oryx Application
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

`App` represents a running Oryx application instance.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ last_updated: Apr 3, 2023
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Boilerplate refers to the _template_ code that is used to generate application code which can be further customized. At first sight, changing boilerplate is convenient as the code is at hand, generated in your project repository. However, when upgrading to newer versions of the original code, it becomes challenging. If you customized the boilerplate code and want to reapply a new version of the boilerplate, you have to merge the customizations with the new version during every update. This is a time-consuming and error-prone process that can slow down your development process and increase the risk of bugs.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ last_updated: June 8, 2023
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Compositions in Oryx are a tool for organizing components and defining their layout. It removes page-specific layout concerns from the component implementation, which makes the components less opinionated and more reusable.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ last_updated: May 24, 2023
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

A _feature set_ is a group of related features that can be added to an Oryx application with a single reference. Feature sets simplify the process of setting up an application by reducing the amount of [boilerplate code](/docs/scos/dev/front-end-development/{{page.version}}/oryx/oryx-boilerplate.html) required to configure and initialize the application.

Expand Down
22 changes: 9 additions & 13 deletions docs/scos/dev/front-end-development/202307.0/oryx/oryx-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ last_updated: Apr 19, 2023
template: concept-topic-template
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

The Oryx code base is [available on Github](https://github.com/spryker/oryx/), and the code is published and distributed as npm packages. [npmjs.com](https://www.npmjs.com/) is a widely used registry of packages. Package managers, like npm, yarn, deno, or bun, are used to install dependencies in a project. The dependencies are typically configured in the [package.json](https://docs.npmjs.com/cli/v9/configuring-npm/package-json) file of an application.

Expand All @@ -29,13 +25,13 @@ While the package layering might be irrelevant during your development, it might

The template layer contains packages that can be used as quick starters for demos and projects. Templated packages follow semantic versioning and ensure upgradability. Some packages in the template layer, like presets, are opinionated and might not be used inside your final setup. Their main purpose is to quickly get up and running a standard frontend application.

| PACKAGES | LOCATION |
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| | |
| [Application](https://www.npmjs.com/package/@spryker-oryx/application) | `@spryker-oryx/oryx-application-orchestration/oryx-applicationlication` |
| [Presets](https://www.npmjs.com/package/@spryker-oryx/oryx-presets.html) | `@spryker-oryx/oryx-presets` |
| [Labs ](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` |
| [Themes ](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` |
| PACKAGES | LOCATION |
| ---------------------------------------------------------------------- | --------------------------- |
| | |
| [Application](https://www.npmjs.com/package/@spryker-oryx/application) | `@spryker-oryx/application` |
| [Presets](https://www.npmjs.com/package/@spryker-oryx/presets) | `@spryker-oryx/presets` |
| [Labs ](https://www.npmjs.com/package/@spryker-oryx/labs) | `@spryker-oryx/labs` |
| [Themes ](https://www.npmjs.com/package/@spryker-oryx/themes) | `@spryker-oryx/themes` |

{% info_block infoBox %}

Expand All @@ -49,7 +45,6 @@ Domain packages provide components and service logic for certain domains. Organi

| PACKAGES | LOCATION |
| ---------------------------------------------------------------- | ------------------------ |
| [Auth](https://www.npmjs.com/package/@spryker-oryx/auth) | `@spryker-oryx/auth` |
| [Cart](https://www.npmjs.com/package/@spryker-oryx/cart) | `@spryker-oryx/cart` |
| [Checkout](https://www.npmjs.com/package/@spryker-oryx/checkout) | `@spryker-oryx/checkout` |
| [Content](https://www.npmjs.com/package/@spryker-oryx/content) | `@spryker-oryx/content` |
Expand All @@ -66,8 +61,10 @@ The platform layer contains the core packages of the Oryx framework. They provid

| PACKAGES | LOCATION |
| ---------------------------------------------------------------------------------- | --------------------------------- |
| [Auth](https://www.npmjs.com/package/@spryker-oryx/auth) | `@spryker-oryx/auth` |
| [Core](https://www.npmjs.com/package/@spryker-oryx/core) | `@spryker-oryx/core` |
| [Experience](https://www.npmjs.com/package/@spryker-oryx/experience) | `@spryker-oryx/experience` |
| [Form](https://www.npmjs.com/package/@spryker-oryx/form) | `@spryker-oryx/form` |
| [I18n](https://www.npmjs.com/package/@spryker-oryx/I18n) | `@spryker-oryx/i18n` |
| [Indexed-db](https://www.npmjs.com/package/@spryker-oryx/indexed-db) | `@spryker-oryx/indexed-db` |
| [offline](https://www.npmjs.com/package/@spryker-oryx/offline) | `@spryker-oryx/offline` |
Expand All @@ -81,6 +78,5 @@ The base layer contains packages that serve as utilities to all layers above. An
| PACKAGES | LOCATION |
| ------------------------------------------------------------------ | ------------------------- |
| [UI](https://www.npmjs.com/package/@spryker-oryx/ui) | `@spryker-oryx/ui` |
| [Form](https://www.npmjs.com/package/@spryker-oryx/form) | `@spryker-oryx/form` |
| [Utilities](https://www.npmjs.com/package/@spryker-oryx/utilities) | `@spryker-oryx/utilities` |
| [DI](https://www.npmjs.com/package/@spryker-oryx/di) | `@spryker-oryx/di` |
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ template: concept-topic-template
last_updated: Apr 4, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

The [presets package](https://www.npmjs.com/package/@spryker-oryx/presets) contains standard feature sets and resources that are used to create sample applications without writing [boilerplate](/docs/scos/dev/front-end-development/{{page.version}}/oryx/oryx-boilerplate.html). Presets might be too opinionated to use for a production application, but they let you get started quickly.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ template: concept-topic-template
last_updated: May 25, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Routing lets users navigate between different pages and components within an application. This document describes how to set up routing: add `RouterFeature`, render router outlets, and provide routes using [Dependency Injection (DI)](/docs/scos/dev/front-end-development/{{page.version}}/oryx/dependency-injection/dependency-injection.html).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ template: concept-topic-template
last_updated: June 3, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity due to its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@ template: concept-topic-template
last_updated: May 23, 2023
---

{% info_block warningBox %}

Oryx is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.

{% endinfo_block %}

Oryx supports all modern browsers and operating systems.

Expand Down
Loading