Compare commits
5 Commits
fix/action
...
pr/jamesge
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75e2199cb5 | ||
|
|
dacecf3c17 | ||
|
|
ae57e7b5b5 | ||
|
|
e23bc2d864 | ||
|
|
2affb21d22 |
@@ -313,10 +313,12 @@
|
|||||||
"export": {
|
"export": {
|
||||||
"as_json": "Export as JSON",
|
"as_json": "Export as JSON",
|
||||||
"create_secret_gist": "Create secret Gist",
|
"create_secret_gist": "Create secret Gist",
|
||||||
|
"create_secret_gist_tooltip_text": "Export as secret Gist",
|
||||||
"failed": "Something went wrong while exporting",
|
"failed": "Something went wrong while exporting",
|
||||||
"gist_created": "Gist created",
|
"secret_gist_success": "Successfully exported as secret Gist",
|
||||||
"require_github": "Login with GitHub to create secret gist",
|
"require_github": "Login with GitHub to create secret gist",
|
||||||
"title": "Export"
|
"title": "Export",
|
||||||
|
"success": "Successfully exported"
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"all": "All",
|
"all": "All",
|
||||||
|
|||||||
11
packages/hoppscotch-common/src/components.d.ts
vendored
11
packages/hoppscotch-common/src/components.d.ts
vendored
@@ -1,11 +1,11 @@
|
|||||||
/* eslint-disable */
|
// generated by unplugin-vue-components
|
||||||
/* prettier-ignore */
|
// We suggest you to commit this file into source control
|
||||||
// @ts-nocheck
|
|
||||||
// Generated by unplugin-vue-components
|
|
||||||
// Read more: https://github.com/vuejs/core/pull/3399
|
// Read more: https://github.com/vuejs/core/pull/3399
|
||||||
|
import '@vue/runtime-core'
|
||||||
|
|
||||||
export {}
|
export {}
|
||||||
|
|
||||||
declare module 'vue' {
|
declare module '@vue/runtime-core' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
AppActionHandler: typeof import('./components/app/ActionHandler.vue')['default']
|
AppActionHandler: typeof import('./components/app/ActionHandler.vue')['default']
|
||||||
AppBanner: typeof import('./components/app/Banner.vue')['default']
|
AppBanner: typeof import('./components/app/Banner.vue')['default']
|
||||||
@@ -210,4 +210,5 @@ declare module 'vue' {
|
|||||||
WorkspaceCurrent: typeof import('./components/workspace/Current.vue')['default']
|
WorkspaceCurrent: typeof import('./components/workspace/Current.vue')['default']
|
||||||
WorkspaceSelector: typeof import('./components/workspace/Selector.vue')['default']
|
WorkspaceSelector: typeof import('./components/workspace/Selector.vue')['default']
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<Splitpanes
|
<Splitpanes
|
||||||
|
class="smart-splitter"
|
||||||
:rtl="SIDEBAR_ON_LEFT && mdAndLarger"
|
:rtl="SIDEBAR_ON_LEFT && mdAndLarger"
|
||||||
:class="{
|
:class="{
|
||||||
'!flex-row-reverse': SIDEBAR_ON_LEFT && mdAndLarger,
|
'!flex-row-reverse': SIDEBAR_ON_LEFT && mdAndLarger,
|
||||||
'smart-splitter': SIDEBAR && hasSidebar,
|
|
||||||
'no-splitter': !(SIDEBAR && hasSidebar),
|
|
||||||
}"
|
}"
|
||||||
:horizontal="!mdAndLarger"
|
:horizontal="!mdAndLarger"
|
||||||
@resize="setPaneEvent($event, 'vertical')"
|
@resize="setPaneEvent($event, 'vertical')"
|
||||||
>
|
>
|
||||||
<Pane
|
<Pane
|
||||||
:size="SIDEBAR && hasSidebar ? PANE_MAIN_SIZE : 100"
|
:size="PANE_MAIN_SIZE"
|
||||||
min-size="65"
|
min-size="65"
|
||||||
class="flex flex-col !overflow-auto"
|
class="flex flex-col !overflow-auto"
|
||||||
>
|
>
|
||||||
@@ -37,8 +36,9 @@
|
|||||||
</Splitpanes>
|
</Splitpanes>
|
||||||
</Pane>
|
</Pane>
|
||||||
<Pane
|
<Pane
|
||||||
:size="SIDEBAR && hasSidebar ? PANE_SIDEBAR_SIZE : 0"
|
v-if="SIDEBAR && hasSidebar"
|
||||||
:min-size="25"
|
:size="PANE_SIDEBAR_SIZE"
|
||||||
|
min-size="25"
|
||||||
class="flex flex-col !overflow-auto bg-primaryContrast"
|
class="flex flex-col !overflow-auto bg-primaryContrast"
|
||||||
>
|
>
|
||||||
<slot name="sidebar" />
|
<slot name="sidebar" />
|
||||||
|
|||||||
@@ -9,7 +9,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { HoppCollection } from "@hoppscotch/data"
|
||||||
import * as E from "fp-ts/Either"
|
import * as E from "fp-ts/Either"
|
||||||
|
import { PropType, computed, ref } from "vue"
|
||||||
|
|
||||||
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
||||||
import { UrlSource } from "~/helpers/import-export/import/import-sources/UrlSource"
|
import { UrlSource } from "~/helpers/import-export/import/import-sources/UrlSource"
|
||||||
|
|
||||||
@@ -24,11 +27,9 @@ import {
|
|||||||
} from "~/helpers/import-export/import/importers"
|
} from "~/helpers/import-export/import/importers"
|
||||||
|
|
||||||
import { defineStep } from "~/composables/step-components"
|
import { defineStep } from "~/composables/step-components"
|
||||||
import { PropType, computed, ref } from "vue"
|
|
||||||
|
|
||||||
import { useI18n } from "~/composables/i18n"
|
import { useI18n } from "~/composables/i18n"
|
||||||
import { useToast } from "~/composables/toast"
|
import { useToast } from "~/composables/toast"
|
||||||
import { HoppCollection } from "@hoppscotch/data"
|
|
||||||
import { appendRESTCollections, restCollections$ } from "~/newstore/collections"
|
import { appendRESTCollections, restCollections$ } from "~/newstore/collections"
|
||||||
import MyCollectionImport from "~/components/importExport/ImportExportSteps/MyCollectionImport.vue"
|
import MyCollectionImport from "~/components/importExport/ImportExportSteps/MyCollectionImport.vue"
|
||||||
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
|
||||||
@@ -48,7 +49,7 @@ import { getTeamCollectionJSON } from "~/helpers/backend/helpers"
|
|||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
|
|
||||||
import { initializeDownloadCollection } from "~/helpers/import-export/export"
|
import { initializeDownloadCollection } from "~/helpers/import-export/export"
|
||||||
import { collectionsGistExporter } from "~/helpers/import-export/export/gistExport"
|
import { gistExporter } from "~/helpers/import-export/export/gist"
|
||||||
import { myCollectionsExporter } from "~/helpers/import-export/export/myCollections"
|
import { myCollectionsExporter } from "~/helpers/import-export/export/myCollections"
|
||||||
import { teamCollectionsExporter } from "~/helpers/import-export/export/teamCollections"
|
import { teamCollectionsExporter } from "~/helpers/import-export/export/teamCollections"
|
||||||
|
|
||||||
@@ -83,6 +84,8 @@ const currentUser = useReadonlyStream(
|
|||||||
platform.auth.getCurrentUser()
|
platform.auth.getCurrentUser()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const myCollections = useReadonlyStream(restCollections$, [])
|
||||||
|
|
||||||
const showImportFailedError = () => {
|
const showImportFailedError = () => {
|
||||||
toast.error(t("import.failed"))
|
toast.error(t("import.failed"))
|
||||||
}
|
}
|
||||||
@@ -468,8 +471,13 @@ const HoppGistCollectionsExporter: ImporterOrExporter = {
|
|||||||
icon: IconGithub,
|
icon: IconGithub,
|
||||||
disabled: !currentUser.value
|
disabled: !currentUser.value
|
||||||
? true
|
? true
|
||||||
: currentUser.value.provider !== "github.com",
|
: currentUser.value?.provider !== "github.com",
|
||||||
title: t("export.create_secret_gist"),
|
title:
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-ignore
|
||||||
|
currentUser?.value?.provider === "github.com"
|
||||||
|
? "export.create_secret_gist_tooltip_text"
|
||||||
|
: "export.require_github",
|
||||||
applicableTo: ["personal-workspace", "team-workspace"],
|
applicableTo: ["personal-workspace", "team-workspace"],
|
||||||
isLoading: isHoppGistCollectionExporterInProgress,
|
isLoading: isHoppGistCollectionExporterInProgress,
|
||||||
},
|
},
|
||||||
@@ -486,13 +494,27 @@ const HoppGistCollectionsExporter: ImporterOrExporter = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (E.isRight(collectionJSON)) {
|
if (E.isRight(collectionJSON)) {
|
||||||
collectionsGistExporter(collectionJSON.right, accessToken)
|
if (!JSON.parse(collectionJSON.right).length) {
|
||||||
|
isHoppGistCollectionExporterInProgress.value = false
|
||||||
|
return toast.error(t("error.no_collections_to_export"))
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await gistExporter(collectionJSON.right, accessToken)
|
||||||
|
|
||||||
|
if (E.isLeft(res)) {
|
||||||
|
toast.error(t("export.failed"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
toast.success(t("export.secret_gist_success"))
|
||||||
|
|
||||||
platform.analytics?.logEvent({
|
platform.analytics?.logEvent({
|
||||||
type: "HOPP_EXPORT_COLLECTION",
|
type: "HOPP_EXPORT_COLLECTION",
|
||||||
exporter: "gist",
|
exporter: "gist",
|
||||||
platform: "rest",
|
platform: "rest",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
platform.io.openExternalLink(res.right)
|
||||||
}
|
}
|
||||||
|
|
||||||
isHoppGistCollectionExporterInProgress.value = false
|
isHoppGistCollectionExporterInProgress.value = false
|
||||||
@@ -560,8 +582,6 @@ const selectedTeamID = computed(() => {
|
|||||||
: undefined
|
: undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
const myCollections = useReadonlyStream(restCollections$, [])
|
|
||||||
|
|
||||||
const getCollectionJSON = async () => {
|
const getCollectionJSON = async () => {
|
||||||
if (
|
if (
|
||||||
props.collectionsType.type === "team-collections" &&
|
props.collectionsType.type === "team-collections" &&
|
||||||
|
|||||||
@@ -9,15 +9,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { HoppCollection } from "@hoppscotch/data"
|
||||||
|
import * as E from "fp-ts/Either"
|
||||||
|
import { ref } from "vue"
|
||||||
|
|
||||||
import { useI18n } from "~/composables/i18n"
|
import { useI18n } from "~/composables/i18n"
|
||||||
import { useToast } from "~/composables/toast"
|
import { useToast } from "~/composables/toast"
|
||||||
import { HoppCollection } from "@hoppscotch/data"
|
|
||||||
import { ImporterOrExporter } from "~/components/importExport/types"
|
import { ImporterOrExporter } from "~/components/importExport/types"
|
||||||
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
||||||
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
||||||
|
|
||||||
import * as E from "fp-ts/Either"
|
|
||||||
|
|
||||||
import IconFolderPlus from "~icons/lucide/folder-plus"
|
import IconFolderPlus from "~icons/lucide/folder-plus"
|
||||||
import IconUser from "~icons/lucide/user"
|
import IconUser from "~icons/lucide/user"
|
||||||
import { initializeDownloadCollection } from "~/helpers/import-export/export"
|
import { initializeDownloadCollection } from "~/helpers/import-export/export"
|
||||||
@@ -30,7 +31,7 @@ import {
|
|||||||
} from "~/newstore/collections"
|
} from "~/newstore/collections"
|
||||||
import { hoppGqlCollectionsImporter } from "~/helpers/import-export/import/hoppGql"
|
import { hoppGqlCollectionsImporter } from "~/helpers/import-export/import/hoppGql"
|
||||||
import { gqlCollectionsExporter } from "~/helpers/import-export/export/gqlCollections"
|
import { gqlCollectionsExporter } from "~/helpers/import-export/export/gqlCollections"
|
||||||
import { gqlCollectionsGistExporter } from "~/helpers/import-export/export/gqlCollectionsGistExporter"
|
import { gistExporter } from "~/helpers/import-export/export/gist"
|
||||||
import { computed } from "vue"
|
import { computed } from "vue"
|
||||||
import { hoppGQLImporter } from "~/helpers/import-export/import/hopp"
|
import { hoppGQLImporter } from "~/helpers/import-export/import/hopp"
|
||||||
|
|
||||||
@@ -42,6 +43,10 @@ const currentUser = useReadonlyStream(
|
|||||||
platform.auth.getCurrentUser()
|
platform.auth.getCurrentUser()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const gqlCollections = useReadonlyStream(graphqlCollections$, [])
|
||||||
|
|
||||||
|
const isGqlCollectionGistExportInProgress = ref(false)
|
||||||
|
|
||||||
const GqlCollectionsHoppImporter: ImporterOrExporter = {
|
const GqlCollectionsHoppImporter: ImporterOrExporter = {
|
||||||
metadata: {
|
metadata: {
|
||||||
id: "import.from_json",
|
id: "import.from_json",
|
||||||
@@ -119,8 +124,6 @@ const GqlCollectionsGistImporter: ImporterOrExporter = {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
const gqlCollections = useReadonlyStream(graphqlCollections$, [])
|
|
||||||
|
|
||||||
const GqlCollectionsHoppExporter: ImporterOrExporter = {
|
const GqlCollectionsHoppExporter: ImporterOrExporter = {
|
||||||
metadata: {
|
metadata: {
|
||||||
id: "export.as_json",
|
id: "export.as_json",
|
||||||
@@ -159,29 +162,35 @@ const GqlCollectionsGistExporter: ImporterOrExporter = {
|
|||||||
metadata: {
|
metadata: {
|
||||||
id: "export.as_gist",
|
id: "export.as_gist",
|
||||||
name: "export.create_secret_gist",
|
name: "export.create_secret_gist",
|
||||||
title: !currentUser
|
title:
|
||||||
? "export.require_github"
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
: // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
currentUser.provider !== "github.com"
|
currentUser?.value?.provider === "github.com"
|
||||||
? `export.require_github`
|
? "export.create_secret_gist_tooltip_text"
|
||||||
: "export.create_secret_gist",
|
: "export.require_github",
|
||||||
icon: IconUser,
|
icon: IconUser,
|
||||||
disabled: !currentUser.value
|
disabled: !currentUser.value
|
||||||
? true
|
? true
|
||||||
: currentUser.value.provider !== "github.com",
|
: currentUser.value?.provider !== "github.com",
|
||||||
applicableTo: ["personal-workspace"],
|
applicableTo: ["personal-workspace"],
|
||||||
|
isLoading: isGqlCollectionGistExportInProgress,
|
||||||
},
|
},
|
||||||
action: async () => {
|
action: async () => {
|
||||||
|
if (!gqlCollections.value.length) {
|
||||||
|
return toast.error(t("error.no_collections_to_export"))
|
||||||
|
}
|
||||||
|
|
||||||
if (!currentUser.value) {
|
if (!currentUser.value) {
|
||||||
toast.error(t("profile.no_permission"))
|
toast.error(t("profile.no_permission"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isGqlCollectionGistExportInProgress.value = true
|
||||||
|
|
||||||
const accessToken = currentUser.value?.accessToken
|
const accessToken = currentUser.value?.accessToken
|
||||||
|
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
const res = await gqlCollectionsGistExporter(
|
const res = await gistExporter(
|
||||||
JSON.stringify(gqlCollections.value),
|
JSON.stringify(gqlCollections.value),
|
||||||
accessToken
|
accessToken
|
||||||
)
|
)
|
||||||
@@ -191,7 +200,7 @@ const GqlCollectionsGistExporter: ImporterOrExporter = {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
toast.success(t("export.success"))
|
toast.success(t("export.secret_gist_success"))
|
||||||
|
|
||||||
platform.analytics?.logEvent({
|
platform.analytics?.logEvent({
|
||||||
type: "HOPP_EXPORT_COLLECTION",
|
type: "HOPP_EXPORT_COLLECTION",
|
||||||
@@ -201,6 +210,8 @@ const GqlCollectionsGistExporter: ImporterOrExporter = {
|
|||||||
|
|
||||||
platform.io.openExternalLink(res.right)
|
platform.io.openExternalLink(res.right)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isGqlCollectionGistExportInProgress.value = false
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,15 +9,17 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { Environment } from "@hoppscotch/data"
|
||||||
|
import * as E from "fp-ts/Either"
|
||||||
|
import { ref } from "vue"
|
||||||
|
|
||||||
import { useI18n } from "~/composables/i18n"
|
import { useI18n } from "~/composables/i18n"
|
||||||
import { useToast } from "~/composables/toast"
|
import { useToast } from "~/composables/toast"
|
||||||
import { Environment } from "@hoppscotch/data"
|
|
||||||
import { ImporterOrExporter } from "~/components/importExport/types"
|
import { ImporterOrExporter } from "~/components/importExport/types"
|
||||||
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
import { FileSource } from "~/helpers/import-export/import/import-sources/FileSource"
|
||||||
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
import { GistSource } from "~/helpers/import-export/import/import-sources/GistSource"
|
||||||
import { hoppEnvImporter } from "~/helpers/import-export/import/hoppEnv"
|
import { hoppEnvImporter } from "~/helpers/import-export/import/hoppEnv"
|
||||||
|
|
||||||
import * as E from "fp-ts/Either"
|
|
||||||
import {
|
import {
|
||||||
appendEnvironments,
|
appendEnvironments,
|
||||||
addGlobalEnvVariable,
|
addGlobalEnvVariable,
|
||||||
@@ -39,7 +41,7 @@ import { initializeDownloadCollection } from "~/helpers/import-export/export"
|
|||||||
import { computed } from "vue"
|
import { computed } from "vue"
|
||||||
import { useReadonlyStream } from "~/composables/stream"
|
import { useReadonlyStream } from "~/composables/stream"
|
||||||
import { environmentsExporter } from "~/helpers/import-export/export/environments"
|
import { environmentsExporter } from "~/helpers/import-export/export/environments"
|
||||||
import { environmentsGistExporter } from "~/helpers/import-export/export/environmentsGistExport"
|
import { gistExporter } from "~/helpers/import-export/export/gist"
|
||||||
import { platform } from "~/platform"
|
import { platform } from "~/platform"
|
||||||
|
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
@@ -58,6 +60,8 @@ const currentUser = useReadonlyStream(
|
|||||||
platform.auth.getCurrentUser()
|
platform.auth.getCurrentUser()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const isEnvironmentGistExportInProgress = ref(false)
|
||||||
|
|
||||||
const isTeamEnvironment = computed(() => {
|
const isTeamEnvironment = computed(() => {
|
||||||
return props.environmentType === "TEAM_ENV"
|
return props.environmentType === "TEAM_ENV"
|
||||||
})
|
})
|
||||||
@@ -262,35 +266,44 @@ const HoppEnvironmentsGistExporter: ImporterOrExporter = {
|
|||||||
title:
|
title:
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
currentUser?.provider === "github.com"
|
currentUser?.value?.provider === "github.com"
|
||||||
? "export.create_secret_gist"
|
? "export.create_secret_gist_tooltip_text"
|
||||||
: "export.require_github",
|
: "export.require_github",
|
||||||
icon: IconUser,
|
icon: IconUser,
|
||||||
disabled: !currentUser.value
|
disabled: !currentUser.value
|
||||||
? true
|
? true
|
||||||
: currentUser.value.provider !== "github.com",
|
: currentUser.value?.provider !== "github.com",
|
||||||
applicableTo: ["personal-workspace", "team-workspace"],
|
applicableTo: ["personal-workspace", "team-workspace"],
|
||||||
|
isLoading: isEnvironmentGistExportInProgress,
|
||||||
},
|
},
|
||||||
action: async () => {
|
action: async () => {
|
||||||
|
if (!environmentJson.value.length) {
|
||||||
|
return toast.error(t("error.no_environments_to_export"))
|
||||||
|
}
|
||||||
|
|
||||||
if (!currentUser.value) {
|
if (!currentUser.value) {
|
||||||
toast.error(t("profile.no_permission"))
|
toast.error(t("profile.no_permission"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isEnvironmentGistExportInProgress.value = true
|
||||||
|
|
||||||
const accessToken = currentUser.value?.accessToken
|
const accessToken = currentUser.value?.accessToken
|
||||||
|
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
const res = await environmentsGistExporter(
|
const res = await gistExporter(
|
||||||
JSON.stringify(environmentJson.value),
|
JSON.stringify(environmentJson.value),
|
||||||
accessToken
|
accessToken,
|
||||||
|
"hoppscotch-environment.json"
|
||||||
)
|
)
|
||||||
|
|
||||||
if (E.isLeft(res)) {
|
if (E.isLeft(res)) {
|
||||||
toast.error(t("export.failed"))
|
toast.error(t("export.failed"))
|
||||||
|
isEnvironmentGistExportInProgress.value = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
toast.success(t("export.success"))
|
toast.success(t("export.secret_gist_success"))
|
||||||
|
|
||||||
platform.analytics?.logEvent({
|
platform.analytics?.logEvent({
|
||||||
type: "HOPP_EXPORT_ENVIRONMENT",
|
type: "HOPP_EXPORT_ENVIRONMENT",
|
||||||
@@ -299,6 +312,8 @@ const HoppEnvironmentsGistExporter: ImporterOrExporter = {
|
|||||||
|
|
||||||
platform.io.openExternalLink(res.right)
|
platform.io.openExternalLink(res.right)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isEnvironmentGistExportInProgress.value = false
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
import * as E from "fp-ts/Either"
|
|
||||||
import { createGist } from "~/helpers/gist"
|
|
||||||
|
|
||||||
export const environmentsGistExporter = async (
|
|
||||||
environmentsJSON: string,
|
|
||||||
accessToken: string
|
|
||||||
) => {
|
|
||||||
const res = await createGist(
|
|
||||||
environmentsJSON,
|
|
||||||
"hoppscotch-collections.json",
|
|
||||||
accessToken
|
|
||||||
)()
|
|
||||||
|
|
||||||
if (E.isLeft(res)) {
|
|
||||||
return E.left(res.left)
|
|
||||||
}
|
|
||||||
return E.right(res.right.data.html_url as string)
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
import * as E from "fp-ts/Either"
|
||||||
|
import { createGist } from "~/helpers/gist"
|
||||||
|
|
||||||
|
export const gistExporter = async (
|
||||||
|
JSONFileContents: string,
|
||||||
|
accessToken: string,
|
||||||
|
fileName = "hoppscotch-collections.json"
|
||||||
|
) => {
|
||||||
|
if (!accessToken) {
|
||||||
|
return E.left("Invalid User")
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await createGist(JSONFileContents, fileName, accessToken)()
|
||||||
|
|
||||||
|
if (E.isLeft(res)) {
|
||||||
|
return E.left(res.left)
|
||||||
|
}
|
||||||
|
return E.right(res.right.data.html_url as string)
|
||||||
|
}
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
import { createGist } from "~/helpers/gist"
|
|
||||||
import * as E from "fp-ts/Either"
|
|
||||||
|
|
||||||
export const collectionsGistExporter = async (
|
|
||||||
collectionJSON: string,
|
|
||||||
accessToken: string
|
|
||||||
) => {
|
|
||||||
if (!accessToken) {
|
|
||||||
return E.left("Invalid User")
|
|
||||||
}
|
|
||||||
|
|
||||||
const res = await createGist(
|
|
||||||
collectionJSON,
|
|
||||||
"hoppscotch-collections.json",
|
|
||||||
accessToken
|
|
||||||
)()
|
|
||||||
|
|
||||||
if (E.isLeft(res)) {
|
|
||||||
return E.left(res.left)
|
|
||||||
}
|
|
||||||
return E.right(true)
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
import * as E from "fp-ts/Either"
|
|
||||||
import { createGist } from "~/helpers/gist"
|
|
||||||
|
|
||||||
export const gqlCollectionsGistExporter = async (
|
|
||||||
gqlCollectionsJSON: string,
|
|
||||||
accessToken: string
|
|
||||||
) => {
|
|
||||||
const res = await createGist(
|
|
||||||
gqlCollectionsJSON,
|
|
||||||
"hoppscotch-collections.json",
|
|
||||||
accessToken
|
|
||||||
)()
|
|
||||||
|
|
||||||
if (E.isLeft(res)) {
|
|
||||||
return E.left(res.left)
|
|
||||||
}
|
|
||||||
return E.right(res.right.data.html_url as string)
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
const config = {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = config
|
|
||||||
Reference in New Issue
Block a user