@vkontakte/api-schema-typescript-generator 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/CODEOWNERS +1 -1
- package/.github/workflows/publish.yml +6 -5
- package/.github/workflows/pull_request.yml +2 -2
- package/.nvmrc +1 -0
- package/LICENSE +1 -1
- package/dist/cli.js +5 -6
- package/dist/common/common.js +7 -0
- package/dist/common/errors.js +1023 -0
- package/dist/constants.js +1 -1
- package/dist/generator.js +6 -7
- package/dist/generators/APITypingsGenerator.js +180 -63
- package/dist/generators/SchemaObject.js +7 -7
- package/dist/generators/TypeCodeBlock.js +12 -12
- package/dist/generators/enums.js +11 -12
- package/dist/generators/methods.js +2 -3
- package/dist/generators/typeString.js +24 -20
- package/dist/generators/utils/mergeImports.js +15 -0
- package/dist/helpers.js +44 -31
- package/dist/helpers.test.js +7 -7
- package/dist/index.js +359 -85
- package/dist/log.js +5 -6
- package/dist/methods/account.js +5 -0
- package/dist/methods/ads.js +10 -0
- package/dist/methods/appWidgets.js +5 -0
- package/dist/methods/apps.js +5 -0
- package/dist/methods/auth.js +10 -0
- package/dist/methods/board.js +5 -0
- package/dist/methods/bugtracker.js +5 -0
- package/dist/methods/calls.js +5 -0
- package/dist/methods/database.js +5 -0
- package/dist/methods/docs.js +5 -0
- package/dist/methods/donut.js +5 -0
- package/dist/methods/downloadedGames.js +5 -0
- package/dist/methods/execute.js +5 -0
- package/dist/methods/fave.js +5 -0
- package/dist/methods/friends.js +28 -0
- package/dist/methods/gifts.js +5 -0
- package/dist/methods/groups.js +5 -0
- package/dist/methods/leadForms.js +5 -0
- package/dist/methods/likes.js +5 -0
- package/dist/methods/market.js +5 -0
- package/dist/methods/messages.js +5 -0
- package/dist/methods/newsfeed.js +5 -0
- package/dist/methods/notes.js +5 -0
- package/dist/methods/notifications.js +5 -0
- package/dist/methods/orders.js +5 -0
- package/dist/methods/pages.js +5 -0
- package/dist/methods/photos.js +5 -0
- package/dist/methods/podcasts.js +5 -0
- package/dist/methods/polls.js +5 -0
- package/dist/methods/prettyCards.js +5 -0
- package/dist/methods/search.js +5 -0
- package/dist/methods/secure.js +5 -0
- package/dist/methods/stats.js +5 -0
- package/dist/methods/status.js +5 -0
- package/dist/methods/storage.js +5 -0
- package/dist/methods/store.js +5 -0
- package/dist/methods/stories.js +5 -0
- package/dist/methods/streaming.js +5 -0
- package/dist/methods/translations.js +5 -0
- package/dist/methods/users.js +5 -0
- package/dist/methods/utils.js +5 -0
- package/dist/methods/video.js +5 -0
- package/dist/methods/wall.js +5 -0
- package/dist/methods/widgets.js +5 -0
- package/dist/objects/account/AccountAccountCounters.js +5 -0
- package/dist/objects/account/AccountCountersFilter.js +5 -0
- package/dist/objects/account/AccountInfo.js +5 -0
- package/dist/objects/account/AccountNameRequest.js +5 -0
- package/dist/objects/account/AccountNameRequestStatus.js +5 -0
- package/dist/objects/account/AccountOffer.js +5 -0
- package/dist/objects/account/AccountPushConversations.js +5 -0
- package/dist/objects/account/AccountPushConversationsItem.js +5 -0
- package/dist/objects/account/AccountPushParams.js +5 -0
- package/dist/objects/account/AccountPushParamsMode.js +5 -0
- package/dist/objects/account/AccountPushParamsOnoff.js +5 -0
- package/dist/objects/account/AccountPushParamsSettings.js +5 -0
- package/dist/objects/account/AccountPushSettings.js +5 -0
- package/dist/objects/account/AccountUserSettings.js +5 -0
- package/dist/objects/account/AccountUserSettingsInterest.js +5 -0
- package/dist/objects/account/AccountUserSettingsInterests.js +5 -0
- package/dist/objects/address/AddressFields.js +5 -0
- package/dist/objects/ads/AdsAccessRole.js +5 -0
- package/dist/objects/ads/AdsAccessRolePublic.js +5 -0
- package/dist/objects/ads/AdsAccesses.js +5 -0
- package/dist/objects/ads/AdsAccount.js +5 -0
- package/dist/objects/ads/AdsAccountType.js +5 -0
- package/dist/objects/ads/AdsAd.js +5 -0
- package/dist/objects/ads/AdsAdApproved.js +13 -0
- package/dist/objects/ads/AdsAdCostType.js +13 -0
- package/dist/objects/ads/AdsAdLayout.js +5 -0
- package/dist/objects/ads/AdsAdStatus.js +12 -0
- package/dist/objects/ads/AdsCampaign.js +5 -0
- package/dist/objects/ads/AdsCampaignStatus.js +12 -0
- package/dist/objects/ads/AdsCampaignType.js +5 -0
- package/dist/objects/ads/AdsCategory.js +5 -0
- package/dist/objects/ads/AdsClient.js +5 -0
- package/dist/objects/ads/AdsClipItem.js +5 -0
- package/dist/objects/ads/AdsClipItemLink.js +5 -0
- package/dist/objects/ads/AdsCreateAdStatus.js +5 -0
- package/dist/objects/ads/AdsCreateCampaignStatus.js +5 -0
- package/dist/objects/ads/AdsCreateClientsStatus.js +5 -0
- package/dist/objects/ads/AdsCriteriaSex.js +12 -0
- package/dist/objects/ads/AdsDemoStats.js +5 -0
- package/dist/objects/ads/AdsDemostatsFormat.js +5 -0
- package/dist/objects/ads/AdsEventsRetargetingGroup.js +5 -0
- package/dist/objects/ads/AdsFloodStats.js +5 -0
- package/dist/objects/ads/AdsFloodStatsByUserItem.js +5 -0
- package/dist/objects/ads/AdsLinkStatus.js +5 -0
- package/dist/objects/ads/AdsLookalikeRequest.js +5 -0
- package/dist/objects/ads/AdsLookalikeRequestSaveAudienceLevel.js +5 -0
- package/dist/objects/ads/AdsMobileStatItem.js +5 -0
- package/dist/objects/ads/AdsMusician.js +5 -0
- package/dist/objects/ads/AdsObjectType.js +5 -0
- package/dist/objects/ads/AdsOrdClientType.js +5 -0
- package/dist/objects/ads/AdsOrdData.js +5 -0
- package/dist/objects/ads/AdsOrdSubagent.js +5 -0
- package/dist/objects/ads/AdsPost.js +5 -0
- package/dist/objects/ads/AdsPostComments.js +5 -0
- package/dist/objects/ads/AdsPostDonut.js +5 -0
- package/dist/objects/ads/AdsPostEasyPromote.js +5 -0
- package/dist/objects/ads/AdsPostLikes.js +5 -0
- package/dist/objects/ads/AdsPostOwner.js +5 -0
- package/dist/objects/ads/AdsPostReposts.js +5 -0
- package/dist/objects/ads/AdsPostViews.js +5 -0
- package/dist/objects/ads/AdsPromotedPostReach.js +5 -0
- package/dist/objects/ads/AdsRejectReason.js +5 -0
- package/dist/objects/ads/AdsRules.js +5 -0
- package/dist/objects/ads/AdsStats.js +5 -0
- package/dist/objects/ads/AdsStatsAge.js +5 -0
- package/dist/objects/ads/AdsStatsCities.js +5 -0
- package/dist/objects/ads/AdsStatsFormat.js +5 -0
- package/dist/objects/ads/AdsStatsSex.js +5 -0
- package/dist/objects/ads/AdsStatsSexAge.js +5 -0
- package/dist/objects/ads/AdsStatsSexValue.js +5 -0
- package/dist/objects/ads/AdsStatsViewsTimes.js +5 -0
- package/dist/objects/ads/AdsStories.js +5 -0
- package/dist/objects/ads/AdsStoriesOwner.js +5 -0
- package/dist/objects/ads/AdsStoryItem.js +5 -0
- package/dist/objects/ads/AdsStoryItemLink.js +5 -0
- package/dist/objects/ads/AdsStoryItemStats.js +5 -0
- package/dist/objects/ads/AdsStoryItemStatsFollow.js +5 -0
- package/dist/objects/ads/AdsStoryItemStatsUrlView.js +5 -0
- package/dist/objects/ads/AdsTargSettings.js +5 -0
- package/dist/objects/ads/AdsTargStats.js +5 -0
- package/dist/objects/ads/AdsTargSuggestions.js +5 -0
- package/dist/objects/ads/AdsTargSuggestionsCities.js +5 -0
- package/dist/objects/ads/AdsTargSuggestionsRegions.js +5 -0
- package/dist/objects/ads/AdsTargSuggestionsSchools.js +5 -0
- package/dist/objects/ads/AdsTargSuggestionsSchoolsType.js +5 -0
- package/dist/objects/ads/AdsTargetGroup.js +5 -0
- package/dist/objects/ads/AdsTargetGroupTargetPixelRule.js +5 -0
- package/dist/objects/ads/AdsTargetPixelInfo.js +5 -0
- package/dist/objects/ads/AdsUpdateAdsStatus.js +5 -0
- package/dist/objects/ads/AdsUpdateClientsStatus.js +5 -0
- package/dist/objects/ads/AdsUpdateOfficeUsersResult.js +5 -0
- package/dist/objects/ads/AdsUserSpecification.js +5 -0
- package/dist/objects/ads/AdsUserSpecificationCutted.js +5 -0
- package/dist/objects/ads/AdsUsers.js +5 -0
- package/dist/objects/appWidgets/AppWidgetsPhoto.js +5 -0
- package/dist/objects/appWidgets/AppWidgetsPhotos.js +5 -0
- package/dist/objects/apps/AppsApp.js +5 -0
- package/dist/objects/apps/AppsAppFields.js +5 -0
- package/dist/objects/apps/AppsAppLeaderboardType.js +12 -0
- package/dist/objects/apps/AppsAppMin.js +5 -0
- package/dist/objects/apps/AppsAppType.js +5 -0
- package/dist/objects/apps/AppsCatalogList.js +5 -0
- package/dist/objects/apps/AppsCustomSnippet.js +5 -0
- package/dist/objects/apps/AppsLeaderboard.js +5 -0
- package/dist/objects/apps/AppsScope.js +5 -0
- package/dist/objects/apps/AppsTestingGroup.js +5 -0
- package/dist/objects/audio/AudioAudio.js +5 -0
- package/dist/objects/base/BaseCity.js +5 -0
- package/dist/objects/base/BaseCommentsInfo.js +5 -0
- package/dist/objects/base/BaseCountry.js +5 -0
- package/dist/objects/base/BaseCropPhoto.js +5 -0
- package/dist/objects/base/BaseCropPhotoCrop.js +5 -0
- package/dist/objects/base/BaseCropPhotoRect.js +5 -0
- package/dist/objects/base/BaseError.js +5 -0
- package/dist/objects/base/BaseGeo.js +5 -0
- package/dist/objects/base/BaseGeoCoordinates.js +5 -0
- package/dist/objects/base/BaseGradientPoint.js +5 -0
- package/dist/objects/base/BaseImage.js +5 -0
- package/dist/objects/base/BaseLang.js +5 -0
- package/dist/objects/base/BaseLikes.js +5 -0
- package/dist/objects/base/BaseLikesInfo.js +5 -0
- package/dist/objects/base/BaseLink.js +5 -0
- package/dist/objects/base/BaseLinkApplication.js +5 -0
- package/dist/objects/base/BaseLinkApplicationStore.js +5 -0
- package/dist/objects/base/BaseLinkButton.js +5 -0
- package/dist/objects/base/BaseLinkButtonAction.js +5 -0
- package/dist/objects/base/BaseLinkButtonActionType.js +5 -0
- package/dist/objects/base/BaseLinkButtonStyle.js +5 -0
- package/dist/objects/base/BaseLinkProduct.js +5 -0
- package/dist/objects/base/BaseLinkProductStatus.js +5 -0
- package/dist/objects/base/BaseLinkRating.js +5 -0
- package/dist/objects/base/BaseMessageError.js +5 -0
- package/dist/objects/base/BaseNameCase.js +5 -0
- package/dist/objects/base/BaseObject.js +5 -0
- package/dist/objects/base/BaseObjectCount.js +5 -0
- package/dist/objects/base/BaseObjectWithName.js +5 -0
- package/dist/objects/base/BaseOwnerCover.js +5 -0
- package/dist/objects/base/BaseOwnerCoverCropParams.js +5 -0
- package/dist/objects/base/BasePlace.js +5 -0
- package/dist/objects/base/BaseRepostsInfo.js +5 -0
- package/dist/objects/base/BaseRequestParam.js +5 -0
- package/dist/objects/base/BaseSex.js +12 -0
- package/dist/objects/base/BaseSticker.js +5 -0
- package/dist/objects/base/BaseStickerAnimation.js +5 -0
- package/dist/objects/base/BaseStickerNew.js +5 -0
- package/dist/objects/base/BaseUploadServer.js +5 -0
- package/dist/objects/base/BaseUserGroupFields.js +5 -0
- package/dist/objects/base/BaseUserId.js +5 -0
- package/dist/objects/board/BoardDefaultOrder.js +13 -0
- package/dist/objects/board/BoardTopic.js +5 -0
- package/dist/objects/board/BoardTopicComment.js +5 -0
- package/dist/objects/bugtracker/BugtrackerAddCompanyGroupsMembersError.js +5 -0
- package/dist/objects/bugtracker/BugtrackerAttachment.js +5 -0
- package/dist/objects/bugtracker/BugtrackerBugreport.js +11 -0
- package/dist/objects/bugtracker/BugtrackerBugreportSubscribeState.js +5 -0
- package/dist/objects/bugtracker/BugtrackerComment.js +5 -0
- package/dist/objects/bugtracker/BugtrackerCommentAuthor.js +5 -0
- package/dist/objects/bugtracker/BugtrackerCompanyMember.js +5 -0
- package/dist/objects/bugtracker/BugtrackerCompanyMemberProduct.js +5 -0
- package/dist/objects/calls/CallsCall.js +5 -0
- package/dist/objects/calls/CallsEndState.js +5 -0
- package/dist/objects/calls/CallsParticipants.js +5 -0
- package/dist/objects/calls/CallsShortCredentials.js +5 -0
- package/dist/objects/comment/CommentThread.js +5 -0
- package/dist/objects/database/DatabaseCitiesFields.js +5 -0
- package/dist/objects/database/DatabaseCity.js +5 -0
- package/dist/objects/database/DatabaseCityById.js +5 -0
- package/dist/objects/database/DatabaseFaculty.js +5 -0
- package/dist/objects/database/DatabaseLanguageFull.js +5 -0
- package/dist/objects/database/DatabaseRegion.js +5 -0
- package/dist/objects/database/DatabaseSchool.js +5 -0
- package/dist/objects/database/DatabaseSchoolClass.js +5 -0
- package/dist/objects/database/DatabaseStation.js +5 -0
- package/dist/objects/database/DatabaseUniversity.js +5 -0
- package/dist/objects/docs/DocsDoc.js +5 -0
- package/dist/objects/docs/DocsDocAttachmentType.js +5 -0
- package/dist/objects/docs/DocsDocPreview.js +5 -0
- package/dist/objects/docs/DocsDocPreviewAudioMsg.js +5 -0
- package/dist/objects/docs/DocsDocPreviewGraffiti.js +5 -0
- package/dist/objects/docs/DocsDocPreviewPhoto.js +5 -0
- package/dist/objects/docs/DocsDocPreviewPhotoSizes.js +5 -0
- package/dist/objects/docs/DocsDocPreviewVideo.js +5 -0
- package/dist/objects/docs/DocsDocTypes.js +5 -0
- package/dist/objects/donut/DonutDonatorSubscriptionInfo.js +5 -0
- package/dist/objects/events/EventsEventAttach.js +5 -0
- package/dist/objects/fave/FaveBookmark.js +5 -0
- package/dist/objects/fave/FaveBookmarkType.js +5 -0
- package/dist/objects/fave/FavePage.js +5 -0
- package/dist/objects/fave/FavePageType.js +5 -0
- package/dist/objects/fave/FaveTag.js +5 -0
- package/dist/objects/friends/FriendsFriendExtendedStatus.js +5 -0
- package/dist/objects/friends/FriendsFriendStatus.js +5 -0
- package/dist/objects/friends/FriendsFriendStatusStatus.js +13 -0
- package/dist/objects/friends/FriendsFriendsList.js +5 -0
- package/dist/objects/friends/FriendsMutualFriend.js +5 -0
- package/dist/objects/friends/FriendsOnlineUsers.js +5 -0
- package/dist/objects/friends/FriendsOnlineUsersWithMobile.js +5 -0
- package/dist/objects/friends/FriendsRequestsMutual.js +5 -0
- package/dist/objects/friends/FriendsRequestsXtrMessage.js +5 -0
- package/dist/objects/friends/FriendsRequestsXtrMutual.js +5 -0
- package/dist/objects/gifts/GiftsGift.js +5 -0
- package/dist/objects/gifts/GiftsGiftPrivacy.js +12 -0
- package/dist/objects/gifts/GiftsLayout.js +5 -0
- package/dist/objects/groups/GroupsAddress.js +5 -0
- package/dist/objects/groups/GroupsAddressTimetable.js +5 -0
- package/dist/objects/groups/GroupsAddressTimetableDay.js +5 -0
- package/dist/objects/groups/GroupsAddressWorkInfoStatus.js +5 -0
- package/dist/objects/groups/GroupsAddressesInfo.js +5 -0
- package/dist/objects/groups/GroupsBanInfo.js +5 -0
- package/dist/objects/groups/GroupsBanInfoReason.js +14 -0
- package/dist/objects/groups/GroupsCallbackServer.js +5 -0
- package/dist/objects/groups/GroupsCallbackSettings.js +5 -0
- package/dist/objects/groups/GroupsContactsItem.js +5 -0
- package/dist/objects/groups/GroupsCountersGroup.js +5 -0
- package/dist/objects/groups/GroupsFields.js +5 -0
- package/dist/objects/groups/GroupsFilter.js +5 -0
- package/dist/objects/groups/GroupsGroup.js +5 -0
- package/dist/objects/groups/GroupsGroupAccess.js +12 -0
- package/dist/objects/groups/GroupsGroupAdminLevel.js +12 -0
- package/dist/objects/groups/GroupsGroupAgeLimits.js +12 -0
- package/dist/objects/groups/GroupsGroupAttach.js +5 -0
- package/dist/objects/groups/GroupsGroupAudio.js +12 -0
- package/dist/objects/groups/GroupsGroupBanInfo.js +5 -0
- package/dist/objects/groups/GroupsGroupCategory.js +5 -0
- package/dist/objects/groups/GroupsGroupCategoryFull.js +5 -0
- package/dist/objects/groups/GroupsGroupCategoryType.js +5 -0
- package/dist/objects/groups/GroupsGroupDocs.js +12 -0
- package/dist/objects/groups/GroupsGroupFull.js +13 -0
- package/dist/objects/groups/GroupsGroupFullAgeLimits.js +12 -0
- package/dist/objects/groups/GroupsGroupFullMemberStatus.js +15 -0
- package/dist/objects/groups/GroupsGroupFullSection.js +58 -0
- package/dist/objects/groups/GroupsGroupIsClosed.js +12 -0
- package/dist/objects/groups/GroupsGroupMarketCurrency.js +14 -0
- package/dist/objects/groups/GroupsGroupPhotos.js +12 -0
- package/dist/objects/groups/GroupsGroupPublicCategoryList.js +5 -0
- package/dist/objects/groups/GroupsGroupRole.js +5 -0
- package/dist/objects/groups/GroupsGroupSubcategory.js +5 -0
- package/dist/objects/groups/GroupsGroupSubject.js +51 -0
- package/dist/objects/groups/GroupsGroupSuggestedPrivacy.js +12 -0
- package/dist/objects/groups/GroupsGroupTag.js +5 -0
- package/dist/objects/groups/GroupsGroupTopics.js +12 -0
- package/dist/objects/groups/GroupsGroupType.js +5 -0
- package/dist/objects/groups/GroupsGroupVideo.js +12 -0
- package/dist/objects/groups/GroupsGroupWall.js +13 -0
- package/dist/objects/groups/GroupsGroupWiki.js +12 -0
- package/dist/objects/groups/GroupsGroupsArray.js +5 -0
- package/dist/objects/groups/GroupsLinksItem.js +5 -0
- package/dist/objects/groups/GroupsLiveCovers.js +5 -0
- package/dist/objects/groups/GroupsLongPollEvents.js +5 -0
- package/dist/objects/groups/GroupsLongPollServer.js +5 -0
- package/dist/objects/groups/GroupsLongPollSettings.js +5 -0
- package/dist/objects/groups/GroupsMarketInfo.js +5 -0
- package/dist/objects/groups/GroupsMarketState.js +5 -0
- package/dist/objects/groups/GroupsMemberRole.js +5 -0
- package/dist/objects/groups/GroupsMemberRolePermission.js +5 -0
- package/dist/objects/groups/GroupsMemberRoleStatus.js +5 -0
- package/dist/objects/groups/GroupsMemberStatus.js +5 -0
- package/dist/objects/groups/GroupsMemberStatusFull.js +5 -0
- package/dist/objects/groups/GroupsOnlineStatus.js +5 -0
- package/dist/objects/groups/GroupsOnlineStatusType.js +5 -0
- package/dist/objects/groups/GroupsOwnerXtrBanInfo.js +5 -0
- package/dist/objects/groups/GroupsPhotoSize.js +5 -0
- package/dist/objects/groups/GroupsProfileItem.js +5 -0
- package/dist/objects/groups/GroupsRoleOptions.js +5 -0
- package/dist/objects/groups/GroupsSectionsListItem.js +5 -0
- package/dist/objects/groups/GroupsSettingsTwitter.js +5 -0
- package/dist/objects/groups/GroupsSubjectItem.js +5 -0
- package/dist/objects/groups/GroupsTokenPermissionSetting.js +5 -0
- package/dist/objects/groups/GroupsUserXtrRole.js +5 -0
- package/dist/objects/leadForms/LeadFormsAnswer.js +5 -0
- package/dist/objects/leadForms/LeadFormsAnswerItem.js +5 -0
- package/dist/objects/leadForms/LeadFormsForm.js +5 -0
- package/dist/objects/leadForms/LeadFormsLead.js +5 -0
- package/dist/objects/leadForms/LeadFormsQuestionItem.js +5 -0
- package/dist/objects/leadForms/LeadFormsQuestionItemOption.js +5 -0
- package/dist/objects/likes/LikesType.js +5 -0
- package/dist/objects/link/LinkTargetObject.js +5 -0
- package/dist/objects/market/MarketCurrency.js +5 -0
- package/dist/objects/market/MarketGlobalSearchFilters.js +5 -0
- package/dist/objects/market/MarketItemOwnerInfo.js +5 -0
- package/dist/objects/market/MarketItemPromotionInfo.js +5 -0
- package/dist/objects/market/MarketMarketAlbum.js +11 -0
- package/dist/objects/market/MarketMarketCategory.js +5 -0
- package/dist/objects/market/MarketMarketCategoryNested.js +5 -0
- package/dist/objects/market/MarketMarketCategoryTree.js +5 -0
- package/dist/objects/market/MarketMarketCategoryTreeView.js +5 -0
- package/dist/objects/market/MarketMarketItem.js +5 -0
- package/dist/objects/market/MarketMarketItemAvailability.js +12 -0
- package/dist/objects/market/MarketMarketItemBasicWithGroup.js +5 -0
- package/dist/objects/market/MarketMarketItemFull.js +5 -0
- package/dist/objects/market/MarketOrder.js +5 -0
- package/dist/objects/market/MarketOrderItem.js +5 -0
- package/dist/objects/market/MarketOwnerType.js +5 -0
- package/dist/objects/market/MarketPrice.js +19 -0
- package/dist/objects/market/MarketProperty.js +5 -0
- package/dist/objects/market/MarketPropertyVariant.js +5 -0
- package/dist/objects/market/MarketServicesViewType.js +11 -0
- package/dist/objects/market/MarketUploadPhotoData.js +5 -0
- package/dist/objects/messages/MessagesActionOneOf.js +5 -0
- package/dist/objects/messages/MessagesAudioMessage.js +5 -0
- package/dist/objects/messages/MessagesChat.js +5 -0
- package/dist/objects/messages/MessagesChatFull.js +5 -0
- package/dist/objects/messages/MessagesChatPreview.js +5 -0
- package/dist/objects/messages/MessagesChatPushSettings.js +5 -0
- package/dist/objects/messages/MessagesChatRestrictions.js +5 -0
- package/dist/objects/messages/MessagesChatSettings.js +5 -0
- package/dist/objects/messages/MessagesChatSettingsAcl.js +5 -0
- package/dist/objects/messages/MessagesChatSettingsPermissions.js +5 -0
- package/dist/objects/messages/MessagesChatSettingsPhoto.js +5 -0
- package/dist/objects/messages/MessagesChatSettingsState.js +5 -0
- package/dist/objects/messages/MessagesConversation.js +5 -0
- package/dist/objects/messages/MessagesConversationCanWrite.js +5 -0
- package/dist/objects/messages/MessagesConversationMember.js +5 -0
- package/dist/objects/messages/MessagesConversationPeer.js +5 -0
- package/dist/objects/messages/MessagesConversationPeerType.js +5 -0
- package/dist/objects/messages/MessagesConversationSortId.js +5 -0
- package/dist/objects/messages/MessagesConversationWithMessage.js +5 -0
- package/dist/objects/messages/MessagesDeleteFullResponseItem.js +5 -0
- package/dist/objects/messages/MessagesForeignMessage.js +5 -0
- package/dist/objects/messages/MessagesForward.js +5 -0
- package/dist/objects/messages/MessagesFwdMessages.js +5 -0
- package/dist/objects/messages/MessagesGetConversationById.js +5 -0
- package/dist/objects/messages/MessagesGetConversationByIdExtended.js +5 -0
- package/dist/objects/messages/MessagesGetConversationMembers.js +5 -0
- package/dist/objects/messages/MessagesGetInviteLinkByOwnerResponseItem.js +5 -0
- package/dist/objects/messages/MessagesGraffiti.js +5 -0
- package/dist/objects/messages/MessagesHistoryAttachment.js +5 -0
- package/dist/objects/messages/MessagesHistoryMessageAttachment.js +5 -0
- package/dist/objects/messages/MessagesHistoryMessageAttachmentType.js +5 -0
- package/dist/objects/messages/MessagesKeyboard.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButton.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionCallback.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionLocation.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionOpenApp.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionOpenLink.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionOpenPhoto.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionText.js +5 -0
- package/dist/objects/messages/MessagesKeyboardButtonActionVkpay.js +5 -0
- package/dist/objects/messages/MessagesLastActivity.js +5 -0
- package/dist/objects/messages/MessagesLongpollMessages.js +5 -0
- package/dist/objects/messages/MessagesLongpollParams.js +5 -0
- package/dist/objects/messages/MessagesMessage.js +5 -0
- package/dist/objects/messages/MessagesMessageAction.js +5 -0
- package/dist/objects/messages/MessagesMessageActionPhoto.js +5 -0
- package/dist/objects/messages/MessagesMessageActionStatus.js +5 -0
- package/dist/objects/messages/MessagesMessageAttachment.js +5 -0
- package/dist/objects/messages/MessagesMessageAttachmentType.js +5 -0
- package/dist/objects/messages/MessagesMessageRequestData.js +5 -0
- package/dist/objects/messages/MessagesMessagesArray.js +5 -0
- package/dist/objects/messages/MessagesOutReadBy.js +5 -0
- package/dist/objects/messages/MessagesPinnedMessage.js +5 -0
- package/dist/objects/messages/MessagesPushSettings.js +5 -0
- package/dist/objects/messages/MessagesReactionAssetItem.js +5 -0
- package/dist/objects/messages/MessagesReactionAssetItemLinks.js +5 -0
- package/dist/objects/messages/MessagesReactionCounterResponseItem.js +5 -0
- package/dist/objects/messages/MessagesReactionCountersResponseItem.js +5 -0
- package/dist/objects/messages/MessagesReactionResponseItem.js +5 -0
- package/dist/objects/messages/MessagesSendUserIdsResponseItem.js +5 -0
- package/dist/objects/messages/MessagesUserXtrInvitedBy.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsBase.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsFilters.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItem.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypeMarket.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypeNotes.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypePhoto.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypePost.js +21 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypeTopic.js +5 -0
- package/dist/objects/newsfeed/NewsfeedCommentsItemTypeVideo.js +5 -0
- package/dist/objects/newsfeed/NewsfeedIgnoreItemType.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemAudio.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemAudioAudio.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigest.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigestButton.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigestFooter.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigestFullItem.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigestHeader.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemDigestItem.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemFriend.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemFriendFriends.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPhoto.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPhotoPhotos.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPhotoTag.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPhotoTagPhotoTags.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPromoButton.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPromoButtonAction.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemPromoButtonImage.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemTopic.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemVideo.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemVideoVideo.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemWallpost.js +21 -0
- package/dist/objects/newsfeed/NewsfeedItemWallpostFeedback.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemWallpostFeedbackAnswer.js +5 -0
- package/dist/objects/newsfeed/NewsfeedItemWallpostFeedbackType.js +5 -0
- package/dist/objects/newsfeed/NewsfeedList.js +5 -0
- package/dist/objects/newsfeed/NewsfeedListFull.js +5 -0
- package/dist/objects/newsfeed/NewsfeedNewsfeedItem.js +5 -0
- package/dist/objects/newsfeed/NewsfeedNewsfeedItemType.js +5 -0
- package/dist/objects/notes/NotesNote.js +5 -0
- package/dist/objects/notes/NotesNoteComment.js +5 -0
- package/dist/objects/notifications/NotificationsFeedback.js +5 -0
- package/dist/objects/notifications/NotificationsNotification.js +5 -0
- package/dist/objects/notifications/NotificationsNotificationItem.js +5 -0
- package/dist/objects/notifications/NotificationsReply.js +5 -0
- package/dist/objects/notifications/NotificationsSendMessageError.js +13 -0
- package/dist/objects/notifications/NotificationsSendMessageItem.js +5 -0
- package/dist/objects/orders/OrdersAmount.js +5 -0
- package/dist/objects/orders/OrdersAmountItem.js +5 -0
- package/dist/objects/orders/OrdersOrder.js +5 -0
- package/dist/objects/orders/OrdersSubscription.js +5 -0
- package/dist/objects/owner/OwnerState.js +14 -0
- package/dist/objects/pages/PagesPrivacySettings.js +12 -0
- package/dist/objects/pages/PagesWikipage.js +5 -0
- package/dist/objects/pages/PagesWikipageFull.js +5 -0
- package/dist/objects/pages/PagesWikipageHistory.js +5 -0
- package/dist/objects/photos/PhotosImage.js +5 -0
- package/dist/objects/photos/PhotosImageType.js +5 -0
- package/dist/objects/photos/PhotosPhoto.js +5 -0
- package/dist/objects/photos/PhotosPhotoAlbum.js +5 -0
- package/dist/objects/photos/PhotosPhotoAlbumFull.js +5 -0
- package/dist/objects/photos/PhotosPhotoSizes.js +5 -0
- package/dist/objects/photos/PhotosPhotoSizesType.js +5 -0
- package/dist/objects/photos/PhotosPhotoTag.js +5 -0
- package/dist/objects/photos/PhotosPhotoUpload.js +5 -0
- package/dist/objects/photos/PhotosPhotoXtrTagInfo.js +5 -0
- package/dist/objects/podcast/PodcastCover.js +5 -0
- package/dist/objects/podcast/PodcastExternalData.js +5 -0
- package/dist/objects/polls/PollsAnswer.js +5 -0
- package/dist/objects/polls/PollsBackground.js +5 -0
- package/dist/objects/polls/PollsFieldsVoters.js +5 -0
- package/dist/objects/polls/PollsFriend.js +5 -0
- package/dist/objects/polls/PollsPoll.js +5 -0
- package/dist/objects/polls/PollsPollExtended.js +5 -0
- package/dist/objects/polls/PollsVoters.js +5 -0
- package/dist/objects/polls/PollsVotersFieldsUsers.js +5 -0
- package/dist/objects/polls/PollsVotersUsers.js +5 -0
- package/dist/objects/prettyCards/PrettyCardsPrettyCard.js +5 -0
- package/dist/objects/prettyCards/PrettyCardsPrettyCardOrError.js +5 -0
- package/dist/objects/search/SearchHint.js +5 -0
- package/dist/objects/search/SearchHintSection.js +5 -0
- package/dist/objects/search/SearchHintType.js +5 -0
- package/dist/objects/secure/SecureGiveEventStickerItem.js +5 -0
- package/dist/objects/secure/SecureLevel.js +5 -0
- package/dist/objects/secure/SecureSetCounterItem.js +5 -0
- package/dist/objects/secure/SecureSmsNotification.js +5 -0
- package/dist/objects/secure/SecureTokenChecked.js +5 -0
- package/dist/objects/secure/SecureTransaction.js +5 -0
- package/dist/objects/stats/StatsActivity.js +5 -0
- package/dist/objects/stats/StatsCity.js +5 -0
- package/dist/objects/stats/StatsCountry.js +5 -0
- package/dist/objects/stats/StatsPeriod.js +5 -0
- package/dist/objects/stats/StatsReach.js +5 -0
- package/dist/objects/stats/StatsSexAge.js +5 -0
- package/dist/objects/stats/StatsViews.js +5 -0
- package/dist/objects/stats/StatsWallpostStat.js +5 -0
- package/dist/objects/status/StatusStatus.js +5 -0
- package/dist/objects/stickers/StickersImageSet.js +5 -0
- package/dist/objects/storage/StorageValue.js +5 -0
- package/dist/objects/store/StoreProduct.js +5 -0
- package/dist/objects/store/StoreProductIcon.js +5 -0
- package/dist/objects/store/StoreStickersKeyword.js +5 -0
- package/dist/objects/store/StoreStickersKeywordSticker.js +5 -0
- package/dist/objects/stories/StoriesClickableArea.js +5 -0
- package/dist/objects/stories/StoriesClickableSticker.js +5 -0
- package/dist/objects/stories/StoriesClickableStickers.js +5 -0
- package/dist/objects/stories/StoriesFeedItem.js +5 -0
- package/dist/objects/stories/StoriesPromoBlock.js +5 -0
- package/dist/objects/stories/StoriesReplies.js +5 -0
- package/dist/objects/stories/StoriesStory.js +5 -0
- package/dist/objects/stories/StoriesStoryLink.js +5 -0
- package/dist/objects/stories/StoriesStoryStats.js +5 -0
- package/dist/objects/stories/StoriesStoryStatsStat.js +5 -0
- package/dist/objects/stories/StoriesStoryStatsState.js +5 -0
- package/dist/objects/stories/StoriesStoryType.js +5 -0
- package/dist/objects/stories/StoriesUploadLinkText.js +5 -0
- package/dist/objects/stories/StoriesUploadResult.js +5 -0
- package/dist/objects/stories/StoriesViewersItem.js +5 -0
- package/dist/objects/streaming/StreamingStats.js +5 -0
- package/dist/objects/streaming/StreamingStatsPoint.js +5 -0
- package/dist/objects/users/UsersCareer.js +5 -0
- package/dist/objects/users/UsersExports.js +5 -0
- package/dist/objects/users/UsersFields.js +5 -0
- package/dist/objects/users/UsersLastSeen.js +5 -0
- package/dist/objects/users/UsersMilitary.js +5 -0
- package/dist/objects/users/UsersOccupation.js +5 -0
- package/dist/objects/users/UsersOnlineInfo.js +5 -0
- package/dist/objects/users/UsersPersonal.js +5 -0
- package/dist/objects/users/UsersRelative.js +5 -0
- package/dist/objects/users/UsersSchool.js +5 -0
- package/dist/objects/users/UsersSubscriptionsItem.js +5 -0
- package/dist/objects/users/UsersUniversity.js +5 -0
- package/dist/objects/users/UsersUser.js +5 -0
- package/dist/objects/users/UsersUserConnections.js +5 -0
- package/dist/objects/users/UsersUserCounters.js +5 -0
- package/dist/objects/users/UsersUserFull.js +5 -0
- package/dist/objects/users/UsersUserMin.js +5 -0
- package/dist/objects/users/UsersUserRelation.js +18 -0
- package/dist/objects/users/UsersUserType.js +5 -0
- package/dist/objects/users/UsersUsersArray.js +5 -0
- package/dist/objects/utils/UtilsDomainResolved.js +5 -0
- package/dist/objects/utils/UtilsDomainResolvedType.js +5 -0
- package/dist/objects/utils/UtilsLastShortenedLink.js +5 -0
- package/dist/objects/utils/UtilsLinkChecked.js +5 -0
- package/dist/objects/utils/UtilsLinkCheckedStatus.js +5 -0
- package/dist/objects/utils/UtilsLinkStats.js +5 -0
- package/dist/objects/utils/UtilsLinkStatsExtended.js +5 -0
- package/dist/objects/utils/UtilsShortLink.js +5 -0
- package/dist/objects/utils/UtilsStats.js +5 -0
- package/dist/objects/utils/UtilsStatsCity.js +5 -0
- package/dist/objects/utils/UtilsStatsCountry.js +5 -0
- package/dist/objects/utils/UtilsStatsExtended.js +5 -0
- package/dist/objects/utils/UtilsStatsSexAge.js +5 -0
- package/dist/objects/video/VideoEpisode.js +5 -0
- package/dist/objects/video/VideoLiveCategory.js +5 -0
- package/dist/objects/video/VideoLiveInfo.js +5 -0
- package/dist/objects/video/VideoLiveSettings.js +5 -0
- package/dist/objects/video/VideoPlaylistPrivacyCategory.js +5 -0
- package/dist/objects/video/VideoSaveResult.js +5 -0
- package/dist/objects/video/VideoStreamInputParams.js +5 -0
- package/dist/objects/video/VideoVideo.js +5 -0
- package/dist/objects/video/VideoVideoAlbum.js +5 -0
- package/dist/objects/video/VideoVideoAlbumFull.js +5 -0
- package/dist/objects/video/VideoVideoFiles.js +5 -0
- package/dist/objects/video/VideoVideoFull.js +5 -0
- package/dist/objects/video/VideoVideoImage.js +5 -0
- package/dist/objects/wall/WallAppPost.js +5 -0
- package/dist/objects/wall/WallAttachedNote.js +5 -0
- package/dist/objects/wall/WallCommentAttachment.js +5 -0
- package/dist/objects/wall/WallCommentAttachmentType.js +5 -0
- package/dist/objects/wall/WallGeo.js +5 -0
- package/dist/objects/wall/WallGetFilter.js +5 -0
- package/dist/objects/wall/WallGraffiti.js +5 -0
- package/dist/objects/wall/WallPostCopyright.js +5 -0
- package/dist/objects/wall/WallPostSource.js +5 -0
- package/dist/objects/wall/WallPostSourceType.js +5 -0
- package/dist/objects/wall/WallPostType.js +5 -0
- package/dist/objects/wall/WallPostedPhoto.js +5 -0
- package/dist/objects/wall/WallViews.js +5 -0
- package/dist/objects/wall/WallWallComment.js +5 -0
- package/dist/objects/wall/WallWallCommentDonut.js +5 -0
- package/dist/objects/wall/WallWallCommentDonutPlaceholder.js +5 -0
- package/dist/objects/wall/WallWallItem.js +5 -0
- package/dist/objects/wall/WallWallpostAttachment.js +5 -0
- package/dist/objects/wall/WallWallpostAttachmentType.js +5 -0
- package/dist/objects/wall/WallWallpostCommentsDonut.js +5 -0
- package/dist/objects/wall/WallWallpostCommentsDonutPlaceholder.js +5 -0
- package/dist/objects/wall/WallWallpostDonut.js +5 -0
- package/dist/objects/wall/WallWallpostDonutPlaceholder.js +5 -0
- package/dist/objects/wall/WallWallpostFull.js +21 -0
- package/dist/objects/widgets/WidgetsCommentMedia.js +5 -0
- package/dist/objects/widgets/WidgetsCommentMediaType.js +5 -0
- package/dist/objects/widgets/WidgetsCommentReplies.js +5 -0
- package/dist/objects/widgets/WidgetsCommentRepliesItem.js +5 -0
- package/dist/objects/widgets/WidgetsWidgetComment.js +5 -0
- package/dist/objects/widgets/WidgetsWidgetLikes.js +5 -0
- package/dist/objects/widgets/WidgetsWidgetPage.js +5 -0
- package/dist/types.js +2 -2
- package/dist/utils.js +10 -11
- package/package.json +10 -7
- package/src/constants.ts +1 -1
- package/src/generators/APITypingsGenerator.ts +164 -17
- package/src/generators/typeString.ts +7 -3
- package/src/generators/utils/mergeImports.ts +17 -0
|
@@ -31,6 +31,7 @@ import { consoleLogError, consoleLogErrorAndExit, consoleLogInfo } from '../log'
|
|
|
31
31
|
import { generateImportsBlock } from '../generator';
|
|
32
32
|
import { generateTypeString } from './typeString';
|
|
33
33
|
import { ErrorInterface } from '../types/schema';
|
|
34
|
+
import { mergeImports } from './utils/mergeImports';
|
|
34
35
|
|
|
35
36
|
interface APITypingsGeneratorOptions {
|
|
36
37
|
needEmit: boolean;
|
|
@@ -131,10 +132,7 @@ export class APITypingsGenerator {
|
|
|
131
132
|
};
|
|
132
133
|
|
|
133
134
|
this.methodFilesMap[section] = {
|
|
134
|
-
imports:
|
|
135
|
-
...methodFile.imports,
|
|
136
|
-
...imports,
|
|
137
|
-
},
|
|
135
|
+
imports: mergeImports(methodFile.imports, imports),
|
|
138
136
|
codeBlocks: [...methodFile.codeBlocks, ...codeBlocks],
|
|
139
137
|
};
|
|
140
138
|
}
|
|
@@ -253,7 +251,7 @@ export class APITypingsGenerator {
|
|
|
253
251
|
objectParentName: object.name,
|
|
254
252
|
});
|
|
255
253
|
|
|
256
|
-
imports =
|
|
254
|
+
imports = mergeImports(imports, newImports);
|
|
257
255
|
codeBlocks = [...codeBlocks, ...newCodeBlocks];
|
|
258
256
|
|
|
259
257
|
codeBlock.addProperty({
|
|
@@ -297,7 +295,7 @@ export class APITypingsGenerator {
|
|
|
297
295
|
|
|
298
296
|
let result: GeneratorResultInterface | false = false;
|
|
299
297
|
|
|
300
|
-
if (object.ref) {
|
|
298
|
+
if (object.ref && object.type === 'object') {
|
|
301
299
|
result = this.getPrimitiveInterfaceCode(object);
|
|
302
300
|
} else {
|
|
303
301
|
switch (object.type) {
|
|
@@ -384,14 +382,14 @@ export class APITypingsGenerator {
|
|
|
384
382
|
|
|
385
383
|
private generateMethodParams(methodInfo: SchemaObject) {
|
|
386
384
|
const section = getMethodSection(methodInfo.name);
|
|
387
|
-
const interfaceName = `${methodInfo.name} params
|
|
385
|
+
const interfaceName = getInterfaceName(`${methodInfo.name} params`);
|
|
388
386
|
|
|
389
387
|
let imports: RefsDictionary = {};
|
|
390
388
|
let codeBlocks: CodeBlocksArray = [];
|
|
391
389
|
|
|
392
390
|
const codeBlock = new TypeCodeBlock({
|
|
393
391
|
type: TypeScriptCodeTypes.Interface,
|
|
394
|
-
interfaceName:
|
|
392
|
+
interfaceName: interfaceName,
|
|
395
393
|
needExport: true,
|
|
396
394
|
allowEmptyInterface: true,
|
|
397
395
|
properties: [],
|
|
@@ -406,7 +404,7 @@ export class APITypingsGenerator {
|
|
|
406
404
|
needEnumNamesConstant: false,
|
|
407
405
|
});
|
|
408
406
|
|
|
409
|
-
imports =
|
|
407
|
+
imports = mergeImports(imports, newImports);
|
|
410
408
|
codeBlocks = [...codeBlocks, ...newCodeBlocks];
|
|
411
409
|
|
|
412
410
|
codeBlock.addProperty({
|
|
@@ -419,6 +417,8 @@ export class APITypingsGenerator {
|
|
|
419
417
|
|
|
420
418
|
this.appendToFileMap(section, imports, [...codeBlocks, codeBlock]);
|
|
421
419
|
this.generateObjectsFromImports(imports);
|
|
420
|
+
|
|
421
|
+
return interfaceName;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
424
|
private getResponseObjectRef(ref: string): SchemaObject | undefined {
|
|
@@ -545,7 +545,7 @@ export class APITypingsGenerator {
|
|
|
545
545
|
public generateResponse(section: string, response: SchemaObject) {
|
|
546
546
|
const result = this.getResponseCodeBlock(response);
|
|
547
547
|
if (!result) {
|
|
548
|
-
|
|
548
|
+
throw new Error('Unable to generate response');
|
|
549
549
|
}
|
|
550
550
|
|
|
551
551
|
const { codeBlocks, imports } = result;
|
|
@@ -580,16 +580,67 @@ export class APITypingsGenerator {
|
|
|
580
580
|
method = normalizedMethod;
|
|
581
581
|
this.generateObjectsFromRefs(parameterRefs);
|
|
582
582
|
|
|
583
|
-
this.generateMethodParams(
|
|
583
|
+
const methodParamsInterfaceName = this.generateMethodParams(
|
|
584
|
+
new SchemaObject(method.name, method),
|
|
585
|
+
);
|
|
584
586
|
|
|
585
|
-
Object.entries(method.responses)
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
587
|
+
const methodResponsesInterfaceName = Object.entries(method.responses)
|
|
588
|
+
.map(([responseName, responseObject]) => {
|
|
589
|
+
if (this.ignoredResponses[methodName] && this.ignoredResponses[methodName][responseName]) {
|
|
590
|
+
return;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
const name = `${methodName}_${responseName}`;
|
|
594
|
+
const interfaceName = getInterfaceName(name);
|
|
595
|
+
try {
|
|
596
|
+
this.generateResponse(section, new SchemaObject(name, responseObject));
|
|
597
|
+
return interfaceName;
|
|
598
|
+
} catch (e) {
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
})
|
|
602
|
+
.filter(Boolean) as string[];
|
|
603
|
+
|
|
604
|
+
this.generateMethodType(methodName, methodParamsInterfaceName, methodResponsesInterfaceName);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
private generateMethodType(
|
|
608
|
+
methodName: string,
|
|
609
|
+
methodParamsInterfaceName: string,
|
|
610
|
+
methodResponsesInterfaceName: string[],
|
|
611
|
+
) {
|
|
612
|
+
const codeBlock = new TypeCodeBlock({
|
|
613
|
+
type: TypeScriptCodeTypes.Interface,
|
|
614
|
+
interfaceName: getInterfaceName(`${methodName} method`),
|
|
615
|
+
needExport: true,
|
|
616
|
+
allowEmptyInterface: true,
|
|
617
|
+
properties: [],
|
|
618
|
+
});
|
|
589
619
|
|
|
590
|
-
|
|
591
|
-
|
|
620
|
+
codeBlock.addProperty({
|
|
621
|
+
name: 'method',
|
|
622
|
+
value: methodName,
|
|
623
|
+
isRequired: true,
|
|
624
|
+
wrapValue: true,
|
|
592
625
|
});
|
|
626
|
+
|
|
627
|
+
codeBlock.addProperty({
|
|
628
|
+
name: 'request',
|
|
629
|
+
value: methodParamsInterfaceName,
|
|
630
|
+
isRequired: true,
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
codeBlock.addProperty({
|
|
634
|
+
name: 'response',
|
|
635
|
+
value:
|
|
636
|
+
methodResponsesInterfaceName.length > 0
|
|
637
|
+
? methodResponsesInterfaceName.join(' | ')
|
|
638
|
+
: 'unknown',
|
|
639
|
+
isRequired: true,
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
const section = getMethodSection(methodName);
|
|
643
|
+
this.appendToFileMap(section, {}, [codeBlock]);
|
|
593
644
|
}
|
|
594
645
|
|
|
595
646
|
private generateMethods() {
|
|
@@ -603,11 +654,38 @@ export class APITypingsGenerator {
|
|
|
603
654
|
|
|
604
655
|
Object.keys(this.methodFilesMap).forEach((section) => {
|
|
605
656
|
const { imports, codeBlocks } = this.methodFilesMap[section];
|
|
657
|
+
const methodNames: string[] = [];
|
|
606
658
|
codeBlocks.forEach((codeBlock) => {
|
|
607
659
|
if (codeBlock instanceof TypeCodeBlock && codeBlock.needExport && codeBlock.interfaceName) {
|
|
660
|
+
/**
|
|
661
|
+
* for interfaceName structure
|
|
662
|
+
* @see this.generateMethodType
|
|
663
|
+
*/
|
|
664
|
+
if (codeBlock.interfaceName.endsWith('Method')) {
|
|
665
|
+
methodNames.push(codeBlock.interfaceName);
|
|
666
|
+
// Skip export as it will be exported in union type
|
|
667
|
+
return;
|
|
668
|
+
}
|
|
669
|
+
|
|
608
670
|
this.registerExport(`./methods/${section}`, codeBlock.interfaceName);
|
|
609
671
|
}
|
|
610
672
|
});
|
|
673
|
+
|
|
674
|
+
if (methodNames.length > 0) {
|
|
675
|
+
const sectionMethodsCodeBlock = new TypeCodeBlock({
|
|
676
|
+
type: TypeScriptCodeTypes.Type,
|
|
677
|
+
interfaceName: getInterfaceName(`${section} methods union`),
|
|
678
|
+
needExport: true,
|
|
679
|
+
allowEmptyInterface: true,
|
|
680
|
+
value: methodNames.join(' | '),
|
|
681
|
+
properties: [],
|
|
682
|
+
});
|
|
683
|
+
|
|
684
|
+
codeBlocks.push(sectionMethodsCodeBlock);
|
|
685
|
+
|
|
686
|
+
this.registerExport(`./methods/${section}`, sectionMethodsCodeBlock.interfaceName);
|
|
687
|
+
}
|
|
688
|
+
|
|
611
689
|
const code = [generateImportsBlock(imports, null), ...codeBlocks];
|
|
612
690
|
|
|
613
691
|
this.registerResultFile(
|
|
@@ -687,8 +765,23 @@ export class APITypingsGenerator {
|
|
|
687
765
|
}).toString(),
|
|
688
766
|
);
|
|
689
767
|
|
|
768
|
+
code.push(`
|
|
769
|
+
type MethodOf<M> = M extends { method: string } ? M['method'] : never;
|
|
770
|
+
type RequestOf<M> = M extends { request: unknown } ? M['request'] : never;
|
|
771
|
+
type ResponseOf<M> = M extends { response: unknown } ? M['response'] : never;
|
|
772
|
+
|
|
773
|
+
export type CreateMethodMap<Type extends { method: string }> = {
|
|
774
|
+
[Property in Type as Property['method']]: {
|
|
775
|
+
method: MethodOf<Property>;
|
|
776
|
+
request: RequestOf<Property>;
|
|
777
|
+
response: ResponseOf<Property>;
|
|
778
|
+
};
|
|
779
|
+
};
|
|
780
|
+
`);
|
|
781
|
+
|
|
690
782
|
this.registerExport('./common/common', 'API_VERSION');
|
|
691
783
|
this.registerExport('./common/common', getInterfaceName(baseAPIParamsInterfaceName));
|
|
784
|
+
this.registerExport('./common/common', 'CreateMethodMap');
|
|
692
785
|
this.registerResultFile(path.join('common', 'common.ts'), code.join(newLineChar.repeat(2)));
|
|
693
786
|
}
|
|
694
787
|
|
|
@@ -700,6 +793,60 @@ export class APITypingsGenerator {
|
|
|
700
793
|
|
|
701
794
|
const blocks: string[] = [];
|
|
702
795
|
let exportedObjects: Dictionary<boolean> = {};
|
|
796
|
+
let methodNames = new Set<string>();
|
|
797
|
+
|
|
798
|
+
sortArrayAlphabetically(Object.keys(this.exports)).forEach((path) => {
|
|
799
|
+
if (!path.startsWith('./methods/')) {
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
const objects = Object.keys(this.exports[path]);
|
|
804
|
+
if (!objects.length) {
|
|
805
|
+
return;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
const blockLines: string[] = [];
|
|
809
|
+
|
|
810
|
+
sortArrayAlphabetically(objects).forEach((object) => {
|
|
811
|
+
/**
|
|
812
|
+
* for interfaceName structure
|
|
813
|
+
* @see this.generateMethods
|
|
814
|
+
*/
|
|
815
|
+
if (!methodNames.has(object) && /^[A-Z][a-zA-Z0-9]*MethodsUnion$/.test(object)) {
|
|
816
|
+
methodNames.add(object);
|
|
817
|
+
exportedObjects[object] = true; // To skip in export block
|
|
818
|
+
blockLines.push(` ${object},`);
|
|
819
|
+
}
|
|
820
|
+
});
|
|
821
|
+
|
|
822
|
+
if (blockLines.length > 0) {
|
|
823
|
+
blockLines.unshift('import type {');
|
|
824
|
+
blockLines.push(`} from '${path.replace('.ts', '')}';`);
|
|
825
|
+
|
|
826
|
+
blocks.push(blockLines.join(newLineChar));
|
|
827
|
+
}
|
|
828
|
+
});
|
|
829
|
+
|
|
830
|
+
blocks.push("import type { CreateMethodMap } from './common/common';");
|
|
831
|
+
|
|
832
|
+
const methodsCodeBlock = new TypeCodeBlock({
|
|
833
|
+
type: TypeScriptCodeTypes.Type,
|
|
834
|
+
interfaceName: 'ApiMethodsUnion',
|
|
835
|
+
needExport: false,
|
|
836
|
+
properties: [],
|
|
837
|
+
value: Array.from(methodNames).join(' | '),
|
|
838
|
+
});
|
|
839
|
+
blocks.push(methodsCodeBlock.toString());
|
|
840
|
+
|
|
841
|
+
blocks.push(
|
|
842
|
+
new TypeCodeBlock({
|
|
843
|
+
type: TypeScriptCodeTypes.Type,
|
|
844
|
+
interfaceName: 'ApiMethodsMap',
|
|
845
|
+
needExport: true,
|
|
846
|
+
properties: [],
|
|
847
|
+
value: `CreateMethodMap<${methodsCodeBlock.interfaceName}>`,
|
|
848
|
+
}).toString(),
|
|
849
|
+
);
|
|
703
850
|
|
|
704
851
|
sortArrayAlphabetically(Object.keys(this.exports)).forEach((path) => {
|
|
705
852
|
const objects = Object.keys(this.exports[path]);
|
|
@@ -19,6 +19,7 @@ import { Dictionary, RefsDictionary, RefsDictionaryType } from '../types';
|
|
|
19
19
|
import { isString } from '../utils';
|
|
20
20
|
import { CodeBlocksArray, GeneratorResultInterface } from './BaseCodeBlock';
|
|
21
21
|
import { SchemaObject } from './SchemaObject';
|
|
22
|
+
import { mergeImports } from './utils/mergeImports';
|
|
22
23
|
|
|
23
24
|
interface GenerateTypeStringOptions {
|
|
24
25
|
objectParentName?: string;
|
|
@@ -92,7 +93,7 @@ export function generateTypeString(
|
|
|
92
93
|
if (object.oneOf) {
|
|
93
94
|
const values = object.oneOf.map((oneOfObject) => {
|
|
94
95
|
const { value, imports: newImports } = generateTypeString(oneOfObject, objects);
|
|
95
|
-
imports =
|
|
96
|
+
imports = mergeImports(imports, newImports);
|
|
96
97
|
return value;
|
|
97
98
|
});
|
|
98
99
|
|
|
@@ -134,7 +135,7 @@ export function generateTypeString(
|
|
|
134
135
|
|
|
135
136
|
typeString = formatArrayDepth(value, depth);
|
|
136
137
|
description = newDescription;
|
|
137
|
-
imports =
|
|
138
|
+
imports = mergeImports(imports, newImports);
|
|
138
139
|
codeBlocks = [...codeBlocks, ...newCodeBlocks];
|
|
139
140
|
}
|
|
140
141
|
} else if (object.ref) {
|
|
@@ -162,13 +163,16 @@ export function generateTypeString(
|
|
|
162
163
|
} else if (refObject.oneOf) {
|
|
163
164
|
const values = refObject.oneOf.map((oneOfObject) => {
|
|
164
165
|
const { value, imports: newImports } = generateTypeString(oneOfObject, objects);
|
|
165
|
-
imports =
|
|
166
|
+
imports = mergeImports(imports, newImports);
|
|
166
167
|
return value;
|
|
167
168
|
});
|
|
168
169
|
|
|
169
170
|
typeString = joinOneOfValues(values);
|
|
170
171
|
} else if (isString(refObject.type) && scalarTypes[refObject.type] && !refObject.ref) {
|
|
171
172
|
typeString = scalarTypes[refObject.type];
|
|
173
|
+
} else if (object.type === PropertyType.STRING) {
|
|
174
|
+
imports[refName] = RefsDictionaryType.Generate;
|
|
175
|
+
typeString = scalarTypes.string;
|
|
172
176
|
} else {
|
|
173
177
|
imports[refName] = RefsDictionaryType.GenerateAndImport;
|
|
174
178
|
typeString = getInterfaceName(refName);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RefsDictionary, RefsDictionaryType } from '../../types';
|
|
2
|
+
|
|
3
|
+
export function mergeImports(oldImports: RefsDictionary, newImports: RefsDictionary) {
|
|
4
|
+
const result = { ...oldImports };
|
|
5
|
+
|
|
6
|
+
Object.entries(newImports).forEach(([name, newImportValue]) => {
|
|
7
|
+
const oldImportValue = oldImports[name];
|
|
8
|
+
|
|
9
|
+
if (oldImportValue === RefsDictionaryType.GenerateAndImport) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
result[name] = newImportValue;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return result;
|
|
17
|
+
}
|