1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-27 13:49:10 +02:00
unleash.unleash/website/remote-content/sdks.js
Gastón Fournier a76e501438
chore: update references to repositories (#10465)
---------

Co-authored-by: Melinda Fekete <melinda.fekete@getunleash.io>
2025-08-06 14:45:26 +02:00

124 lines
3.4 KiB
JavaScript

import {
enrichAdditional,
modifyContent,
getRepoData,
getUrls,
} from './shared';
// Type definitions
//
// type Readme = {
// // This is the name that is placed before "SDK" in the sidebar.
// sidebarName: string;
//
// // The repo's primary branch. Falls back to "main" if nothing is defined
// branch?: string;
//
// // If present, this will be used to construct the slug. If no "slugName" is
// // defined, the `sidebarName` will be used to create the slug.
// slugName?: string;
// };
//
// type ReadmeData = Readme & { repoUrl: string };
const CLIENT_SIDE_SDK = 'frontend';
const SERVER_SIDE_SDK = 'backend';
const serverSideSdks = {
'unleash-go-sdk': {
sidebarName: 'Go',
branch: 'v5',
},
'unleash-java-sdk': {
sidebarName: 'Java',
},
'unleash-node-sdk': {
sidebarName: 'Node',
},
'unleash-php-sdk': {
sidebarName: 'PHP',
},
'unleash-python-sdk': {
sidebarName: 'Python',
},
'unleash-ruby-sdk': {
sidebarName: 'Ruby',
},
'unleash-rust-sdk': {
sidebarName: 'Rust',
},
'unleash-dotnet-sdk': {
sidebarName: '.NET',
slugName: 'dotnet',
},
};
const clientSideSdks = {
'unleash-android-proxy-sdk': {
sidebarName: 'Android (legacy)',
slugName: 'android-proxy-legacy',
},
'unleash-android-sdk': {
sidebarName: 'Android',
slugName: 'android',
},
'unleash-flutter-sdk': {
sidebarName: 'Flutter',
},
'unleash-ios-sdk': {
sidebarName: 'iOS',
slugName: 'ios',
},
'unleash-js-sdk': {
sidebarName: 'JavaScript browser',
slugName: 'javascript-browser',
},
'proxy-client-react': {
sidebarName: 'React',
},
'proxy-client-svelte': {
sidebarName: 'Svelte',
},
'proxy-client-vue': {
sidebarName: 'Vue',
},
'unleash-nextjs-sdk': {
sidebarName: 'Next.js',
slugName: 'next-js',
},
};
const SDKS = (() => {
const serverSide = Object.entries(serverSideSdks).map(
enrichAdditional({ type: SERVER_SIDE_SDK }),
);
const clientSide = Object.entries(clientSideSdks).map(
enrichAdditional({ type: CLIENT_SIDE_SDK }),
);
return Object.fromEntries(serverSide.concat(clientSide));
})();
const getAdmonitions = (sdk) => {
const admonitions = {
[CLIENT_SIDE_SDK]: `To connect to Unleash from a frontend application, you'll need to use the [Unleash front-end API](/reference/front-end-api) ([how do I create an API token?](/how-to/how-to-create-api-tokens.mdx)) or the [Unleash proxy](/reference/unleash-proxy) ([how do I create client keys?](/reference/api-tokens-and-client-keys#proxy-client-keys)).`,
[SERVER_SIDE_SDK]: `To connect to Unleash, you'll need your Unleash API url (e.g. \`https://<your-unleash>/api\`) and a [backend API token](/reference/api-tokens-and-client-keys.mdx#backend-tokens) ([how do I create an API token?](/how-to/how-to-create-api-tokens.mdx)).`,
};
const wrap = (text) => `:::tip\n${text}\n:::`;
return [wrap(admonitions[sdk.type])];
};
const modifyContent2 = modifyContent({
getRepoDataFn: getRepoData(SDKS),
urlPath: '/reference/sdks',
filePath: (sdk) => `sdks/${sdk.type}`,
getAdditionalAdmonitions: getAdmonitions,
});
export const sdks = {
urls: getUrls(SDKS),
modifyContent: modifyContent2,
};