@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
package/dist/constants.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.baseAPIParamsInterfaceName = exports.basePropertyExistsRef = exports.baseOkResponseRef = exports.baseBoolIntRef = exports.newLineChar = exports.tabChar = exports.spaceChar = exports.primitiveTypes = exports.scalarTypes = exports.PropertyType = exports.DEFAULT_API_VERSION = void 0;
|
|
4
4
|
const os_1 = require("os");
|
|
5
|
-
exports.DEFAULT_API_VERSION = '5.
|
|
5
|
+
exports.DEFAULT_API_VERSION = '5.131';
|
|
6
6
|
exports.PropertyType = {
|
|
7
7
|
INTEGER: 'integer',
|
|
8
8
|
BOOLEAN: 'boolean',
|
package/dist/generator.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateImportsBlock =
|
|
3
|
+
exports.generateImportsBlock = generateImportsBlock;
|
|
4
4
|
const constants_1 = require("./constants");
|
|
5
5
|
const helpers_1 = require("./helpers");
|
|
6
6
|
const types_1 = require("./types");
|
|
@@ -9,11 +9,11 @@ function generateImportsBlock(refs, section, type) {
|
|
|
9
9
|
let importRefs = Object.entries(refs)
|
|
10
10
|
.filter(([, type]) => type === types_1.RefsDictionaryType.GenerateAndImport)
|
|
11
11
|
.map(([key]) => key);
|
|
12
|
-
importRefs = utils_1.uniqueArray(importRefs);
|
|
12
|
+
importRefs = (0, utils_1.uniqueArray)(importRefs);
|
|
13
13
|
const paths = {};
|
|
14
14
|
importRefs.forEach((objectName) => {
|
|
15
|
-
const importSection = helpers_1.getSectionFromObjectName(objectName);
|
|
16
|
-
const interfaceName = helpers_1.getInterfaceName(objectName);
|
|
15
|
+
const importSection = (0, helpers_1.getSectionFromObjectName)(objectName);
|
|
16
|
+
const interfaceName = (0, helpers_1.getInterfaceName)(objectName);
|
|
17
17
|
let path;
|
|
18
18
|
if (type === types_1.ObjectType.Object) {
|
|
19
19
|
if (section === importSection) {
|
|
@@ -32,10 +32,9 @@ function generateImportsBlock(refs, section, type) {
|
|
|
32
32
|
paths[path].push(interfaceName);
|
|
33
33
|
});
|
|
34
34
|
const importLines = [];
|
|
35
|
-
utils_1.sortArrayAlphabetically(Object.keys(paths)).forEach((path) => {
|
|
36
|
-
const interfaces = utils_1.sortArrayAlphabetically(paths[path]).join(', ');
|
|
35
|
+
(0, utils_1.sortArrayAlphabetically)(Object.keys(paths)).forEach((path) => {
|
|
36
|
+
const interfaces = (0, utils_1.sortArrayAlphabetically)(paths[path]).join(', ');
|
|
37
37
|
importLines.push(`import { ${interfaces} } from '${path}';`);
|
|
38
38
|
});
|
|
39
39
|
return importLines.join(constants_1.newLineChar);
|
|
40
40
|
}
|
|
41
|
-
exports.generateImportsBlock = generateImportsBlock;
|
|
@@ -17,11 +17,12 @@ const CommentCodeBlock_1 = require("./CommentCodeBlock");
|
|
|
17
17
|
const log_1 = require("../log");
|
|
18
18
|
const generator_1 = require("../generator");
|
|
19
19
|
const typeString_1 = require("./typeString");
|
|
20
|
+
const mergeImports_1 = require("./utils/mergeImports");
|
|
20
21
|
class APITypingsGenerator {
|
|
21
22
|
constructor(options) {
|
|
22
23
|
this.needEmit = options.needEmit;
|
|
23
24
|
this.outDirPath = options.outDirPath;
|
|
24
|
-
this.methodsPattern = helpers_1.prepareMethodsPattern(options.methodsPattern);
|
|
25
|
+
this.methodsPattern = (0, helpers_1.prepareMethodsPattern)(options.methodsPattern);
|
|
25
26
|
this.methodsDefinitions = options.methodsDefinitions;
|
|
26
27
|
this.methodsList = options.methodsDefinitions.methods || [];
|
|
27
28
|
this.objects = this.convertJSONSchemaDictionary(options.objects);
|
|
@@ -78,10 +79,7 @@ class APITypingsGenerator {
|
|
|
78
79
|
codeBlocks: [],
|
|
79
80
|
};
|
|
80
81
|
this.methodFilesMap[section] = {
|
|
81
|
-
imports:
|
|
82
|
-
...methodFile.imports,
|
|
83
|
-
...imports,
|
|
84
|
-
},
|
|
82
|
+
imports: (0, mergeImports_1.mergeImports)(methodFile.imports, imports),
|
|
85
83
|
codeBlocks: [...methodFile.codeBlocks, ...codeBlocks],
|
|
86
84
|
};
|
|
87
85
|
}
|
|
@@ -102,7 +100,7 @@ class APITypingsGenerator {
|
|
|
102
100
|
allOfItem = tempAllOfItem;
|
|
103
101
|
}
|
|
104
102
|
else {
|
|
105
|
-
log_1.consoleLogErrorAndExit(`${refName} ref not found`);
|
|
103
|
+
(0, log_1.consoleLogErrorAndExit)(`${refName} ref not found`);
|
|
106
104
|
}
|
|
107
105
|
}
|
|
108
106
|
if (allOfItem.allOf) {
|
|
@@ -118,7 +116,7 @@ class APITypingsGenerator {
|
|
|
118
116
|
let properties = object.properties || [];
|
|
119
117
|
if (object.allOf) {
|
|
120
118
|
this.collectAllOf(object).forEach((allOfItem) => {
|
|
121
|
-
object.required = utils_1.uniqueArray([...object.required, ...allOfItem.required]);
|
|
119
|
+
object.required = (0, utils_1.uniqueArray)([...object.required, ...allOfItem.required]);
|
|
122
120
|
let additionalProperties = [];
|
|
123
121
|
if (allOfItem.properties) {
|
|
124
122
|
additionalProperties = allOfItem.properties;
|
|
@@ -126,7 +124,7 @@ class APITypingsGenerator {
|
|
|
126
124
|
else if (allOfItem.ref) {
|
|
127
125
|
const refObject = this.getObjectByRef(allOfItem.ref);
|
|
128
126
|
if (!refObject) {
|
|
129
|
-
log_1.consoleLogErrorAndExit(`${object.name} ref object in allOf is not found`);
|
|
127
|
+
(0, log_1.consoleLogErrorAndExit)(`${object.name} ref object in allOf is not found`);
|
|
130
128
|
return;
|
|
131
129
|
}
|
|
132
130
|
additionalProperties = this.getObjectProperties(refObject, deep + 1);
|
|
@@ -166,7 +164,7 @@ class APITypingsGenerator {
|
|
|
166
164
|
const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
167
165
|
type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
|
|
168
166
|
refName: object.name,
|
|
169
|
-
interfaceName: helpers_1.getInterfaceName(object.name),
|
|
167
|
+
interfaceName: (0, helpers_1.getInterfaceName)(object.name),
|
|
170
168
|
needExport: true,
|
|
171
169
|
description: object.oneOf ? 'Object has oneOf' : '',
|
|
172
170
|
properties: [],
|
|
@@ -175,16 +173,16 @@ class APITypingsGenerator {
|
|
|
175
173
|
return this.getPrimitiveInterfaceCode(object);
|
|
176
174
|
}
|
|
177
175
|
properties.forEach((property) => {
|
|
178
|
-
const { imports: newImports, value, codeBlocks: newCodeBlocks, description, } = typeString_1.generateTypeString(property, this.objects, {
|
|
176
|
+
const { imports: newImports, value, codeBlocks: newCodeBlocks, description, } = (0, typeString_1.generateTypeString)(property, this.objects, {
|
|
179
177
|
objectParentName: object.name,
|
|
180
178
|
});
|
|
181
|
-
imports =
|
|
179
|
+
imports = (0, mergeImports_1.mergeImports)(imports, newImports);
|
|
182
180
|
codeBlocks = [...codeBlocks, ...newCodeBlocks];
|
|
183
181
|
codeBlock.addProperty({
|
|
184
182
|
name: property.name,
|
|
185
183
|
description: [property.description, description].join(constants_1.newLineChar),
|
|
186
184
|
value,
|
|
187
|
-
isRequired: helpers_1.isPatternProperty(property.name) || property.isRequired,
|
|
185
|
+
isRequired: (0, helpers_1.isPatternProperty)(property.name) || property.isRequired,
|
|
188
186
|
});
|
|
189
187
|
});
|
|
190
188
|
return {
|
|
@@ -198,7 +196,7 @@ class APITypingsGenerator {
|
|
|
198
196
|
return this.getObjectCodeBlockAsType(object);
|
|
199
197
|
}
|
|
200
198
|
if (object.enum) {
|
|
201
|
-
const { codeBlocks } = enums_1.generateEnumAsUnionType(object);
|
|
199
|
+
const { codeBlocks } = (0, enums_1.generateEnumAsUnionType)(object);
|
|
202
200
|
return {
|
|
203
201
|
codeBlocks: codeBlocks,
|
|
204
202
|
imports: {},
|
|
@@ -215,7 +213,7 @@ class APITypingsGenerator {
|
|
|
215
213
|
}
|
|
216
214
|
this.generatedObjects[object.name] = true;
|
|
217
215
|
let result = false;
|
|
218
|
-
if (object.ref) {
|
|
216
|
+
if (object.ref && object.type === 'object') {
|
|
219
217
|
result = this.getPrimitiveInterfaceCode(object);
|
|
220
218
|
}
|
|
221
219
|
else {
|
|
@@ -232,39 +230,39 @@ class APITypingsGenerator {
|
|
|
232
230
|
break;
|
|
233
231
|
default:
|
|
234
232
|
if (!result) {
|
|
235
|
-
log_1.consoleLogErrorAndExit(helpers_1.getInterfaceName(object.name), 'Unknown type of object', object);
|
|
233
|
+
(0, log_1.consoleLogErrorAndExit)((0, helpers_1.getInterfaceName)(object.name), 'Unknown type of object', object);
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
}
|
|
239
237
|
if (!result) {
|
|
240
|
-
log_1.consoleLogErrorAndExit('empty object result', object);
|
|
238
|
+
(0, log_1.consoleLogErrorAndExit)('empty object result', object);
|
|
241
239
|
return;
|
|
242
240
|
}
|
|
243
241
|
const { codeBlocks, imports } = result;
|
|
244
242
|
const stringCodeBlocks = codeBlocks.map((codeBlock) => codeBlock.toString());
|
|
245
|
-
const section = helpers_1.getSectionFromObjectName(object.name);
|
|
243
|
+
const section = (0, helpers_1.getSectionFromObjectName)(object.name);
|
|
246
244
|
delete imports[object.name];
|
|
247
|
-
stringCodeBlocks.unshift(generator_1.generateImportsBlock(imports, section, types_1.ObjectType.Object));
|
|
245
|
+
stringCodeBlocks.unshift((0, generator_1.generateImportsBlock)(imports, section, types_1.ObjectType.Object));
|
|
248
246
|
if (stringCodeBlocks.length > 0) {
|
|
249
247
|
const code = stringCodeBlocks.join(constants_1.newLineChar.repeat(2));
|
|
250
|
-
this.registerResultFile(path_1.default.join('objects', section, `${helpers_1.getInterfaceName(object.name)}.ts`), code);
|
|
248
|
+
this.registerResultFile(path_1.default.join('objects', section, `${(0, helpers_1.getInterfaceName)(object.name)}.ts`), code);
|
|
251
249
|
}
|
|
252
250
|
codeBlocks.forEach((codeBlock) => {
|
|
253
251
|
if (codeBlock instanceof TypeCodeBlock_1.TypeCodeBlock && codeBlock.needExport && codeBlock.interfaceName) {
|
|
254
|
-
this.registerExport(`./objects/${section}/${helpers_1.getInterfaceName(object.name)}.ts`, codeBlock.interfaceName);
|
|
252
|
+
this.registerExport(`./objects/${section}/${(0, helpers_1.getInterfaceName)(object.name)}.ts`, codeBlock.interfaceName);
|
|
255
253
|
}
|
|
256
254
|
});
|
|
257
255
|
this.generateObjectsFromImports(imports);
|
|
258
256
|
}
|
|
259
257
|
getObjectByRef(ref) {
|
|
260
|
-
const refName = helpers_1.getObjectNameByRef(ref);
|
|
258
|
+
const refName = (0, helpers_1.getObjectNameByRef)(ref);
|
|
261
259
|
return this.objects[refName];
|
|
262
260
|
}
|
|
263
261
|
generateObjectsFromRefs(refs) {
|
|
264
262
|
Object.keys(refs).forEach((ref) => {
|
|
265
263
|
const refObject = this.getObjectByRef(ref);
|
|
266
264
|
if (!refObject) {
|
|
267
|
-
log_1.consoleLogInfo(`"${ref}" ref is not found`);
|
|
265
|
+
(0, log_1.consoleLogInfo)(`"${ref}" ref is not found`);
|
|
268
266
|
return;
|
|
269
267
|
}
|
|
270
268
|
this.generateObject(refObject);
|
|
@@ -274,29 +272,29 @@ class APITypingsGenerator {
|
|
|
274
272
|
Object.keys(imports).forEach((ref) => {
|
|
275
273
|
const refObject = this.getObjectByRef(ref);
|
|
276
274
|
if (!refObject) {
|
|
277
|
-
log_1.consoleLogInfo(`"${ref}" ref is not found`);
|
|
275
|
+
(0, log_1.consoleLogInfo)(`"${ref}" ref is not found`);
|
|
278
276
|
return;
|
|
279
277
|
}
|
|
280
278
|
this.generateObject(refObject);
|
|
281
279
|
});
|
|
282
280
|
}
|
|
283
281
|
generateMethodParams(methodInfo) {
|
|
284
|
-
const section = helpers_1.getMethodSection(methodInfo.name);
|
|
285
|
-
const interfaceName = `${methodInfo.name} params
|
|
282
|
+
const section = (0, helpers_1.getMethodSection)(methodInfo.name);
|
|
283
|
+
const interfaceName = (0, helpers_1.getInterfaceName)(`${methodInfo.name} params`);
|
|
286
284
|
let imports = {};
|
|
287
285
|
let codeBlocks = [];
|
|
288
286
|
const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
289
287
|
type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
|
|
290
|
-
interfaceName:
|
|
288
|
+
interfaceName: interfaceName,
|
|
291
289
|
needExport: true,
|
|
292
290
|
allowEmptyInterface: true,
|
|
293
291
|
properties: [],
|
|
294
292
|
});
|
|
295
293
|
methodInfo.parameters.forEach((property) => {
|
|
296
|
-
const { imports: newImports, value, codeBlocks: newCodeBlocks, } = typeString_1.generateTypeString(property, this.objects, {
|
|
294
|
+
const { imports: newImports, value, codeBlocks: newCodeBlocks, } = (0, typeString_1.generateTypeString)(property, this.objects, {
|
|
297
295
|
needEnumNamesConstant: false,
|
|
298
296
|
});
|
|
299
|
-
imports =
|
|
297
|
+
imports = (0, mergeImports_1.mergeImports)(imports, newImports);
|
|
300
298
|
codeBlocks = [...codeBlocks, ...newCodeBlocks];
|
|
301
299
|
codeBlock.addProperty({
|
|
302
300
|
name: property.name,
|
|
@@ -307,9 +305,10 @@ class APITypingsGenerator {
|
|
|
307
305
|
});
|
|
308
306
|
this.appendToFileMap(section, imports, [...codeBlocks, codeBlock]);
|
|
309
307
|
this.generateObjectsFromImports(imports);
|
|
308
|
+
return interfaceName;
|
|
310
309
|
}
|
|
311
310
|
getResponseObjectRef(ref) {
|
|
312
|
-
const objectName = helpers_1.getObjectNameByRef(ref);
|
|
311
|
+
const objectName = (0, helpers_1.getObjectNameByRef)(ref);
|
|
313
312
|
if (this.responses[objectName]) {
|
|
314
313
|
return this.responses[objectName];
|
|
315
314
|
}
|
|
@@ -319,15 +318,15 @@ class APITypingsGenerator {
|
|
|
319
318
|
let codeBlocks = [];
|
|
320
319
|
let imports = {};
|
|
321
320
|
if (object.enum) {
|
|
322
|
-
const { codeBlocks: newCodeBlocks } = enums_1.generateEnumAsUnionType(object);
|
|
321
|
+
const { codeBlocks: newCodeBlocks } = (0, enums_1.generateEnumAsUnionType)(object);
|
|
323
322
|
codeBlocks = [...newCodeBlocks];
|
|
324
323
|
}
|
|
325
324
|
else {
|
|
326
|
-
const { imports: newImports, value, codeBlocks: newCodeBlocks, } = typeString_1.generateTypeString(object, this.objects);
|
|
325
|
+
const { imports: newImports, value, codeBlocks: newCodeBlocks, } = (0, typeString_1.generateTypeString)(object, this.objects);
|
|
327
326
|
const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
328
327
|
type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
|
|
329
328
|
refName: object.name,
|
|
330
|
-
interfaceName: helpers_1.getInterfaceName(object.name),
|
|
329
|
+
interfaceName: (0, helpers_1.getInterfaceName)(object.name),
|
|
331
330
|
description: object.description,
|
|
332
331
|
needExport: true,
|
|
333
332
|
properties: [],
|
|
@@ -343,13 +342,13 @@ class APITypingsGenerator {
|
|
|
343
342
|
};
|
|
344
343
|
}
|
|
345
344
|
getResponseCodeBlockAsType(object, response) {
|
|
346
|
-
const { imports, value, codeBlocks, description } = typeString_1.generateTypeString(response, this.objects, {
|
|
345
|
+
const { imports, value, codeBlocks, description } = (0, typeString_1.generateTypeString)(response, this.objects, {
|
|
347
346
|
objectParentName: ' ', // TODO: Refactor
|
|
348
347
|
});
|
|
349
348
|
const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
350
349
|
type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
|
|
351
350
|
refName: object.name,
|
|
352
|
-
interfaceName: helpers_1.getInterfaceName(object.name),
|
|
351
|
+
interfaceName: (0, helpers_1.getInterfaceName)(object.name),
|
|
353
352
|
description: [object.description, description || ''].join(constants_1.newLineChar),
|
|
354
353
|
needExport: true,
|
|
355
354
|
properties: [],
|
|
@@ -364,7 +363,7 @@ class APITypingsGenerator {
|
|
|
364
363
|
}
|
|
365
364
|
getResponseCodeBlock(object) {
|
|
366
365
|
if (!object.ref) {
|
|
367
|
-
log_1.consoleLogError(`response schema object "${object.name}" has no ref`, object);
|
|
366
|
+
(0, log_1.consoleLogError)(`response schema object "${object.name}" has no ref`, object);
|
|
368
367
|
return false;
|
|
369
368
|
}
|
|
370
369
|
const nonBuildableRefs = {
|
|
@@ -372,13 +371,13 @@ class APITypingsGenerator {
|
|
|
372
371
|
[constants_1.baseOkResponseRef]: true,
|
|
373
372
|
[constants_1.basePropertyExistsRef]: true,
|
|
374
373
|
};
|
|
375
|
-
const objectName = helpers_1.getObjectNameByRef(object.ref);
|
|
374
|
+
const objectName = (0, helpers_1.getObjectNameByRef)(object.ref);
|
|
376
375
|
if (nonBuildableRefs[objectName]) {
|
|
377
376
|
return this.getObjectCodeBlockAsType(object);
|
|
378
377
|
}
|
|
379
378
|
let response = this.getResponseObjectRef(object.ref);
|
|
380
379
|
if (!response) {
|
|
381
|
-
log_1.consoleLogError(`response schema object "${object.name}" has no response`, object);
|
|
380
|
+
(0, log_1.consoleLogError)(`response schema object "${object.name}" has no response`, object);
|
|
382
381
|
return false;
|
|
383
382
|
}
|
|
384
383
|
// VK API JSON Schema specific heuristic
|
|
@@ -399,14 +398,14 @@ class APITypingsGenerator {
|
|
|
399
398
|
case 'array':
|
|
400
399
|
return this.getResponseCodeBlockAsType(object, response);
|
|
401
400
|
default:
|
|
402
|
-
log_1.consoleLogErrorAndExit(response.name, 'unknown type', response.type);
|
|
401
|
+
(0, log_1.consoleLogErrorAndExit)(response.name, 'unknown type', response.type);
|
|
403
402
|
return false;
|
|
404
403
|
}
|
|
405
404
|
}
|
|
406
405
|
generateResponse(section, response) {
|
|
407
406
|
const result = this.getResponseCodeBlock(response);
|
|
408
407
|
if (!result) {
|
|
409
|
-
|
|
408
|
+
throw new Error('Unable to generate response');
|
|
410
409
|
}
|
|
411
410
|
const { codeBlocks, imports } = result;
|
|
412
411
|
this.appendToFileMap(section, imports, codeBlocks);
|
|
@@ -414,13 +413,13 @@ class APITypingsGenerator {
|
|
|
414
413
|
}
|
|
415
414
|
generateMethodParamsAndResponses(method) {
|
|
416
415
|
const { name: methodName } = method;
|
|
417
|
-
const section = helpers_1.getMethodSection(methodName);
|
|
418
|
-
if (!utils_1.isObject(method.responses)) {
|
|
419
|
-
log_1.consoleLogErrorAndExit(`"${methodName}" "responses" field is not an object.`);
|
|
416
|
+
const section = (0, helpers_1.getMethodSection)(methodName);
|
|
417
|
+
if (!(0, utils_1.isObject)(method.responses)) {
|
|
418
|
+
(0, log_1.consoleLogErrorAndExit)(`"${methodName}" "responses" field is not an object.`);
|
|
420
419
|
return;
|
|
421
420
|
}
|
|
422
421
|
if (Object.keys(method.responses).length === 0) {
|
|
423
|
-
log_1.consoleLogErrorAndExit(`"${methodName}" "responses" field is empty.`);
|
|
422
|
+
(0, log_1.consoleLogErrorAndExit)(`"${methodName}" "responses" field is empty.`);
|
|
424
423
|
return;
|
|
425
424
|
}
|
|
426
425
|
// Comment with method name for visual sections in file
|
|
@@ -429,38 +428,99 @@ class APITypingsGenerator {
|
|
|
429
428
|
methodNameComment.appendLines(['', method.description]);
|
|
430
429
|
}
|
|
431
430
|
this.appendToFileMap(section, {}, [methodNameComment]);
|
|
432
|
-
const { method: normalizedMethod, parameterRefs } = methods_1.normalizeMethodInfo(method);
|
|
431
|
+
const { method: normalizedMethod, parameterRefs } = (0, methods_1.normalizeMethodInfo)(method);
|
|
433
432
|
method = normalizedMethod;
|
|
434
433
|
this.generateObjectsFromRefs(parameterRefs);
|
|
435
|
-
this.generateMethodParams(new SchemaObject_1.SchemaObject(method.name, method));
|
|
436
|
-
Object.entries(method.responses)
|
|
434
|
+
const methodParamsInterfaceName = this.generateMethodParams(new SchemaObject_1.SchemaObject(method.name, method));
|
|
435
|
+
const methodResponsesInterfaceName = Object.entries(method.responses)
|
|
436
|
+
.map(([responseName, responseObject]) => {
|
|
437
437
|
if (this.ignoredResponses[methodName] && this.ignoredResponses[methodName][responseName]) {
|
|
438
438
|
return;
|
|
439
439
|
}
|
|
440
440
|
const name = `${methodName}_${responseName}`;
|
|
441
|
-
|
|
441
|
+
const interfaceName = (0, helpers_1.getInterfaceName)(name);
|
|
442
|
+
try {
|
|
443
|
+
this.generateResponse(section, new SchemaObject_1.SchemaObject(name, responseObject));
|
|
444
|
+
return interfaceName;
|
|
445
|
+
}
|
|
446
|
+
catch (e) {
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
})
|
|
450
|
+
.filter(Boolean);
|
|
451
|
+
this.generateMethodType(methodName, methodParamsInterfaceName, methodResponsesInterfaceName);
|
|
452
|
+
}
|
|
453
|
+
generateMethodType(methodName, methodParamsInterfaceName, methodResponsesInterfaceName) {
|
|
454
|
+
const codeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
455
|
+
type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
|
|
456
|
+
interfaceName: (0, helpers_1.getInterfaceName)(`${methodName} method`),
|
|
457
|
+
needExport: true,
|
|
458
|
+
allowEmptyInterface: true,
|
|
459
|
+
properties: [],
|
|
460
|
+
});
|
|
461
|
+
codeBlock.addProperty({
|
|
462
|
+
name: 'method',
|
|
463
|
+
value: methodName,
|
|
464
|
+
isRequired: true,
|
|
465
|
+
wrapValue: true,
|
|
466
|
+
});
|
|
467
|
+
codeBlock.addProperty({
|
|
468
|
+
name: 'request',
|
|
469
|
+
value: methodParamsInterfaceName,
|
|
470
|
+
isRequired: true,
|
|
471
|
+
});
|
|
472
|
+
codeBlock.addProperty({
|
|
473
|
+
name: 'response',
|
|
474
|
+
value: methodResponsesInterfaceName.length > 0
|
|
475
|
+
? methodResponsesInterfaceName.join(' | ')
|
|
476
|
+
: 'unknown',
|
|
477
|
+
isRequired: true,
|
|
442
478
|
});
|
|
479
|
+
const section = (0, helpers_1.getMethodSection)(methodName);
|
|
480
|
+
this.appendToFileMap(section, {}, [codeBlock]);
|
|
443
481
|
}
|
|
444
482
|
generateMethods() {
|
|
445
|
-
log_1.consoleLogInfo('creating method params and responses...');
|
|
483
|
+
(0, log_1.consoleLogInfo)('creating method params and responses...');
|
|
446
484
|
this.methodsList.forEach((methodInfo) => {
|
|
447
|
-
if (helpers_1.isMethodNeeded(this.methodsPattern, methodInfo.name)) {
|
|
485
|
+
if ((0, helpers_1.isMethodNeeded)(this.methodsPattern, methodInfo.name)) {
|
|
448
486
|
this.generateMethodParamsAndResponses(methodInfo);
|
|
449
487
|
}
|
|
450
488
|
});
|
|
451
489
|
Object.keys(this.methodFilesMap).forEach((section) => {
|
|
452
490
|
const { imports, codeBlocks } = this.methodFilesMap[section];
|
|
491
|
+
const methodNames = [];
|
|
453
492
|
codeBlocks.forEach((codeBlock) => {
|
|
454
493
|
if (codeBlock instanceof TypeCodeBlock_1.TypeCodeBlock && codeBlock.needExport && codeBlock.interfaceName) {
|
|
494
|
+
/**
|
|
495
|
+
* for interfaceName structure
|
|
496
|
+
* @see this.generateMethodType
|
|
497
|
+
*/
|
|
498
|
+
if (codeBlock.interfaceName.endsWith('Method')) {
|
|
499
|
+
methodNames.push(codeBlock.interfaceName);
|
|
500
|
+
// Skip export as it will be exported in union type
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
455
503
|
this.registerExport(`./methods/${section}`, codeBlock.interfaceName);
|
|
456
504
|
}
|
|
457
505
|
});
|
|
458
|
-
|
|
506
|
+
if (methodNames.length > 0) {
|
|
507
|
+
const sectionMethodsCodeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
508
|
+
type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
|
|
509
|
+
interfaceName: (0, helpers_1.getInterfaceName)(`${section} methods union`),
|
|
510
|
+
needExport: true,
|
|
511
|
+
allowEmptyInterface: true,
|
|
512
|
+
value: methodNames.join(' | '),
|
|
513
|
+
properties: [],
|
|
514
|
+
});
|
|
515
|
+
codeBlocks.push(sectionMethodsCodeBlock);
|
|
516
|
+
this.registerExport(`./methods/${section}`, sectionMethodsCodeBlock.interfaceName);
|
|
517
|
+
}
|
|
518
|
+
const code = [(0, generator_1.generateImportsBlock)(imports, null), ...codeBlocks];
|
|
459
519
|
this.registerResultFile(path_1.default.join('methods', `${section}.ts`), code.join(constants_1.newLineChar.repeat(2)));
|
|
460
520
|
});
|
|
461
521
|
}
|
|
462
522
|
generateErrors() {
|
|
463
|
-
log_1.consoleLogInfo('creating errors...');
|
|
523
|
+
(0, log_1.consoleLogInfo)('creating errors...');
|
|
464
524
|
const code = [];
|
|
465
525
|
Object.entries(this.errors)
|
|
466
526
|
.reduce((acc, [name, error]) => {
|
|
@@ -485,14 +545,14 @@ class APITypingsGenerator {
|
|
|
485
545
|
this.registerResultFile(path_1.default.join('common', 'errors.ts'), code.join(constants_1.newLineChar.repeat(2)));
|
|
486
546
|
}
|
|
487
547
|
createCommonTypes() {
|
|
488
|
-
log_1.consoleLogInfo('creating common types...');
|
|
548
|
+
(0, log_1.consoleLogInfo)('creating common types...');
|
|
489
549
|
const code = [];
|
|
490
550
|
const apiVersion = this.methodsDefinitions.version || constants_1.DEFAULT_API_VERSION;
|
|
491
551
|
code.push(`export const API_VERSION = '${apiVersion}'`);
|
|
492
552
|
code.push('export type ValueOf<T> = T[keyof T];');
|
|
493
553
|
code.push(new TypeCodeBlock_1.TypeCodeBlock({
|
|
494
554
|
type: TypeCodeBlock_1.TypeScriptCodeTypes.Interface,
|
|
495
|
-
interfaceName: helpers_1.getInterfaceName(constants_1.baseAPIParamsInterfaceName),
|
|
555
|
+
interfaceName: (0, helpers_1.getInterfaceName)(constants_1.baseAPIParamsInterfaceName),
|
|
496
556
|
needExport: true,
|
|
497
557
|
properties: [
|
|
498
558
|
{
|
|
@@ -515,25 +575,82 @@ class APITypingsGenerator {
|
|
|
515
575
|
},
|
|
516
576
|
],
|
|
517
577
|
}).toString());
|
|
578
|
+
code.push(`
|
|
579
|
+
type MethodOf<M> = M extends { method: string } ? M['method'] : never;
|
|
580
|
+
type RequestOf<M> = M extends { request: unknown } ? M['request'] : never;
|
|
581
|
+
type ResponseOf<M> = M extends { response: unknown } ? M['response'] : never;
|
|
582
|
+
|
|
583
|
+
export type CreateMethodMap<Type extends { method: string }> = {
|
|
584
|
+
[Property in Type as Property['method']]: {
|
|
585
|
+
method: MethodOf<Property>;
|
|
586
|
+
request: RequestOf<Property>;
|
|
587
|
+
response: ResponseOf<Property>;
|
|
588
|
+
};
|
|
589
|
+
};
|
|
590
|
+
`);
|
|
518
591
|
this.registerExport('./common/common', 'API_VERSION');
|
|
519
|
-
this.registerExport('./common/common', helpers_1.getInterfaceName(constants_1.baseAPIParamsInterfaceName));
|
|
592
|
+
this.registerExport('./common/common', (0, helpers_1.getInterfaceName)(constants_1.baseAPIParamsInterfaceName));
|
|
593
|
+
this.registerExport('./common/common', 'CreateMethodMap');
|
|
520
594
|
this.registerResultFile(path_1.default.join('common', 'common.ts'), code.join(constants_1.newLineChar.repeat(2)));
|
|
521
595
|
}
|
|
522
596
|
/**
|
|
523
597
|
* This method creates index.ts file with exports of all generated params, responses and objects
|
|
524
598
|
*/
|
|
525
599
|
createIndexExports() {
|
|
526
|
-
log_1.consoleLogInfo('creating index.ts exports...');
|
|
600
|
+
(0, log_1.consoleLogInfo)('creating index.ts exports...');
|
|
527
601
|
const blocks = [];
|
|
528
602
|
let exportedObjects = {};
|
|
529
|
-
|
|
603
|
+
let methodNames = new Set();
|
|
604
|
+
(0, utils_1.sortArrayAlphabetically)(Object.keys(this.exports)).forEach((path) => {
|
|
605
|
+
if (!path.startsWith('./methods/')) {
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
const objects = Object.keys(this.exports[path]);
|
|
609
|
+
if (!objects.length) {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
const blockLines = [];
|
|
613
|
+
(0, utils_1.sortArrayAlphabetically)(objects).forEach((object) => {
|
|
614
|
+
/**
|
|
615
|
+
* for interfaceName structure
|
|
616
|
+
* @see this.generateMethods
|
|
617
|
+
*/
|
|
618
|
+
if (!methodNames.has(object) && /^[A-Z][a-zA-Z0-9]*MethodsUnion$/.test(object)) {
|
|
619
|
+
methodNames.add(object);
|
|
620
|
+
exportedObjects[object] = true; // To skip in export block
|
|
621
|
+
blockLines.push(` ${object},`);
|
|
622
|
+
}
|
|
623
|
+
});
|
|
624
|
+
if (blockLines.length > 0) {
|
|
625
|
+
blockLines.unshift('import type {');
|
|
626
|
+
blockLines.push(`} from '${path.replace('.ts', '')}';`);
|
|
627
|
+
blocks.push(blockLines.join(constants_1.newLineChar));
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
blocks.push("import type { CreateMethodMap } from './common/common';");
|
|
631
|
+
const methodsCodeBlock = new TypeCodeBlock_1.TypeCodeBlock({
|
|
632
|
+
type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
|
|
633
|
+
interfaceName: 'ApiMethodsUnion',
|
|
634
|
+
needExport: false,
|
|
635
|
+
properties: [],
|
|
636
|
+
value: Array.from(methodNames).join(' | '),
|
|
637
|
+
});
|
|
638
|
+
blocks.push(methodsCodeBlock.toString());
|
|
639
|
+
blocks.push(new TypeCodeBlock_1.TypeCodeBlock({
|
|
640
|
+
type: TypeCodeBlock_1.TypeScriptCodeTypes.Type,
|
|
641
|
+
interfaceName: 'ApiMethodsMap',
|
|
642
|
+
needExport: true,
|
|
643
|
+
properties: [],
|
|
644
|
+
value: `CreateMethodMap<${methodsCodeBlock.interfaceName}>`,
|
|
645
|
+
}).toString());
|
|
646
|
+
(0, utils_1.sortArrayAlphabetically)(Object.keys(this.exports)).forEach((path) => {
|
|
530
647
|
const objects = Object.keys(this.exports[path]);
|
|
531
648
|
if (!objects.length) {
|
|
532
649
|
return;
|
|
533
650
|
}
|
|
534
651
|
const blockLines = [];
|
|
535
652
|
blockLines.push('export {');
|
|
536
|
-
utils_1.sortArrayAlphabetically(objects).forEach((object) => {
|
|
653
|
+
(0, utils_1.sortArrayAlphabetically)(objects).forEach((object) => {
|
|
537
654
|
if (exportedObjects[object]) {
|
|
538
655
|
return;
|
|
539
656
|
}
|
|
@@ -544,21 +661,21 @@ class APITypingsGenerator {
|
|
|
544
661
|
blocks.push(blockLines.join(constants_1.newLineChar));
|
|
545
662
|
});
|
|
546
663
|
this.registerResultFile('index.ts', blocks.join(constants_1.newLineChar.repeat(2)));
|
|
547
|
-
log_1.consoleLogInfo(`${Object.keys(exportedObjects).length} objects successfully generated`);
|
|
664
|
+
(0, log_1.consoleLogInfo)(`${Object.keys(exportedObjects).length} objects successfully generated`);
|
|
548
665
|
}
|
|
549
666
|
generate() {
|
|
550
|
-
log_1.consoleLogInfo('generate');
|
|
667
|
+
(0, log_1.consoleLogInfo)('generate');
|
|
551
668
|
this.generateMethods();
|
|
552
669
|
this.generateErrors();
|
|
553
670
|
if (this.needEmit) {
|
|
554
671
|
this.createCommonTypes();
|
|
555
672
|
this.createIndexExports();
|
|
556
|
-
log_1.consoleLogInfo('prepare out directory');
|
|
557
|
-
helpers_1.prepareBuildDirectory(this.outDirPath);
|
|
558
|
-
log_1.consoleLogInfo('write files');
|
|
673
|
+
(0, log_1.consoleLogInfo)('prepare out directory');
|
|
674
|
+
(0, helpers_1.prepareBuildDirectory)(this.outDirPath);
|
|
675
|
+
(0, log_1.consoleLogInfo)('write files');
|
|
559
676
|
Object.keys(this.resultFiles).forEach((filePath) => {
|
|
560
677
|
const fileContent = this.resultFiles[filePath];
|
|
561
|
-
helpers_1.writeFile(path_1.default.join(this.outDirPath, filePath), fileContent);
|
|
678
|
+
(0, helpers_1.writeFile)(path_1.default.join(this.outDirPath, filePath), fileContent);
|
|
562
679
|
});
|
|
563
680
|
}
|
|
564
681
|
}
|
|
@@ -6,8 +6,8 @@ const helpers_1 = require("../helpers");
|
|
|
6
6
|
const log_1 = require("../log");
|
|
7
7
|
class SchemaObject {
|
|
8
8
|
constructor(name, object, parentName) {
|
|
9
|
-
if (!utils_1.isObject(object)) {
|
|
10
|
-
log_1.consoleLogErrorAndExit(`[SchemaObject] "${name}" is not an object.`, {
|
|
9
|
+
if (!(0, utils_1.isObject)(object)) {
|
|
10
|
+
(0, log_1.consoleLogErrorAndExit)(`[SchemaObject] "${name}" is not an object.`, {
|
|
11
11
|
name,
|
|
12
12
|
object,
|
|
13
13
|
parentName,
|
|
@@ -18,16 +18,16 @@ class SchemaObject {
|
|
|
18
18
|
if (parentName) {
|
|
19
19
|
this.parentObjectName = parentName;
|
|
20
20
|
}
|
|
21
|
-
if (utils_1.isString(object.type)) {
|
|
21
|
+
if ((0, utils_1.isString)(object.type)) {
|
|
22
22
|
this.type = object.type;
|
|
23
23
|
}
|
|
24
24
|
else if (Array.isArray(object.type)) {
|
|
25
25
|
this.type = object.type;
|
|
26
26
|
}
|
|
27
|
-
if (utils_1.isString(object.description)) {
|
|
27
|
+
if ((0, utils_1.isString)(object.description)) {
|
|
28
28
|
this.description = object.description;
|
|
29
29
|
}
|
|
30
|
-
if (utils_1.isString(object.$ref)) {
|
|
30
|
+
if ((0, utils_1.isString)(object.$ref)) {
|
|
31
31
|
this.ref = object.$ref;
|
|
32
32
|
}
|
|
33
33
|
if (Array.isArray(object.enum)) {
|
|
@@ -59,10 +59,10 @@ class SchemaObject {
|
|
|
59
59
|
}
|
|
60
60
|
if (object.patternProperties) {
|
|
61
61
|
Object.entries(object.patternProperties).forEach(([propertyName, property]) => {
|
|
62
|
-
this.properties.push(new SchemaObject(helpers_1.transformPatternPropertyName(propertyName), property, name));
|
|
62
|
+
this.properties.push(new SchemaObject((0, helpers_1.transformPatternPropertyName)(propertyName), property, name));
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
if (utils_1.isObject(object.items)) {
|
|
65
|
+
if ((0, utils_1.isObject)(object.items)) {
|
|
66
66
|
this.items = new SchemaObject(name + '_items', object.items, this.name);
|
|
67
67
|
}
|
|
68
68
|
if (Array.isArray(object.oneOf) && object.oneOf.length > 0) {
|