@looker/api-explorer 0.9.18 → 0.9.24
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/CHANGELOG.md +141 -0
- package/e2e/e2e.spec.ts +242 -0
- package/{src/reducers/search/reducer.ts → e2e/helpers.ts} +21 -36
- package/{src/reducers/search/actions.ts → jest-puppeteer.config.js} +17 -15
- package/jest.config.js +2 -0
- package/lib/ApiExplorer.d.ts +8 -11
- package/lib/ApiExplorer.js +93 -71
- package/lib/ApiExplorer.js.map +1 -1
- package/lib/App.d.ts +1 -0
- package/lib/App.js +29 -0
- package/lib/App.js.map +1 -0
- package/lib/StandaloneApiExplorer.d.ts +1 -1
- package/lib/StandaloneApiExplorer.js +46 -25
- package/lib/StandaloneApiExplorer.js.map +1 -1
- package/lib/components/DocActivityType/DocActivityType.d.ts +2 -2
- package/lib/components/DocActivityType/DocActivityType.js.map +1 -1
- package/lib/components/DocCode/DocCode.d.ts +1 -1
- package/lib/components/DocCode/DocCode.js +6 -10
- package/lib/components/DocCode/DocCode.js.map +1 -1
- package/lib/components/DocMarkdown/DocMarkdown.d.ts +1 -1
- package/lib/components/DocMarkdown/DocMarkdown.js +13 -15
- package/lib/components/DocMarkdown/DocMarkdown.js.map +1 -1
- package/lib/components/DocMethodSummary/DocMethodSummary.d.ts +2 -2
- package/lib/components/DocMethodSummary/DocMethodSummary.js +3 -6
- package/lib/components/DocMethodSummary/DocMethodSummary.js.map +1 -1
- package/lib/components/DocMethodSummary/DocSummaryStatus.d.ts +2 -3
- package/lib/components/DocMethodSummary/DocSummaryStatus.js +3 -3
- package/lib/components/DocMethodSummary/DocSummaryStatus.js.map +1 -1
- package/lib/components/DocMethodSummary/index.d.ts +1 -0
- package/lib/components/DocMethodSummary/index.js +8 -0
- package/lib/components/DocMethodSummary/index.js.map +1 -1
- package/lib/components/DocMethodSummary/utils.d.ts +2 -1
- package/lib/components/DocMethodSummary/utils.js +24 -15
- package/lib/components/DocMethodSummary/utils.js.map +1 -1
- package/lib/components/DocPseudo/DocParam.d.ts +2 -2
- package/lib/components/DocPseudo/DocParam.js.map +1 -1
- package/lib/components/DocPseudo/DocParams.d.ts +2 -2
- package/lib/components/DocPseudo/DocParams.js.map +1 -1
- package/lib/components/DocPseudo/DocPrimaryResponse.d.ts +2 -2
- package/lib/components/DocPseudo/DocPrimaryResponse.js.map +1 -1
- package/lib/components/DocPseudo/DocPseudo.d.ts +2 -2
- package/lib/components/DocPseudo/DocPseudo.js.map +1 -1
- package/lib/components/DocRateLimited/DocRateLimited.d.ts +2 -2
- package/lib/components/DocRateLimited/DocRateLimited.js.map +1 -1
- package/lib/components/DocReferences/DocReferences.d.ts +2 -2
- package/lib/components/DocReferences/DocReferences.js +9 -13
- package/lib/components/DocReferences/DocReferences.js.map +1 -1
- package/lib/components/DocReferences/utils.d.ts +2 -2
- package/lib/components/DocReferences/utils.js +5 -31
- package/lib/components/DocReferences/utils.js.map +1 -1
- package/lib/components/DocResponses/DocResponseTypes.d.ts +3 -2
- package/lib/components/DocResponses/DocResponseTypes.js +3 -1
- package/lib/components/DocResponses/DocResponseTypes.js.map +1 -1
- package/lib/components/DocResponses/DocResponses.d.ts +3 -2
- package/lib/components/DocResponses/DocResponses.js +4 -2
- package/lib/components/DocResponses/DocResponses.js.map +1 -1
- package/lib/components/DocResponses/utils.d.ts +1 -1
- package/lib/components/DocResponses/utils.js.map +1 -1
- package/lib/components/DocSDKs/DocDeclarations.d.ts +2 -2
- package/lib/components/DocSDKs/DocDeclarations.js.map +1 -1
- package/lib/components/DocSDKs/DocSDKs.d.ts +2 -2
- package/lib/components/DocSDKs/DocSDKs.js +2 -4
- package/lib/components/DocSDKs/DocSDKs.js.map +1 -1
- package/lib/components/DocSDKs/utils.d.ts +1 -1
- package/lib/components/DocSDKs/utils.js.map +1 -1
- package/lib/components/DocSchema/DocSchema.d.ts +1 -1
- package/lib/components/DocSchema/DocSchema.js +2 -2
- package/lib/components/DocSchema/DocSchema.js.map +1 -1
- package/lib/components/DocSdkUsage/DocSdkExampleCell.d.ts +1 -1
- package/lib/components/DocSdkUsage/DocSdkExampleCell.js.map +1 -1
- package/lib/components/DocSdkUsage/DocSdkUsage.d.ts +2 -2
- package/lib/components/DocSdkUsage/DocSdkUsage.js +7 -10
- package/lib/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
- package/lib/components/DocSdkUsage/utils.d.ts +2 -2
- package/lib/components/DocSdkUsage/utils.js.map +1 -1
- package/lib/components/DocSource/DocSource.d.ts +2 -2
- package/lib/components/DocSource/DocSource.js +5 -7
- package/lib/components/DocSource/DocSource.js.map +1 -1
- package/lib/components/DocStatus/DocStatus.d.ts +2 -2
- package/lib/components/DocStatus/DocStatus.js.map +1 -1
- package/lib/components/DocTitle/DocTitle.d.ts +1 -1
- package/lib/components/DocTitle/DocTitle.js +2 -2
- package/lib/components/DocTitle/DocTitle.js.map +1 -1
- package/lib/components/DocTypeSummary/DocTypeSummary.d.ts +7 -0
- package/lib/components/DocTypeSummary/DocTypeSummary.js +52 -0
- package/lib/components/DocTypeSummary/DocTypeSummary.js.map +1 -0
- package/lib/components/DocTypeSummary/index.d.ts +1 -0
- package/lib/components/DocTypeSummary/index.js +14 -0
- package/lib/components/DocTypeSummary/index.js.map +1 -0
- package/lib/components/ErrorBoundary/ErrorBoundary.js +1 -1
- package/lib/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.d.ts +1 -1
- package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +152 -8
- package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
- package/lib/components/ExploreType/ExploreProperty.d.ts +10 -7
- package/lib/components/ExploreType/ExploreProperty.js +14 -3
- package/lib/components/ExploreType/ExploreProperty.js.map +1 -1
- package/lib/components/ExploreType/ExploreType.d.ts +4 -2
- package/lib/components/ExploreType/ExploreType.js +9 -5
- package/lib/components/ExploreType/ExploreType.js.map +1 -1
- package/lib/components/ExploreType/exploreUtils.d.ts +2 -2
- package/lib/components/ExploreType/exploreUtils.js.map +1 -1
- package/lib/components/Header/Header.d.ts +5 -4
- package/lib/components/Header/Header.js +5 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/index.d.ts +1 -1
- package/lib/components/Header/index.js +6 -0
- package/lib/components/Header/index.js.map +1 -1
- package/lib/components/SelectorContainer/ApiSpecSelector.d.ts +3 -3
- package/lib/components/SelectorContainer/ApiSpecSelector.js +3 -1
- package/lib/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
- package/lib/components/SelectorContainer/SdkLanguageSelector.d.ts +1 -1
- package/lib/components/SelectorContainer/SdkLanguageSelector.js +7 -17
- package/lib/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
- package/lib/components/SelectorContainer/SelectorContainer.d.ts +5 -4
- package/lib/components/SelectorContainer/SelectorContainer.js +11 -3
- package/lib/components/SelectorContainer/SelectorContainer.js.map +1 -1
- package/lib/components/SideNav/SearchMessage.d.ts +2 -2
- package/lib/components/SideNav/SearchMessage.js.map +1 -1
- package/lib/components/SideNav/SideNav.d.ts +3 -3
- package/lib/components/SideNav/SideNav.js +93 -56
- package/lib/components/SideNav/SideNav.js.map +1 -1
- package/lib/components/SideNav/SideNavMethodTags.d.ts +10 -0
- package/lib/components/SideNav/SideNavMethodTags.js +42 -0
- package/lib/components/SideNav/SideNavMethodTags.js.map +1 -0
- package/lib/components/SideNav/SideNavMethods.d.ts +5 -5
- package/lib/components/SideNav/SideNavMethods.js +37 -93
- package/lib/components/SideNav/SideNavMethods.js.map +1 -1
- package/lib/components/SideNav/SideNavTypeTags.d.ts +10 -0
- package/lib/components/SideNav/SideNavTypeTags.js +42 -0
- package/lib/components/SideNav/SideNavTypeTags.js.map +1 -0
- package/lib/components/SideNav/SideNavTypes.d.ts +8 -5
- package/lib/components/SideNav/SideNavTypes.js +83 -32
- package/lib/components/SideNav/SideNavTypes.js.map +1 -1
- package/lib/components/SideNav/searchUtils.d.ts +2 -2
- package/lib/components/SideNav/searchUtils.js +1 -1
- package/lib/components/SideNav/searchUtils.js.map +1 -1
- package/lib/components/common/Loader.d.ts +2 -2
- package/lib/components/common/Loader.js.map +1 -1
- package/lib/components/common/common.d.ts +2 -3
- package/lib/components/common/common.js +3 -15
- package/lib/components/common/common.js.map +1 -1
- package/lib/components/common/index.d.ts +2 -2
- package/lib/components/common/index.js +22 -18
- package/lib/components/common/index.js.map +1 -1
- package/lib/components/index.d.ts +5 -4
- package/lib/components/index.js +26 -12
- package/lib/components/index.js.map +1 -1
- package/lib/esm/ApiExplorer.js +97 -77
- package/lib/esm/ApiExplorer.js.map +1 -1
- package/lib/esm/App.js +19 -0
- package/lib/esm/App.js.map +1 -0
- package/lib/esm/StandaloneApiExplorer.js +46 -22
- package/lib/esm/StandaloneApiExplorer.js.map +1 -1
- package/lib/esm/components/DocActivityType/DocActivityType.js.map +1 -1
- package/lib/esm/components/DocCode/DocCode.js +5 -8
- package/lib/esm/components/DocCode/DocCode.js.map +1 -1
- package/lib/esm/components/DocMarkdown/DocMarkdown.js +10 -12
- package/lib/esm/components/DocMarkdown/DocMarkdown.js.map +1 -1
- package/lib/esm/components/DocMethodSummary/DocMethodSummary.js +4 -6
- package/lib/esm/components/DocMethodSummary/DocMethodSummary.js.map +1 -1
- package/lib/esm/components/DocMethodSummary/DocSummaryStatus.js +3 -3
- package/lib/esm/components/DocMethodSummary/DocSummaryStatus.js.map +1 -1
- package/lib/esm/components/DocMethodSummary/index.js +1 -0
- package/lib/esm/components/DocMethodSummary/index.js.map +1 -1
- package/lib/esm/components/DocMethodSummary/utils.js +24 -15
- package/lib/esm/components/DocMethodSummary/utils.js.map +1 -1
- package/lib/esm/components/DocPseudo/DocParam.js.map +1 -1
- package/lib/esm/components/DocPseudo/DocParams.js.map +1 -1
- package/lib/esm/components/DocPseudo/DocPrimaryResponse.js.map +1 -1
- package/lib/esm/components/DocPseudo/DocPseudo.js.map +1 -1
- package/lib/esm/components/DocRateLimited/DocRateLimited.js.map +1 -1
- package/lib/esm/components/DocReferences/DocReferences.js +6 -9
- package/lib/esm/components/DocReferences/DocReferences.js.map +1 -1
- package/lib/esm/components/DocReferences/utils.js +3 -26
- package/lib/esm/components/DocReferences/utils.js.map +1 -1
- package/lib/esm/components/DocResponses/DocResponseTypes.js +3 -1
- package/lib/esm/components/DocResponses/DocResponseTypes.js.map +1 -1
- package/lib/esm/components/DocResponses/DocResponses.js +3 -1
- package/lib/esm/components/DocResponses/DocResponses.js.map +1 -1
- package/lib/esm/components/DocResponses/utils.js.map +1 -1
- package/lib/esm/components/DocSDKs/DocDeclarations.js.map +1 -1
- package/lib/esm/components/DocSDKs/DocSDKs.js +3 -4
- package/lib/esm/components/DocSDKs/DocSDKs.js.map +1 -1
- package/lib/esm/components/DocSDKs/utils.js.map +1 -1
- package/lib/esm/components/DocSchema/DocSchema.js +1 -1
- package/lib/esm/components/DocSchema/DocSchema.js.map +1 -1
- package/lib/esm/components/DocSdkUsage/DocSdkExampleCell.js.map +1 -1
- package/lib/esm/components/DocSdkUsage/DocSdkUsage.js +7 -9
- package/lib/esm/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
- package/lib/esm/components/DocSdkUsage/utils.js.map +1 -1
- package/lib/esm/components/DocSource/DocSource.js +4 -5
- package/lib/esm/components/DocSource/DocSource.js.map +1 -1
- package/lib/esm/components/DocStatus/DocStatus.js.map +1 -1
- package/lib/esm/components/DocTitle/DocTitle.js +2 -2
- package/lib/esm/components/DocTitle/DocTitle.js.map +1 -1
- package/lib/esm/components/DocTypeSummary/DocTypeSummary.js +38 -0
- package/lib/esm/components/DocTypeSummary/DocTypeSummary.js.map +1 -0
- package/lib/esm/components/DocTypeSummary/index.js +2 -0
- package/lib/{state/action_creators.js.map → esm/components/DocTypeSummary/index.js.map} +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorBoundary.js +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +153 -6
- package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
- package/lib/esm/components/ExploreType/ExploreProperty.js +14 -3
- package/lib/esm/components/ExploreType/ExploreProperty.js.map +1 -1
- package/lib/esm/components/ExploreType/ExploreType.js +8 -4
- package/lib/esm/components/ExploreType/ExploreType.js.map +1 -1
- package/lib/esm/components/ExploreType/exploreUtils.js.map +1 -1
- package/lib/esm/components/Header/Header.js +3 -1
- package/lib/esm/components/Header/Header.js.map +1 -1
- package/lib/esm/components/Header/index.js +1 -1
- package/lib/esm/components/Header/index.js.map +1 -1
- package/lib/esm/components/SelectorContainer/ApiSpecSelector.js +4 -2
- package/lib/esm/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
- package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js +7 -12
- package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
- package/lib/esm/components/SelectorContainer/SelectorContainer.js +11 -3
- package/lib/esm/components/SelectorContainer/SelectorContainer.js.map +1 -1
- package/lib/esm/components/SideNav/SearchMessage.js.map +1 -1
- package/lib/esm/components/SideNav/SideNav.js +95 -57
- package/lib/esm/components/SideNav/SideNav.js.map +1 -1
- package/lib/esm/components/SideNav/SideNavMethodTags.js +29 -0
- package/lib/esm/components/SideNav/SideNavMethodTags.js.map +1 -0
- package/lib/esm/components/SideNav/SideNavMethods.js +38 -96
- package/lib/esm/components/SideNav/SideNavMethods.js.map +1 -1
- package/lib/esm/components/SideNav/SideNavTypeTags.js +29 -0
- package/lib/esm/components/SideNav/SideNavTypeTags.js.map +1 -0
- package/lib/esm/components/SideNav/SideNavTypes.js +84 -33
- package/lib/esm/components/SideNav/SideNavTypes.js.map +1 -1
- package/lib/esm/components/SideNav/searchUtils.js +1 -1
- package/lib/esm/components/SideNav/searchUtils.js.map +1 -1
- package/lib/esm/components/common/Loader.js.map +1 -1
- package/lib/esm/components/common/common.js +3 -11
- package/lib/esm/components/common/common.js.map +1 -1
- package/lib/esm/components/common/index.js +2 -2
- package/lib/esm/components/common/index.js.map +1 -1
- package/lib/esm/components/index.js +5 -4
- package/lib/esm/components/index.js.map +1 -1
- package/lib/esm/index.js +4 -18
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/reducers/index.js +0 -1
- package/lib/esm/reducers/index.js.map +1 -1
- package/lib/esm/reducers/spec/actions.js.map +1 -1
- package/lib/esm/reducers/spec/reducer.js.map +1 -1
- package/lib/esm/reducers/spec/utils.js +17 -1
- package/lib/esm/reducers/spec/utils.js.map +1 -1
- package/lib/esm/routes/AppRouter.js +16 -14
- package/lib/esm/routes/AppRouter.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DiffScene.js +65 -11
- package/lib/esm/scenes/DiffScene/DiffScene.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DiffBanner.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js +15 -22
- package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DiffLegend.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/docDiffUtils.js.map +1 -1
- package/lib/esm/scenes/DiffScene/diffUtils.js.map +1 -1
- package/lib/esm/scenes/HomeScene/HomeScene.js.map +1 -1
- package/lib/esm/scenes/MethodScene/MethodScene.js +80 -29
- package/lib/esm/scenes/MethodScene/MethodScene.js.map +1 -1
- package/lib/esm/scenes/MethodScene/components/DocOperation.js.map +1 -1
- package/lib/esm/scenes/MethodScene/components/DocRequestBody.js +5 -2
- package/lib/esm/scenes/MethodScene/components/DocRequestBody.js.map +1 -1
- package/lib/esm/scenes/{TagScene/TagScene.js → MethodTagScene/MethodTagScene.js} +16 -11
- package/lib/esm/scenes/MethodTagScene/MethodTagScene.js.map +1 -0
- package/lib/esm/scenes/MethodTagScene/index.js +2 -0
- package/lib/{state/reducers.js.map → esm/scenes/MethodTagScene/index.js.map} +1 -1
- package/lib/esm/scenes/{TagScene → MethodTagScene}/utils.js +0 -0
- package/lib/esm/scenes/MethodTagScene/utils.js.map +1 -0
- package/lib/esm/scenes/TypeScene/TypeScene.js +14 -7
- package/lib/esm/scenes/TypeScene/TypeScene.js.map +1 -1
- package/lib/esm/scenes/TypeTagScene/TypeTagScene.js +57 -0
- package/lib/esm/scenes/TypeTagScene/TypeTagScene.js.map +1 -0
- package/lib/esm/scenes/TypeTagScene/index.js +2 -0
- package/lib/esm/scenes/TypeTagScene/index.js.map +1 -0
- package/lib/esm/scenes/TypeTagScene/utils.js +8 -0
- package/lib/esm/scenes/TypeTagScene/utils.js.map +1 -0
- package/lib/esm/scenes/index.js +2 -1
- package/lib/esm/scenes/index.js.map +1 -1
- package/lib/esm/state/index.js +2 -3
- package/lib/esm/state/index.js.map +1 -1
- package/lib/esm/state/lodes/index.js +3 -0
- package/lib/esm/state/lodes/index.js.map +1 -0
- package/lib/esm/state/lodes/sagas.js +25 -0
- package/lib/esm/state/lodes/sagas.js.map +1 -0
- package/lib/esm/state/lodes/selectors.js +5 -0
- package/lib/esm/state/lodes/selectors.js.map +1 -0
- package/lib/esm/state/lodes/slice.js +30 -0
- package/lib/esm/state/lodes/slice.js.map +1 -0
- package/lib/esm/state/settings/index.js +1 -1
- package/lib/esm/state/settings/index.js.map +1 -1
- package/lib/esm/state/settings/sagas.js +59 -0
- package/lib/esm/state/settings/sagas.js.map +1 -0
- package/lib/esm/state/settings/selectors.js +6 -1
- package/lib/esm/state/settings/selectors.js.map +1 -1
- package/lib/esm/state/settings/slice.js +50 -0
- package/lib/esm/state/settings/slice.js.map +1 -0
- package/lib/esm/state/store.js +13 -3
- package/lib/esm/state/store.js.map +1 -1
- package/lib/esm/test-utils/index.js +3 -4
- package/lib/esm/test-utils/index.js.map +1 -1
- package/lib/esm/test-utils/lodes.js +12 -0
- package/lib/esm/test-utils/lodes.js.map +1 -0
- package/lib/esm/test-utils/redux.js +30 -15
- package/lib/esm/test-utils/redux.js.map +1 -1
- package/lib/esm/test-utils/router.js.map +1 -1
- package/lib/esm/utils/index.js +1 -2
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/lodeUtils.js +3 -7
- package/lib/esm/utils/lodeUtils.js.map +1 -1
- package/lib/esm/utils/path.js +32 -1
- package/lib/esm/utils/path.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +52 -23
- package/lib/index.js.map +1 -1
- package/lib/reducers/index.d.ts +0 -1
- package/lib/reducers/index.js +0 -13
- package/lib/reducers/index.js.map +1 -1
- package/lib/reducers/spec/actions.d.ts +1 -1
- package/lib/reducers/spec/actions.js.map +1 -1
- package/lib/reducers/spec/reducer.d.ts +2 -2
- package/lib/reducers/spec/reducer.js.map +1 -1
- package/lib/reducers/spec/utils.d.ts +3 -3
- package/lib/reducers/spec/utils.js +18 -1
- package/lib/reducers/spec/utils.js.map +1 -1
- package/lib/routes/AppRouter.d.ts +6 -2
- package/lib/routes/AppRouter.js +15 -16
- package/lib/routes/AppRouter.js.map +1 -1
- package/lib/scenes/DiffScene/DiffScene.d.ts +2 -2
- package/lib/scenes/DiffScene/DiffScene.js +65 -11
- package/lib/scenes/DiffScene/DiffScene.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DiffBanner.d.ts +2 -2
- package/lib/scenes/DiffScene/DocDiff/DiffBanner.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DiffItem.d.ts +3 -3
- package/lib/scenes/DiffScene/DocDiff/DiffItem.js +13 -20
- package/lib/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DiffLegend.d.ts +2 -2
- package/lib/scenes/DiffScene/DocDiff/DiffLegend.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DocDiff.d.ts +2 -2
- package/lib/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/docDiffUtils.d.ts +1 -1
- package/lib/scenes/DiffScene/DocDiff/docDiffUtils.js.map +1 -1
- package/lib/scenes/DiffScene/diffUtils.d.ts +1 -1
- package/lib/scenes/DiffScene/diffUtils.js.map +1 -1
- package/lib/scenes/HomeScene/HomeScene.d.ts +2 -2
- package/lib/scenes/HomeScene/HomeScene.js.map +1 -1
- package/lib/scenes/MethodScene/MethodScene.d.ts +8 -4
- package/lib/scenes/MethodScene/MethodScene.js +75 -27
- package/lib/scenes/MethodScene/MethodScene.js.map +1 -1
- package/lib/scenes/MethodScene/components/DocOperation.d.ts +2 -2
- package/lib/scenes/MethodScene/components/DocOperation.js.map +1 -1
- package/lib/scenes/MethodScene/components/DocRequestBody.d.ts +3 -2
- package/lib/scenes/MethodScene/components/DocRequestBody.js +6 -2
- package/lib/scenes/MethodScene/components/DocRequestBody.js.map +1 -1
- package/lib/scenes/MethodTagScene/MethodTagScene.d.ts +7 -0
- package/lib/scenes/{TagScene/TagScene.js → MethodTagScene/MethodTagScene.js} +19 -14
- package/lib/scenes/MethodTagScene/MethodTagScene.js.map +1 -0
- package/lib/scenes/MethodTagScene/index.d.ts +1 -0
- package/lib/scenes/MethodTagScene/index.js +14 -0
- package/lib/{context/search/SearchContext.js.map → scenes/MethodTagScene/index.js.map} +1 -1
- package/lib/scenes/{TagScene → MethodTagScene}/utils.d.ts +1 -1
- package/lib/scenes/{TagScene → MethodTagScene}/utils.js +0 -0
- package/lib/{context/lode/index.js.map → scenes/MethodTagScene/utils.js.map} +1 -1
- package/lib/scenes/TypeScene/TypeScene.d.ts +2 -2
- package/lib/scenes/TypeScene/TypeScene.js +16 -7
- package/lib/scenes/TypeScene/TypeScene.js.map +1 -1
- package/lib/scenes/TypeTagScene/TypeTagScene.d.ts +7 -0
- package/lib/scenes/TypeTagScene/TypeTagScene.js +76 -0
- package/lib/scenes/TypeTagScene/TypeTagScene.js.map +1 -0
- package/lib/scenes/TypeTagScene/index.d.ts +1 -0
- package/lib/scenes/TypeTagScene/index.js +14 -0
- package/lib/{esm/state/settings/actions.js.map → scenes/TypeTagScene/index.js.map} +1 -1
- package/lib/scenes/TypeTagScene/utils.d.ts +2 -0
- package/lib/scenes/TypeTagScene/utils.js +17 -0
- package/lib/scenes/TypeTagScene/utils.js.map +1 -0
- package/lib/scenes/index.d.ts +2 -1
- package/lib/scenes/index.js +11 -3
- package/lib/scenes/index.js.map +1 -1
- package/lib/state/index.d.ts +2 -2
- package/lib/state/index.js +15 -16
- package/lib/state/index.js.map +1 -1
- package/lib/state/lodes/index.d.ts +2 -0
- package/lib/{reducers/search → state/lodes}/index.js +8 -8
- package/lib/state/lodes/index.js.map +1 -0
- package/lib/state/lodes/sagas.d.ts +1 -0
- package/lib/state/lodes/sagas.js +34 -0
- package/lib/state/lodes/sagas.js.map +1 -0
- package/lib/state/lodes/selectors.d.ts +3 -0
- package/lib/state/lodes/selectors.js +17 -0
- package/lib/state/lodes/selectors.js.map +1 -0
- package/lib/state/lodes/slice.d.ts +29 -0
- package/lib/state/lodes/slice.js +45 -0
- package/lib/state/lodes/slice.js.map +1 -0
- package/lib/state/settings/index.d.ts +1 -1
- package/lib/state/settings/index.js +8 -8
- package/lib/state/settings/index.js.map +1 -1
- package/lib/state/settings/sagas.d.ts +1 -0
- package/lib/state/settings/sagas.js +69 -0
- package/lib/state/settings/sagas.js.map +1 -0
- package/lib/state/settings/selectors.d.ts +5 -2
- package/lib/state/settings/selectors.js +17 -3
- package/lib/state/settings/selectors.js.map +1 -1
- package/lib/state/settings/slice.d.ts +42 -0
- package/lib/state/settings/slice.js +69 -0
- package/lib/state/settings/slice.js.map +1 -0
- package/lib/state/store.d.ts +10 -6
- package/lib/state/store.js +15 -5
- package/lib/state/store.js.map +1 -1
- package/lib/test-data/declarations.js +24 -0
- package/lib/test-data/declarations.js.map +1 -0
- package/lib/test-data/examples.js.map +1 -1
- package/lib/test-data/index.js +23 -0
- package/lib/test-data/index.js.map +1 -1
- package/lib/test-data/specs.js.map +1 -1
- package/lib/test-utils/index.d.ts +3 -4
- package/lib/test-utils/index.js +33 -56
- package/lib/test-utils/index.js.map +1 -1
- package/lib/test-utils/lodes.d.ts +4 -0
- package/lib/test-utils/lodes.js +23 -0
- package/lib/test-utils/lodes.js.map +1 -0
- package/lib/test-utils/redux.d.ts +16 -12
- package/lib/test-utils/redux.js +36 -17
- package/lib/test-utils/redux.js.map +1 -1
- package/lib/test-utils/router.d.ts +2 -2
- package/lib/test-utils/router.js.map +1 -1
- package/lib/utils/highlight.d.ts +1 -0
- package/lib/utils/index.d.ts +1 -2
- package/lib/utils/index.js +6 -23
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/lodeUtils.d.ts +3 -3
- package/lib/utils/lodeUtils.js +3 -7
- package/lib/utils/lodeUtils.js.map +1 -1
- package/lib/utils/path.d.ts +3 -1
- package/lib/utils/path.js +36 -2
- package/lib/utils/path.js.map +1 -1
- package/package.json +29 -15
- package/public/Looker.3.1.json +1343 -412
- package/public/Looker.4.0.json +3305 -661
- package/public/versions.json +1 -1
- package/src/ApiExplorer.tsx +160 -99
- package/src/{index.tsx → App.tsx} +1 -1
- package/src/StandaloneApiExplorer.tsx +38 -29
- package/src/components/DocActivityType/DocActivityType.tsx +3 -2
- package/src/components/DocCode/DocCode.tsx +7 -6
- package/src/components/DocMarkdown/DocMarkdown.spec.tsx +16 -11
- package/src/components/DocMarkdown/DocMarkdown.tsx +11 -9
- package/src/components/DocMethodSummary/DocMethodSummary.spec.tsx +2 -2
- package/src/components/DocMethodSummary/DocMethodSummary.tsx +8 -8
- package/src/components/DocMethodSummary/DocSummaryStatus.spec.tsx +5 -5
- package/src/components/DocMethodSummary/DocSummaryStatus.tsx +5 -7
- package/src/components/DocMethodSummary/index.tsx +1 -0
- package/src/components/DocMethodSummary/utils.spec.tsx +7 -7
- package/src/components/DocMethodSummary/utils.tsx +17 -23
- package/src/components/DocPseudo/DocParam.tsx +3 -2
- package/src/components/DocPseudo/DocParams.tsx +3 -2
- package/src/components/DocPseudo/DocPrimaryResponse.tsx +3 -2
- package/src/components/DocPseudo/DocPseudo.tsx +3 -2
- package/src/components/DocRateLimited/DocRateLimited.tsx +3 -2
- package/src/components/DocReferences/DocReferences.spec.tsx +19 -8
- package/src/components/DocReferences/DocReferences.tsx +10 -10
- package/src/components/DocReferences/utils.spec.tsx +1 -13
- package/src/components/DocReferences/utils.tsx +4 -39
- package/src/components/DocResponses/DocResponseTypes.tsx +15 -4
- package/src/components/DocResponses/DocResponses.spec.tsx +1 -1
- package/src/components/DocResponses/DocResponses.tsx +7 -5
- package/src/components/DocResponses/utils.ts +1 -1
- package/src/components/DocSDKs/DocDeclarations.tsx +3 -2
- package/src/components/DocSDKs/DocSDKs.spec.tsx +12 -5
- package/src/components/DocSDKs/DocSDKs.tsx +7 -7
- package/src/components/DocSDKs/utils.ts +1 -1
- package/src/components/DocSchema/DocSchema.tsx +3 -2
- package/src/components/DocSdkUsage/DocSdkExampleCell.tsx +2 -1
- package/src/components/DocSdkUsage/DocSdkUsage.spec.tsx +2 -2
- package/src/components/DocSdkUsage/DocSdkUsage.tsx +10 -8
- package/src/components/DocSdkUsage/utils.ts +4 -2
- package/src/components/DocSource/DocSource.spec.tsx +2 -1
- package/src/components/DocSource/DocSource.tsx +7 -4
- package/src/components/DocStatus/DocStatus.spec.tsx +1 -1
- package/src/components/DocStatus/DocStatus.tsx +3 -2
- package/src/components/DocTitle/DocTitle.tsx +4 -3
- package/src/{state/settings/action_creators.spec.ts → components/DocTypeSummary/DocTypeSummary.spec.tsx} +15 -10
- package/src/components/DocTypeSummary/DocTypeSummary.tsx +64 -0
- package/src/{state/action_creators.ts → components/DocTypeSummary/index.tsx} +1 -1
- package/src/components/ErrorBoundary/ErrorBoundary.spec.tsx +11 -9
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +1 -1
- package/src/components/ErrorBoundary/components/SomethingWentWrong/SomethingWentWrong.spec.tsx +6 -5
- package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.tsx +170 -6
- package/src/components/ExploreType/ExploreProperty.spec.tsx +15 -6
- package/src/components/ExploreType/ExploreProperty.tsx +26 -12
- package/src/components/ExploreType/ExploreType.spec.tsx +15 -31
- package/src/components/ExploreType/ExploreType.tsx +13 -6
- package/src/components/ExploreType/exploreUtils.tsx +3 -2
- package/src/components/Header/Header.spec.tsx +29 -37
- package/src/components/Header/Header.tsx +8 -4
- package/src/components/Header/index.ts +1 -1
- package/src/components/SelectorContainer/ApiSpecSelector.spec.tsx +12 -2
- package/src/components/SelectorContainer/ApiSpecSelector.tsx +9 -5
- package/src/components/SelectorContainer/SdkLanguageSelector.spec.tsx +13 -7
- package/src/components/SelectorContainer/SdkLanguageSelector.tsx +7 -14
- package/src/components/SelectorContainer/SelectorContainer.spec.tsx +19 -25
- package/src/components/SelectorContainer/SelectorContainer.tsx +8 -5
- package/src/components/SideNav/SearchMessage.tsx +3 -2
- package/src/components/SideNav/SideNav.spec.tsx +28 -41
- package/src/components/SideNav/SideNav.tsx +102 -68
- package/src/components/SideNav/{SideNavTags.spec.tsx → SideNavMethodTags.spec.tsx} +10 -8
- package/src/components/SideNav/{SideNavTags.tsx → SideNavMethodTags.tsx} +21 -19
- package/src/components/SideNav/SideNavMethods.spec.tsx +9 -5
- package/src/components/SideNav/SideNavMethods.tsx +78 -126
- package/src/components/SideNav/SideNavTypeTags.spec.tsx +79 -0
- package/src/{context/search/SearchContext.ts → components/SideNav/SideNavTypeTags.tsx} +27 -14
- package/src/components/SideNav/SideNavTypes.spec.tsx +13 -6
- package/src/components/SideNav/SideNavTypes.tsx +94 -43
- package/src/components/SideNav/{searchUtils.tsx → searchUtils.ts} +3 -3
- package/src/components/common/Loader.tsx +3 -2
- package/src/components/common/common.tsx +5 -15
- package/src/components/common/index.ts +2 -2
- package/src/components/index.ts +5 -4
- package/src/{context/lode/index.ts → index.ts} +4 -1
- package/src/reducers/index.ts +0 -1
- package/src/reducers/spec/actions.ts +1 -1
- package/src/reducers/spec/reducer.spec.ts +2 -1
- package/src/reducers/spec/reducer.ts +5 -3
- package/src/reducers/spec/utils.spec.ts +1 -1
- package/src/reducers/spec/utils.ts +18 -6
- package/src/routes/AppRouter.tsx +28 -15
- package/src/scenes/DiffScene/DiffScene.tsx +44 -13
- package/src/scenes/DiffScene/DocDiff/DiffBanner.tsx +3 -2
- package/src/scenes/DiffScene/DocDiff/DiffItem.spec.tsx +2 -1
- package/src/scenes/DiffScene/DocDiff/DiffItem.tsx +32 -49
- package/src/scenes/DiffScene/DocDiff/DiffLegend.tsx +3 -2
- package/src/scenes/DiffScene/DocDiff/DocDiff.tsx +3 -2
- package/src/scenes/DiffScene/DocDiff/docDiffUtils.tsx +2 -7
- package/src/scenes/DiffScene/diffUtils.spec.ts +2 -1
- package/src/scenes/DiffScene/diffUtils.ts +2 -2
- package/src/scenes/HomeScene/HomeScene.tsx +3 -2
- package/src/scenes/MethodScene/MethodScene.tsx +89 -44
- package/src/scenes/MethodScene/components/DocOperation.tsx +3 -2
- package/src/scenes/MethodScene/components/DocRequestBody.spec.tsx +2 -2
- package/src/scenes/MethodScene/components/DocRequestBody.tsx +8 -5
- package/src/scenes/{TagScene/TagScene.spec.tsx → MethodTagScene/MethodTagScene.spec.tsx} +5 -5
- package/src/scenes/{TagScene/TagScene.tsx → MethodTagScene/MethodTagScene.tsx} +23 -16
- package/src/{components/Collapser → scenes/MethodTagScene}/index.ts +1 -2
- package/src/scenes/{TagScene → MethodTagScene}/utils.spec.ts +1 -1
- package/src/scenes/{TagScene → MethodTagScene}/utils.ts +1 -1
- package/src/scenes/TypeScene/TypeScene.tsx +36 -24
- package/src/scenes/TypeTagScene/TypeTagScene.spec.tsx +103 -0
- package/src/scenes/TypeTagScene/TypeTagScene.tsx +93 -0
- package/src/scenes/{TagScene → TypeTagScene}/index.ts +1 -1
- package/src/{state/reducers.ts → scenes/TypeTagScene/utils.spec.ts} +8 -7
- package/src/{hooks/use_actions_hook.ts → scenes/TypeTagScene/utils.ts} +13 -10
- package/src/scenes/index.ts +2 -1
- package/src/state/index.ts +2 -2
- package/src/{reducers/search → state/lodes}/index.ts +2 -2
- package/src/state/lodes/sagas.spec.ts +92 -0
- package/src/state/{settings/reducer.ts → lodes/sagas.ts} +23 -21
- package/src/state/{settings/reducer.spec.ts → lodes/selectors.spec.ts} +15 -14
- package/src/state/{settings/actions.ts → lodes/selectors.ts} +7 -9
- package/src/state/lodes/slice.ts +69 -0
- package/src/state/settings/index.ts +1 -1
- package/src/state/settings/sagas.spec.ts +121 -0
- package/src/state/settings/sagas.ts +79 -0
- package/src/state/settings/selectors.spec.ts +16 -9
- package/src/state/settings/selectors.ts +14 -3
- package/src/state/settings/slice.ts +94 -0
- package/src/state/store.ts +22 -8
- package/src/{context/envAdaptor/EnvAdaptorContext.ts → test-data/declarations.ts} +17 -12
- package/src/test-data/examples.ts +1 -1
- package/src/test-data/index.ts +1 -0
- package/src/test-data/specs.ts +2 -1
- package/src/test-utils/index.ts +3 -14
- package/src/{context/lode/LodeContext.ts → test-utils/lodes.tsx} +15 -14
- package/src/test-utils/redux.tsx +46 -26
- package/src/test-utils/router.tsx +3 -2
- package/src/utils/index.ts +7 -2
- package/src/utils/lodeUtils.ts +5 -7
- package/src/utils/path.spec.ts +17 -3
- package/src/utils/path.ts +54 -4
- package/webpack.dev.config.js +3 -0
- package/webpack.prod.config.js +4 -0
- package/lib/components/Collapser/CollapserCard.d.ts +0 -9
- package/lib/components/Collapser/CollapserCard.js +0 -50
- package/lib/components/Collapser/CollapserCard.js.map +0 -1
- package/lib/components/Collapser/index.d.ts +0 -1
- package/lib/components/Collapser/index.js +0 -14
- package/lib/components/Collapser/index.js.map +0 -1
- package/lib/components/SideNav/SearchCriteriaSelector.d.ts +0 -2
- package/lib/components/SideNav/SearchCriteriaSelector.js +0 -57
- package/lib/components/SideNav/SearchCriteriaSelector.js.map +0 -1
- package/lib/components/SideNav/SideNavTags.d.ts +0 -9
- package/lib/components/SideNav/SideNavTags.js +0 -30
- package/lib/components/SideNav/SideNavTags.js.map +0 -1
- package/lib/context/envAdaptor/EnvAdaptorContext.d.ts +0 -7
- package/lib/context/envAdaptor/EnvAdaptorContext.js +0 -18
- package/lib/context/envAdaptor/EnvAdaptorContext.js.map +0 -1
- package/lib/context/envAdaptor/index.d.ts +0 -1
- package/lib/context/envAdaptor/index.js +0 -20
- package/lib/context/envAdaptor/index.js.map +0 -1
- package/lib/context/index.d.ts +0 -3
- package/lib/context/index.js +0 -48
- package/lib/context/index.js.map +0 -1
- package/lib/context/lode/LodeContext.d.ts +0 -9
- package/lib/context/lode/LodeContext.js +0 -21
- package/lib/context/lode/LodeContext.js.map +0 -1
- package/lib/context/lode/index.d.ts +0 -1
- package/lib/context/lode/index.js +0 -20
- package/lib/context/search/SearchContext.d.ts +0 -9
- package/lib/context/search/SearchContext.js +0 -19
- package/lib/context/search/index.d.ts +0 -1
- package/lib/context/search/index.js +0 -20
- package/lib/context/search/index.js.map +0 -1
- package/lib/esm/components/Collapser/CollapserCard.js +0 -34
- package/lib/esm/components/Collapser/CollapserCard.js.map +0 -1
- package/lib/esm/components/Collapser/index.js +0 -2
- package/lib/esm/components/Collapser/index.js.map +0 -1
- package/lib/esm/components/SideNav/SearchCriteriaSelector.js +0 -38
- package/lib/esm/components/SideNav/SearchCriteriaSelector.js.map +0 -1
- package/lib/esm/components/SideNav/SideNavTags.js +0 -17
- package/lib/esm/components/SideNav/SideNavTags.js.map +0 -1
- package/lib/esm/context/envAdaptor/EnvAdaptorContext.js +0 -7
- package/lib/esm/context/envAdaptor/EnvAdaptorContext.js.map +0 -1
- package/lib/esm/context/envAdaptor/index.js +0 -2
- package/lib/esm/context/envAdaptor/index.js.map +0 -1
- package/lib/esm/context/index.js +0 -4
- package/lib/esm/context/index.js.map +0 -1
- package/lib/esm/context/lode/LodeContext.js +0 -11
- package/lib/esm/context/lode/LodeContext.js.map +0 -1
- package/lib/esm/context/lode/index.js +0 -2
- package/lib/esm/context/lode/index.js.map +0 -1
- package/lib/esm/context/search/SearchContext.js +0 -8
- package/lib/esm/context/search/SearchContext.js.map +0 -1
- package/lib/esm/context/search/index.js +0 -2
- package/lib/esm/context/search/index.js.map +0 -1
- package/lib/esm/hooks/index.js +0 -2
- package/lib/esm/hooks/index.js.map +0 -1
- package/lib/esm/hooks/use_actions_hook.js +0 -11
- package/lib/esm/hooks/use_actions_hook.js.map +0 -1
- package/lib/esm/reducers/search/actions.js +0 -13
- package/lib/esm/reducers/search/actions.js.map +0 -1
- package/lib/esm/reducers/search/index.js +0 -3
- package/lib/esm/reducers/search/index.js.map +0 -1
- package/lib/esm/reducers/search/reducer.js +0 -31
- package/lib/esm/reducers/search/reducer.js.map +0 -1
- package/lib/esm/scenes/MethodScene/utils.js +0 -72
- package/lib/esm/scenes/MethodScene/utils.js.map +0 -1
- package/lib/esm/scenes/TagScene/TagScene.js.map +0 -1
- package/lib/esm/scenes/TagScene/index.js +0 -2
- package/lib/esm/scenes/TagScene/index.js.map +0 -1
- package/lib/esm/scenes/TagScene/utils.js.map +0 -1
- package/lib/esm/state/action_creators.js +0 -2
- package/lib/esm/state/action_creators.js.map +0 -1
- package/lib/esm/state/reducers.js +0 -6
- package/lib/esm/state/reducers.js.map +0 -1
- package/lib/esm/state/settings/action_creators.js +0 -6
- package/lib/esm/state/settings/action_creators.js.map +0 -1
- package/lib/esm/state/settings/actions.js +0 -6
- package/lib/esm/state/settings/reducer.js +0 -19
- package/lib/esm/state/settings/reducer.js.map +0 -1
- package/lib/esm/test-utils/render_with_lode.js +0 -19
- package/lib/esm/test-utils/render_with_lode.js.map +0 -1
- package/lib/esm/test-utils/render_with_search.js +0 -34
- package/lib/esm/test-utils/render_with_search.js.map +0 -1
- package/lib/esm/utils/envAdaptor.js +0 -68
- package/lib/esm/utils/envAdaptor.js.map +0 -1
- package/lib/hooks/index.d.ts +0 -1
- package/lib/hooks/index.js +0 -14
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/use_actions_hook.d.ts +0 -2
- package/lib/hooks/use_actions_hook.js +0 -24
- package/lib/hooks/use_actions_hook.js.map +0 -1
- package/lib/reducers/search/actions.d.ts +0 -4
- package/lib/reducers/search/actions.js +0 -25
- package/lib/reducers/search/actions.js.map +0 -1
- package/lib/reducers/search/index.d.ts +0 -2
- package/lib/reducers/search/index.js.map +0 -1
- package/lib/reducers/search/reducer.d.ts +0 -11
- package/lib/reducers/search/reducer.js +0 -43
- package/lib/reducers/search/reducer.js.map +0 -1
- package/lib/scenes/MethodScene/utils.d.ts +0 -3
- package/lib/scenes/MethodScene/utils.js +0 -81
- package/lib/scenes/MethodScene/utils.js.map +0 -1
- package/lib/scenes/TagScene/TagScene.d.ts +0 -7
- package/lib/scenes/TagScene/TagScene.js.map +0 -1
- package/lib/scenes/TagScene/index.d.ts +0 -1
- package/lib/scenes/TagScene/index.js +0 -14
- package/lib/scenes/TagScene/index.js.map +0 -1
- package/lib/scenes/TagScene/utils.js.map +0 -1
- package/lib/state/action_creators.d.ts +0 -1
- package/lib/state/action_creators.js +0 -19
- package/lib/state/reducers.d.ts +0 -4
- package/lib/state/reducers.js +0 -16
- package/lib/state/settings/action_creators.d.ts +0 -2
- package/lib/state/settings/action_creators.js +0 -16
- package/lib/state/settings/action_creators.js.map +0 -1
- package/lib/state/settings/actions.d.ts +0 -8
- package/lib/state/settings/actions.js +0 -13
- package/lib/state/settings/actions.js.map +0 -1
- package/lib/state/settings/reducer.d.ts +0 -6
- package/lib/state/settings/reducer.js +0 -31
- package/lib/state/settings/reducer.js.map +0 -1
- package/lib/test-utils/render_with_lode.d.ts +0 -9
- package/lib/test-utils/render_with_lode.js +0 -36
- package/lib/test-utils/render_with_lode.js.map +0 -1
- package/lib/test-utils/render_with_search.d.ts +0 -4
- package/lib/test-utils/render_with_search.js +0 -52
- package/lib/test-utils/render_with_search.js.map +0 -1
- package/lib/utils/envAdaptor.d.ts +0 -27
- package/lib/utils/envAdaptor.js +0 -81
- package/lib/utils/envAdaptor.js.map +0 -1
- package/src/components/Collapser/CollapserCard.spec.tsx +0 -50
- package/src/components/Collapser/CollapserCard.tsx +0 -76
- package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/somethingWentWrong.svg +0 -45
- package/src/components/SideNav/SearchCriteriaSelector.tsx +0 -75
- package/src/context/envAdaptor/index.ts +0 -29
- package/src/context/index.ts +0 -28
- package/src/context/search/index.ts +0 -26
- package/src/hooks/index.ts +0 -26
- package/src/reducers/search/actions.spec.ts +0 -50
- package/src/reducers/search/reducer.spec.ts +0 -72
- package/src/scenes/MethodScene/utils.spec.ts +0 -95
- package/src/scenes/MethodScene/utils.ts +0 -121
- package/src/state/settings/action_creators.ts +0 -33
- package/src/test-utils/render_with_lode.tsx +0 -74
- package/src/test-utils/render_with_search.tsx +0 -69
- package/src/utils/envAdaptor.spec.ts +0 -53
- package/src/utils/envAdaptor.ts +0 -120
|
@@ -23,34 +23,27 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
import
|
|
26
|
+
import type { FC } from 'react'
|
|
27
|
+
import React, { useEffect, useState } from 'react'
|
|
28
|
+
import { useHistory, useParams } from 'react-router-dom'
|
|
27
29
|
import { Grid, ButtonToggle, ButtonItem } from '@looker/components'
|
|
28
|
-
import { ApiModel } from '@looker/sdk-codegen'
|
|
29
|
-
import { useParams, useHistory } from 'react-router-dom'
|
|
30
|
+
import type { ApiModel } from '@looker/sdk-codegen'
|
|
30
31
|
import { ApixSection, DocTitle, DocMethodSummary, Link } from '../../components'
|
|
31
32
|
import { buildMethodPath } from '../../utils'
|
|
32
33
|
import { getOperations } from './utils'
|
|
33
34
|
|
|
34
|
-
interface
|
|
35
|
+
interface MethodTagSceneProps {
|
|
35
36
|
api: ApiModel
|
|
36
37
|
}
|
|
37
38
|
|
|
38
|
-
interface
|
|
39
|
+
interface MethodTagSceneParams {
|
|
39
40
|
specKey: string
|
|
40
41
|
methodTag: string
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
export const
|
|
44
|
-
const { specKey, methodTag } = useParams<
|
|
44
|
+
export const MethodTagScene: FC<MethodTagSceneProps> = ({ api }) => {
|
|
45
|
+
const { specKey, methodTag } = useParams<MethodTagSceneParams>()
|
|
45
46
|
const history = useHistory()
|
|
46
|
-
if (!(methodTag in api.tags)) {
|
|
47
|
-
history.push('/methods')
|
|
48
|
-
}
|
|
49
|
-
const methods = api.tags[methodTag]
|
|
50
|
-
const tag = Object.values(api.spec.tags!).find(
|
|
51
|
-
(tag) => tag.name === methodTag
|
|
52
|
-
)!
|
|
53
|
-
const operations = getOperations(methods)
|
|
54
47
|
const [value, setValue] = useState('ALL')
|
|
55
48
|
|
|
56
49
|
useEffect(() => {
|
|
@@ -58,6 +51,20 @@ export const TagScene: FC<TagSceneProps> = ({ api }) => {
|
|
|
58
51
|
setValue('ALL')
|
|
59
52
|
}, [methodTag])
|
|
60
53
|
|
|
54
|
+
const methods = api.tags[methodTag]
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!methods) {
|
|
57
|
+
history.push(`/${specKey}/methods`)
|
|
58
|
+
}
|
|
59
|
+
}, [history, methods])
|
|
60
|
+
if (!methods) {
|
|
61
|
+
return <></>
|
|
62
|
+
}
|
|
63
|
+
const tag = Object.values(api.spec.tags!).find(
|
|
64
|
+
(tag) => tag.name === methodTag
|
|
65
|
+
)!
|
|
66
|
+
const operations = getOperations(methods)
|
|
67
|
+
|
|
61
68
|
return (
|
|
62
69
|
<ApixSection>
|
|
63
70
|
<DocTitle>{`${tag.name}: ${tag.description}`}</DocTitle>
|
|
@@ -73,7 +80,7 @@ export const TagScene: FC<TagSceneProps> = ({ api }) => {
|
|
|
73
80
|
</ButtonToggle>
|
|
74
81
|
{Object.values(methods).map(
|
|
75
82
|
(method, index) =>
|
|
76
|
-
(value ===
|
|
83
|
+
(value === 'ALL' || value === method.httpMethod) && (
|
|
77
84
|
<Link
|
|
78
85
|
key={index}
|
|
79
86
|
to={buildMethodPath(specKey, tag.name, method.name)}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
import { api } from '../../test-data'
|
|
27
27
|
import { getOperations } from './utils'
|
|
28
28
|
|
|
29
|
-
describe('
|
|
29
|
+
describe('MethodTagScene utils', () => {
|
|
30
30
|
test('getOperations returns a unique list of operations', () => {
|
|
31
31
|
const actual = getOperations(api.tags.Query)
|
|
32
32
|
expect(actual).toHaveLength(new Set(actual).size)
|
|
@@ -24,9 +24,11 @@
|
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
import {
|
|
27
|
+
import type { FC } from 'react'
|
|
28
|
+
import React, { useEffect } from 'react'
|
|
29
|
+
import type { ApiModel } from '@looker/sdk-codegen'
|
|
30
|
+
import { typeRefs, methodRefs } from '@looker/sdk-codegen'
|
|
31
|
+
import { useHistory, useParams } from 'react-router-dom'
|
|
30
32
|
import { Space, Box } from '@looker/components'
|
|
31
33
|
|
|
32
34
|
import {
|
|
@@ -51,28 +53,38 @@ interface DocTypeParams {
|
|
|
51
53
|
export const TypeScene: FC<DocTypeProps> = ({ api }) => {
|
|
52
54
|
const { specKey, typeName } = useParams<DocTypeParams>()
|
|
53
55
|
const type = api.types[typeName]
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
56
|
+
const history = useHistory()
|
|
57
|
+
const typesUsed = typeRefs(api, type?.customTypes)
|
|
58
|
+
const methodsUsedBy = methodRefs(api, type?.methodRefs)
|
|
59
|
+
const typesUsedBy = typeRefs(api, type?.parentTypes)
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!type) {
|
|
62
|
+
history.push(`/${specKey}/types`)
|
|
63
|
+
}
|
|
64
|
+
}, [history, specKey, type])
|
|
57
65
|
|
|
58
66
|
return (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
<>
|
|
68
|
+
{type && (
|
|
69
|
+
<ApixSection>
|
|
70
|
+
<Space>
|
|
71
|
+
<DocTitle>{type.name}</DocTitle>
|
|
72
|
+
<DocSource type={type} />
|
|
73
|
+
</Space>
|
|
74
|
+
<Box pb="xlarge">
|
|
75
|
+
<ExploreType api={api} type={type} />
|
|
76
|
+
</Box>
|
|
77
|
+
<DocReferences
|
|
78
|
+
typesUsed={typesUsed}
|
|
79
|
+
typesUsedBy={typesUsedBy}
|
|
80
|
+
methodsUsedBy={methodsUsedBy}
|
|
81
|
+
api={api}
|
|
82
|
+
specKey={specKey}
|
|
83
|
+
/>
|
|
84
|
+
<DocSDKs type={type} api={api} />
|
|
85
|
+
<DocSchema object={type.schema} />
|
|
86
|
+
</ApixSection>
|
|
87
|
+
)}
|
|
88
|
+
</>
|
|
77
89
|
)
|
|
78
90
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2021 Looker Data Sciences, Inc.
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
24
|
+
|
|
25
|
+
*/
|
|
26
|
+
import React from 'react'
|
|
27
|
+
import { Route } from 'react-router-dom'
|
|
28
|
+
import { screen, waitFor } from '@testing-library/react'
|
|
29
|
+
import userEvent from '@testing-library/user-event'
|
|
30
|
+
|
|
31
|
+
import { api } from '../../test-data'
|
|
32
|
+
import { renderWithRouterAndReduxProvider } from '../../test-utils'
|
|
33
|
+
import { TypeTagScene } from './TypeTagScene'
|
|
34
|
+
|
|
35
|
+
const opBtnNames = /ALL|SPECIFICATION|WRITE|REQUEST|ENUMERATED/
|
|
36
|
+
|
|
37
|
+
const path = '/:specKey/types/:typeTag'
|
|
38
|
+
|
|
39
|
+
describe('TypeTagScene', () => {
|
|
40
|
+
Element.prototype.scrollTo = jest.fn()
|
|
41
|
+
|
|
42
|
+
test('it renders type buttons and all methods for a given type tag', () => {
|
|
43
|
+
renderWithRouterAndReduxProvider(
|
|
44
|
+
<Route path={path}>
|
|
45
|
+
<TypeTagScene api={api} />
|
|
46
|
+
</Route>,
|
|
47
|
+
['/3.1/types/Dashboard']
|
|
48
|
+
)
|
|
49
|
+
expect(
|
|
50
|
+
screen.getAllByRole('button', {
|
|
51
|
+
name: opBtnNames,
|
|
52
|
+
})
|
|
53
|
+
).toHaveLength(4)
|
|
54
|
+
expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(
|
|
55
|
+
Object.keys(api.typeTags.Dashboard).length
|
|
56
|
+
)
|
|
57
|
+
expect(screen.getByText('DashboardBase').closest('a')).toHaveAttribute(
|
|
58
|
+
'href',
|
|
59
|
+
'/3.1/types/Dashboard/DashboardBase'
|
|
60
|
+
)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
test('it only renders operation buttons for operations that exist under that tag', () => {
|
|
64
|
+
renderWithRouterAndReduxProvider(
|
|
65
|
+
<Route path={path}>
|
|
66
|
+
<TypeTagScene api={api} />
|
|
67
|
+
</Route>,
|
|
68
|
+
['/3.1/types/DataAction']
|
|
69
|
+
)
|
|
70
|
+
expect(
|
|
71
|
+
screen.getAllByRole('button', {
|
|
72
|
+
name: opBtnNames,
|
|
73
|
+
})
|
|
74
|
+
).toHaveLength(2)
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
test('it filters methods by operation type', async () => {
|
|
78
|
+
renderWithRouterAndReduxProvider(
|
|
79
|
+
<Route path={path}>
|
|
80
|
+
<TypeTagScene api={api} />
|
|
81
|
+
</Route>,
|
|
82
|
+
['/3.1/types/Look']
|
|
83
|
+
)
|
|
84
|
+
expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(
|
|
85
|
+
Object.keys(api.typeTags.Look).length
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(
|
|
89
|
+
Object.keys(api.typeTags.Look).length
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
/** Filter by SPECIFICATION */
|
|
93
|
+
userEvent.click(screen.getByRole('button', { name: 'SPECIFICATION' }))
|
|
94
|
+
await waitFor(() => {
|
|
95
|
+
expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(5)
|
|
96
|
+
})
|
|
97
|
+
/** Filter by REQUEST */
|
|
98
|
+
userEvent.click(screen.getByRole('button', { name: 'REQUEST' }))
|
|
99
|
+
await waitFor(() => {
|
|
100
|
+
expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(2)
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2021 Looker Data Sciences, Inc.
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
24
|
+
|
|
25
|
+
*/
|
|
26
|
+
import type { FC } from 'react'
|
|
27
|
+
import React, { useEffect, useState } from 'react'
|
|
28
|
+
import { Grid, ButtonToggle, ButtonItem } from '@looker/components'
|
|
29
|
+
import type { ApiModel } from '@looker/sdk-codegen'
|
|
30
|
+
import { useParams, useHistory } from 'react-router-dom'
|
|
31
|
+
import { ApixSection, DocTitle, DocTypeSummary, Link } from '../../components'
|
|
32
|
+
import { buildTypePath } from '../../utils'
|
|
33
|
+
import { getMetaTypes } from './utils'
|
|
34
|
+
|
|
35
|
+
interface TypeTagSceneProps {
|
|
36
|
+
api: ApiModel
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface TypeTagSceneParams {
|
|
40
|
+
specKey: string
|
|
41
|
+
typeTag: string
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const TypeTagScene: FC<TypeTagSceneProps> = ({ api }) => {
|
|
45
|
+
const { specKey, typeTag } = useParams<TypeTagSceneParams>()
|
|
46
|
+
const history = useHistory()
|
|
47
|
+
const [value, setValue] = useState('ALL')
|
|
48
|
+
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
/** Reset ButtonToggle value on route change */
|
|
51
|
+
setValue('ALL')
|
|
52
|
+
}, [typeTag])
|
|
53
|
+
|
|
54
|
+
const types = api.typeTags[typeTag]
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!types) {
|
|
57
|
+
history.push(`/${specKey}/types`)
|
|
58
|
+
}
|
|
59
|
+
}, [history, types])
|
|
60
|
+
|
|
61
|
+
if (!types) {
|
|
62
|
+
return <></>
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const tag = Object.values(api.spec.tags!).find((tag) => tag.name === typeTag)!
|
|
66
|
+
const metaTypes = getMetaTypes(types)
|
|
67
|
+
return (
|
|
68
|
+
<ApixSection>
|
|
69
|
+
<DocTitle>{`${tag.name}: ${tag.description}`}</DocTitle>
|
|
70
|
+
<ButtonToggle mb="small" mt="xlarge" value={value} onChange={setValue}>
|
|
71
|
+
<ButtonItem key="ALL" px="large" py="xsmall">
|
|
72
|
+
ALL
|
|
73
|
+
</ButtonItem>
|
|
74
|
+
{metaTypes.map((op) => (
|
|
75
|
+
<ButtonItem key={op} px="large" py="xsmall">
|
|
76
|
+
{op}
|
|
77
|
+
</ButtonItem>
|
|
78
|
+
))}
|
|
79
|
+
</ButtonToggle>
|
|
80
|
+
{Object.values(types).map(
|
|
81
|
+
(type, index) =>
|
|
82
|
+
(value === 'ALL' ||
|
|
83
|
+
value === type.metaType.toString().toUpperCase()) && (
|
|
84
|
+
<Link key={index} to={buildTypePath(specKey, tag.name, type.name)}>
|
|
85
|
+
<Grid columns={1} py="xsmall">
|
|
86
|
+
<DocTypeSummary key={index} type={type} />
|
|
87
|
+
</Grid>
|
|
88
|
+
</Link>
|
|
89
|
+
)
|
|
90
|
+
)}
|
|
91
|
+
</ApixSection>
|
|
92
|
+
)
|
|
93
|
+
}
|
|
@@ -23,11 +23,12 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
import { api } from '../../test-data'
|
|
27
|
+
import { getMetaTypes } from './utils'
|
|
28
|
+
|
|
29
|
+
describe('TypeTagScene utils', () => {
|
|
30
|
+
test('getMetaTypes returns a unique list of MetaTypes', () => {
|
|
31
|
+
const actual = getMetaTypes(api.typeTags.Query)
|
|
32
|
+
expect(actual).toHaveLength(4)
|
|
33
|
+
})
|
|
31
34
|
})
|
|
32
|
-
|
|
33
|
-
export type RootState = ReturnType<typeof reducers>
|
|
@@ -23,14 +23,17 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
|
|
27
|
+
import type { TypeList } from '@looker/sdk-codegen'
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Given a list of types it returns a list of distinct types
|
|
31
|
+
* @param types A list of types
|
|
32
|
+
*/
|
|
33
|
+
export const getMetaTypes = (types: TypeList) => {
|
|
34
|
+
const typeSet = new Set<string>()
|
|
35
|
+
Object.values(types).forEach((type) => {
|
|
36
|
+
typeSet.add(type.metaType.toString().toUpperCase())
|
|
37
|
+
})
|
|
38
|
+
return Array.from(typeSet.values())
|
|
36
39
|
}
|
package/src/scenes/index.ts
CHANGED
|
@@ -26,4 +26,5 @@
|
|
|
26
26
|
export { HomeScene } from './HomeScene'
|
|
27
27
|
export { MethodScene } from './MethodScene'
|
|
28
28
|
export { TypeScene } from './TypeScene'
|
|
29
|
-
export {
|
|
29
|
+
export { MethodTagScene } from './MethodTagScene'
|
|
30
|
+
export { TypeTagScene } from './TypeTagScene'
|
package/src/state/index.ts
CHANGED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2021 Looker Data Sciences, Inc.
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
24
|
+
|
|
25
|
+
*/
|
|
26
|
+
import ReduxSagaTester from 'redux-saga-tester'
|
|
27
|
+
import { examples, declarations } from '../../test-data'
|
|
28
|
+
import * as lodeUtils from '../../utils/lodeUtils'
|
|
29
|
+
import * as sagas from './sagas'
|
|
30
|
+
import { lodeActions, lodesSlice } from './slice'
|
|
31
|
+
|
|
32
|
+
describe('Lode sagas', () => {
|
|
33
|
+
let sagaTester: ReduxSagaTester<any>
|
|
34
|
+
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
jest.resetAllMocks()
|
|
37
|
+
sagaTester = new ReduxSagaTester({
|
|
38
|
+
initialState: { lodes: { examples, declarations } },
|
|
39
|
+
reducers: {
|
|
40
|
+
lodes: lodesSlice.reducer,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
sagaTester.start(sagas.saga)
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
describe('initSaga', () => {
|
|
47
|
+
const { initLodesAction, initLodesSuccessAction, initLodesFailureAction } =
|
|
48
|
+
lodeActions
|
|
49
|
+
const examplesLodeUrl = 'https://foo.com/examples.json'
|
|
50
|
+
const declarationsLodeUrl = 'https://foo.com/declarations.json'
|
|
51
|
+
|
|
52
|
+
test('sends initLodesSuccessAction with examples and declarations on success', async () => {
|
|
53
|
+
jest
|
|
54
|
+
.spyOn(lodeUtils, 'getLoded')
|
|
55
|
+
.mockResolvedValueOnce({ examples, declarations })
|
|
56
|
+
|
|
57
|
+
sagaTester.dispatch(
|
|
58
|
+
initLodesAction({ examplesLodeUrl, declarationsLodeUrl })
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
await sagaTester.waitFor('lodes/initLodesSuccessAction')
|
|
62
|
+
const calledActions = sagaTester.getCalledActions()
|
|
63
|
+
expect(calledActions).toHaveLength(2)
|
|
64
|
+
expect(calledActions[0]).toEqual(
|
|
65
|
+
initLodesAction({ examplesLodeUrl, declarationsLodeUrl })
|
|
66
|
+
)
|
|
67
|
+
expect(calledActions[1]).toEqual(
|
|
68
|
+
initLodesSuccessAction({
|
|
69
|
+
examples,
|
|
70
|
+
declarations,
|
|
71
|
+
})
|
|
72
|
+
)
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
test('sends initLodesFailureAction on error', async () => {
|
|
76
|
+
const error = new Error('boom')
|
|
77
|
+
jest.spyOn(lodeUtils, 'getLoded').mockRejectedValueOnce(error)
|
|
78
|
+
|
|
79
|
+
sagaTester.dispatch(
|
|
80
|
+
initLodesAction({ examplesLodeUrl, declarationsLodeUrl })
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
await sagaTester.waitFor('lodes/initLodesFailureAction')
|
|
84
|
+
const calledActions = sagaTester.getCalledActions()
|
|
85
|
+
expect(calledActions).toHaveLength(2)
|
|
86
|
+
expect(calledActions[0]).toEqual(
|
|
87
|
+
initLodesAction({ examplesLodeUrl, declarationsLodeUrl })
|
|
88
|
+
)
|
|
89
|
+
expect(calledActions[1]).toEqual(initLodesFailureAction(error))
|
|
90
|
+
})
|
|
91
|
+
})
|
|
92
|
+
})
|
|
@@ -23,27 +23,29 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
import { call, put, takeEvery } from 'typed-redux-saga'
|
|
27
|
+
import type { PayloadAction } from '@reduxjs/toolkit'
|
|
28
|
+
|
|
29
|
+
import { getLoded } from '../../utils'
|
|
30
|
+
import type { InitPayload } from './slice'
|
|
31
|
+
import { lodeActions } from './slice'
|
|
32
|
+
|
|
33
|
+
function* initSaga(action: PayloadAction<InitPayload>) {
|
|
34
|
+
const { initLodesSuccessAction, initLodesFailureAction } = lodeActions
|
|
35
|
+
try {
|
|
36
|
+
const lode = yield* call(
|
|
37
|
+
getLoded,
|
|
38
|
+
action.payload.examplesLodeUrl,
|
|
39
|
+
action.payload.declarationsLodeUrl
|
|
40
|
+
)
|
|
41
|
+
yield* put(initLodesSuccessAction(lode))
|
|
42
|
+
} catch (error: any) {
|
|
43
|
+
yield* put(initLodesFailureAction(error))
|
|
44
|
+
}
|
|
30
45
|
}
|
|
31
46
|
|
|
32
|
-
export
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export const settingsReducer = (
|
|
38
|
-
state: SettingsState = defaultSettingsState,
|
|
39
|
-
action: SettingsAction
|
|
40
|
-
): SettingsState => {
|
|
41
|
-
switch (action.type) {
|
|
42
|
-
case SettingsActionTypes.SET_SDK_LANGUAGE:
|
|
43
|
-
return {
|
|
44
|
-
sdkLanguage: action.payload,
|
|
45
|
-
}
|
|
46
|
-
default:
|
|
47
|
-
return state
|
|
48
|
-
}
|
|
47
|
+
export function* saga() {
|
|
48
|
+
const { initLodesAction } = lodeActions
|
|
49
|
+
|
|
50
|
+
yield* takeEvery(initLodesAction, initSaga)
|
|
49
51
|
}
|
|
@@ -23,19 +23,20 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
import { createTestStore } from '../../test-utils'
|
|
27
|
+
import { declarations, examples } from '../../test-data'
|
|
28
|
+
import { selectDeclarationsLode, selectExamplesLode } from './selectors'
|
|
29
|
+
|
|
30
|
+
const testStore = createTestStore({ lodes: { examples, declarations } })
|
|
31
|
+
|
|
32
|
+
describe('Lode selectors', () => {
|
|
33
|
+
const state = testStore.getState()
|
|
34
|
+
|
|
35
|
+
test('selectExamplesLode selects', () => {
|
|
36
|
+
expect(selectExamplesLode(state)).toEqual(examples)
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
test('selectDeclarationsLode selects', () => {
|
|
40
|
+
expect(selectDeclarationsLode(state)).toEqual(declarations)
|
|
40
41
|
})
|
|
41
42
|
})
|
|
@@ -23,14 +23,12 @@
|
|
|
23
23
|
SOFTWARE.
|
|
24
24
|
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
|
-
SET_SDK_LANGUAGE = 'SET_SDK_LANGUAGE',
|
|
28
|
-
}
|
|
26
|
+
import type { RootState } from '../store'
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
export interface SetSdkLanguageAction {
|
|
32
|
-
type: SettingsActionTypes.SET_SDK_LANGUAGE
|
|
33
|
-
payload: string
|
|
34
|
-
}
|
|
28
|
+
const selectLodeState = (state: RootState) => state.lodes
|
|
35
29
|
|
|
36
|
-
export
|
|
30
|
+
export const selectExamplesLode = (state: RootState) =>
|
|
31
|
+
selectLodeState(state).examples
|
|
32
|
+
|
|
33
|
+
export const selectDeclarationsLode = (state: RootState) =>
|
|
34
|
+
selectLodeState(state).declarations
|