Skip to content

Commit

Permalink
test: update example apps
Browse files Browse the repository at this point in the history
  • Loading branch information
grixu committed Jun 20, 2024
1 parent 9a003a9 commit c45d540
Show file tree
Hide file tree
Showing 27 changed files with 141 additions and 76 deletions.
1 change: 1 addition & 0 deletions packages/next/__tests__/apps/app-router/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL="http://localhost:4000"
1 change: 1 addition & 0 deletions packages/next/__tests__/apps/app-router/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL="http://localhost:4000"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import { useEffect, useState } from "react";
import { useSdk } from "../../hooks";
import { useSdk } from "../../sdk/sdk-provider";

export function ClientComponentUsingSdk() {
const sdk = useSdk();
Expand Down
9 changes: 8 additions & 1 deletion packages/next/__tests__/apps/app-router/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
import { ReactNode } from "react";
import { PublicEnvScript } from 'next-runtime-env';
import { Providers } from "./providers";
import { getSdkOptions } from "../sdk/options";

export default function RootLayout({ children }: { children: ReactNode }) {
const sdkOptions = getSdkOptions();

return (
<html lang="en">
<head>
<PublicEnvScript />
</head>
<body>
<nav>
<ul>
Expand All @@ -15,7 +22,7 @@ export default function RootLayout({ children }: { children: ReactNode }) {
</li>
</ul>
</nav>
<Providers>{children}</Providers>
<Providers sdkOptions={sdkOptions}>{children}</Providers>
</body>
</html>
);
Expand Down
16 changes: 13 additions & 3 deletions packages/next/__tests__/apps/app-router/app/providers.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
"use client";

import { ReactNode } from "react";
import { SdkProvider } from "../hooks";
import { createSdk, type CreateSdkOptions } from "@vue-storefront/next";
import { SdkProvider } from "../sdk/sdk-provider";
import { getSdkConfig } from "../sdk/config";

export function Providers({ children }: { children: ReactNode }) {
return <SdkProvider>{children}</SdkProvider>;
export function Providers({
children,
sdkOptions,
}: {
children: ReactNode;
sdkOptions: CreateSdkOptions;
}) {
const { getSdk } = createSdk(sdkOptions, getSdkConfig());

return <SdkProvider sdk={getSdk()}>{children}</SdkProvider>;
}
2 changes: 1 addition & 1 deletion packages/next/__tests__/apps/app-router/app/ssr/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { headers } from "next/headers";
import { getSdk } from "../../sdk.config";
import { getSdk } from "../../sdk/sdk.server";

export default async function SsrPage() {
const pageData = await getSdk({
Expand Down
4 changes: 0 additions & 4 deletions packages/next/__tests__/apps/app-router/hooks/index.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/next/__tests__/apps/app-router/middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @docs https://nextjs.org/docs/advanced-features/middleware
*/
import { NextRequest, NextResponse } from "next/server";
import { getSdk } from "./sdk.config";
import { getSdk } from "./sdk/sdk.server";

export async function middleware(request: NextRequest) {
const response = NextResponse.next();
Expand Down
5 changes: 3 additions & 2 deletions packages/next/__tests__/apps/app-router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
"lint": "next lint"
},
"dependencies": {
"@vue-storefront/next": "*",
"@vue-storefront/next": "file:../../../",
"react": "^18",
"react-dom": "^18",
"next": "14.0.4"
"next": "14.0.4",
"next-runtime-env": "3.2.2"
},
"devDependencies": {
"typescript": "^5",
Expand Down
20 changes: 0 additions & 20 deletions packages/next/__tests__/apps/app-router/sdk.config.ts

This file was deleted.

13 changes: 13 additions & 0 deletions packages/next/__tests__/apps/app-router/sdk/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Endpoints } from "@storefront/shared";
import { defineSdkConfig } from "@vue-storefront/next";

export function getSdkConfig() {
return defineSdkConfig(({ buildModule, middlewareModule, config, getRequestHeaders }) => ({
example: buildModule(middlewareModule<Endpoints>, {
apiUrl: `${config.middlewareUrl}/test_integration`,
defaultRequestConfig: {
headers: getRequestHeaders(),
},
}),
}));
}
10 changes: 10 additions & 0 deletions packages/next/__tests__/apps/app-router/sdk/options.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { CreateSdkOptions } from "@vue-storefront/next";
import { env } from "next-runtime-env";

export function getSdkOptions() {
return {
middleware: {
apiUrl: env('NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL'),
},
} satisfies CreateSdkOptions;
}
7 changes: 7 additions & 0 deletions packages/next/__tests__/apps/app-router/sdk/sdk-provider.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"use client";

import { createSdkContext } from "@vue-storefront/next/client";

import type { Sdk } from "./sdk.server";

export const [SdkProvider, useSdk] = createSdkContext<Sdk>();
9 changes: 9 additions & 0 deletions packages/next/__tests__/apps/app-router/sdk/sdk.server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { createSdk } from "@vue-storefront/next";
import { getSdkOptions } from "./options";
import { getSdkConfig } from "./config";

export const { getSdk } = createSdk(
getSdkOptions(), getSdkConfig()
);

export type Sdk = ReturnType<typeof getSdk>;
1 change: 1 addition & 0 deletions packages/next/__tests__/apps/pages-router/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL="http://localhost:4000"
1 change: 1 addition & 0 deletions packages/next/__tests__/apps/pages-router/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL="http://localhost:4000"
4 changes: 0 additions & 4 deletions packages/next/__tests__/apps/pages-router/hooks/index.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/next/__tests__/apps/pages-router/middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @docs https://nextjs.org/docs/advanced-features/middleware
*/
import { NextRequest, NextResponse } from "next/server";
import { getSdk } from "./sdk.config";
import { getSdk } from "./sdk/sdk.server";

export async function middleware(request: NextRequest) {
const response = NextResponse.next();
Expand Down
5 changes: 3 additions & 2 deletions packages/next/__tests__/apps/pages-router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
"lint": "next lint"
},
"dependencies": {
"@vue-storefront/next": "*",
"@vue-storefront/next": "file:../../../",
"react": "^18",
"react-dom": "^18",
"next": "14.0.4"
"next": "14.0.4",
"next-runtime-env": "3.2.2"
},
"devDependencies": {
"typescript": "^5",
Expand Down
41 changes: 27 additions & 14 deletions packages/next/__tests__/apps/pages-router/pages/_app.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,33 @@
import type { AppProps } from "next/app";
import { SdkProvider } from "../hooks";
import { createSdk } from "@vue-storefront/next";
import { SdkProvider } from "../sdk/sdk-provider";
import { getSdkOptions } from "../sdk/options";
import { getSdkConfig } from "../sdk/config";
import { PublicEnvScript } from "next-runtime-env";

export default function App({ Component, pageProps }: AppProps) {
const { getSdk } = createSdk(getSdkOptions(), getSdkConfig());

return (
<SdkProvider>
<nav>
<ul>
<li>
<a href="/ssr">SSR Page</a>
</li>
<li>
<a href="/csr">CSR Page</a>
</li>
</ul>
</nav>
<Component {...pageProps} />
</SdkProvider>
<html>
<head>
<PublicEnvScript />
</head>
<body>
<SdkProvider sdk={getSdk()}>
<nav>
<ul>
<li>
<a href="/ssr">SSR Page</a>
</li>
<li>
<a href="/csr">CSR Page</a>
</li>
</ul>
</nav>
<Component {...pageProps} />
</SdkProvider>
</body>
</html>
);
}
2 changes: 1 addition & 1 deletion packages/next/__tests__/apps/pages-router/pages/csr.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useEffect, useState } from "react";
import { useSdk } from "../hooks";
import { useSdk } from "../sdk/sdk-provider";

export default function ClientPage() {
const sdk = useSdk();
Expand Down
2 changes: 1 addition & 1 deletion packages/next/__tests__/apps/pages-router/pages/ssr.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GetServerSideProps } from "next";
import { getSdk } from "../sdk.config";
import { getSdk } from "../sdk/sdk.server";

export default function SsrPage({ result }: any) {
return (
Expand Down
20 changes: 0 additions & 20 deletions packages/next/__tests__/apps/pages-router/sdk.config.ts

This file was deleted.

13 changes: 13 additions & 0 deletions packages/next/__tests__/apps/pages-router/sdk/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { defineSdkConfig } from "@vue-storefront/next";
import type { Endpoints } from "@storefront/shared";

export function getSdkConfig() {
return defineSdkConfig(({ buildModule, middlewareModule, config, getRequestHeaders }) => ({
example: buildModule(middlewareModule<Endpoints>, {
apiUrl: `${config.middlewareUrl}/test_integration`,
defaultRequestConfig: {
headers: getRequestHeaders(),
},
})
}));
}
11 changes: 11 additions & 0 deletions packages/next/__tests__/apps/pages-router/sdk/options.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import type { CreateSdkOptions } from "@vue-storefront/next";
import { env } from "next-runtime-env";

export function getSdkOptions() {
return {
middleware: {
apiUrl:
env("NEXT_PUBLIC_ALOKAI_MIDDLEWARE_API_URL") ?? "http://localhost:4000",
},
} satisfies CreateSdkOptions;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"use client";

import { createSdkContext } from "@vue-storefront/next/client";

import type { Sdk } from "./sdk.server";

export const [SdkProvider, useSdk] = createSdkContext<Sdk>();
7 changes: 7 additions & 0 deletions packages/next/__tests__/apps/pages-router/sdk/sdk.server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { createSdk } from "@vue-storefront/next";
import { getSdkConfig } from "./config";
import { getSdkOptions } from "./options";

export const { getSdk } = createSdk(getSdkOptions(), getSdkConfig());

export type Sdk = ReturnType<typeof getSdk>;

0 comments on commit c45d540

Please sign in to comment.