diff --git a/apps/sdk/src/index.ts b/apps/sdk/src/index.ts new file mode 100644 index 00000000..7bb8c1fb --- /dev/null +++ b/apps/sdk/src/index.ts @@ -0,0 +1,24 @@ +import { allProviders } from '@gitroom/nestjs-libraries/dtos/posts/providers-settings/all.providers.settings'; +import { CreatePostDto } from '@gitroom/nestjs-libraries/dtos/posts/create.post.dto'; + +class Postiz { + constructor( + private _apiKey = 'https://api.postiz.com' + ) { + } + + async post(posts: CreatePostDto) { + + } +} + +const postiz = new Postiz(); +postiz.post({ + posts: [ + { + settings: { + + } + } + ] +}) \ No newline at end of file diff --git a/libraries/nestjs-libraries/src/dtos/posts/providers-settings/all.providers.settings.ts b/libraries/nestjs-libraries/src/dtos/posts/providers-settings/all.providers.settings.ts index 147f7b51..440dd3b9 100644 --- a/libraries/nestjs-libraries/src/dtos/posts/providers-settings/all.providers.settings.ts +++ b/libraries/nestjs-libraries/src/dtos/posts/providers-settings/all.providers.settings.ts @@ -14,16 +14,31 @@ import { InstagramDto } from '@gitroom/nestjs-libraries/dtos/posts/providers-set import { LinkedinDto } from '@gitroom/nestjs-libraries/dtos/posts/providers-settings/linkedin.dto'; import { IsIn, MinLength } from 'class-validator'; +export type ProviderExtension = { type: T } & M; export type AllProvidersSettings = - | DevToSettingsDto - | MediumSettingsDto - | HashnodeSettingsDto - | RedditSettingsDto - | YoutubeSettingsDto - | PinterestSettingsDto - | XDto - | TikTokDto - | InstagramDto; + | ProviderExtension<'reddit', RedditSettingsDto> + | ProviderExtension<'lemmy', LemmySettingsDto> + | ProviderExtension<'youtube', YoutubeSettingsDto> + | ProviderExtension<'pinterest', PinterestSettingsDto> + | ProviderExtension<'dribbble', DribbbleDto> + | ProviderExtension<'tiktok', TikTokDto> + | ProviderExtension<'discord', DiscordDto> + | ProviderExtension<'slack', SlackDto> + | ProviderExtension<'x', XDto> + | ProviderExtension<'linkedin', LinkedinDto> + | ProviderExtension<'linkedin-page', LinkedinDto> + | ProviderExtension<'instagram', InstagramDto> + | ProviderExtension<'instagram-standalone', InstagramDto> + | ProviderExtension<'facebook', None> + | ProviderExtension<'threads', None> + | ProviderExtension<'mastodon', None> + | ProviderExtension<'bluesky', None> + | ProviderExtension<'wrapcast', None> + | ProviderExtension<'telegram', None> + | ProviderExtension<'nostr', None> + | ProviderExtension<'vk', None>; + +type None = NonNullable; export const allProviders = (setEmpty?: any) => { return [