clean up spec actions a bit
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import YAML from "js-yaml"
|
import YAML from "js-yaml"
|
||||||
import parseUrl from "url-parse"
|
import parseUrl from "url-parse"
|
||||||
import serializeError from "serialize-error"
|
import serializeError from "serialize-error"
|
||||||
|
import isString from "lodash/isString"
|
||||||
import { isJSONObject } from "core/utils"
|
import { isJSONObject } from "core/utils"
|
||||||
|
|
||||||
// Actions conform to FSA (flux-standard-actions)
|
// Actions conform to FSA (flux-standard-actions)
|
||||||
@@ -22,22 +23,16 @@ export const UPDATE_OPERATION_VALUE = "spec_update_operation_value"
|
|||||||
export const UPDATE_RESOLVED = "spec_update_resolved"
|
export const UPDATE_RESOLVED = "spec_update_resolved"
|
||||||
export const SET_SCHEME = "set_scheme"
|
export const SET_SCHEME = "set_scheme"
|
||||||
|
|
||||||
export function updateSpec(spec) {
|
const toStr = (str) => isString(str) ? str : ""
|
||||||
if(spec instanceof Error) {
|
|
||||||
return {type: UPDATE_SPEC, error: true, payload: spec}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
export function updateSpec(spec) {
|
||||||
|
const cleanSpec = (toStr(spec)).replace(/\t/g, " ")
|
||||||
if(typeof spec === "string") {
|
if(typeof spec === "string") {
|
||||||
return {
|
return {
|
||||||
type: UPDATE_SPEC,
|
type: UPDATE_SPEC,
|
||||||
payload: spec.replace(/\t/g, " ") || ""
|
payload: cleanSpec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
|
||||||
type: UPDATE_SPEC,
|
|
||||||
payload: ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateResolved(spec) {
|
export function updateResolved(spec) {
|
||||||
@@ -52,9 +47,6 @@ export function updateUrl(url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function updateJsonSpec(json) {
|
export function updateJsonSpec(json) {
|
||||||
if(!json || typeof json !== "object") {
|
|
||||||
throw new Error("updateJson must only accept a simple JSON object")
|
|
||||||
}
|
|
||||||
return {type: UPDATE_JSON, payload: json}
|
return {type: UPDATE_JSON, payload: json}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +68,10 @@ export const parseToJson = (str) => ({specActions, specSelectors, errActions}) =
|
|||||||
line: e.mark && e.mark.line ? e.mark.line + 1 : undefined
|
line: e.mark && e.mark.line ? e.mark.line + 1 : undefined
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return specActions.updateJsonSpec(json)
|
if(json) {
|
||||||
|
return specActions.updateJsonSpec(json)
|
||||||
|
}
|
||||||
|
return {}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const resolveSpec = (json, url) => ({specActions, specSelectors, errActions, fn: { fetch, resolve, AST }, getConfigs}) => {
|
export const resolveSpec = (json, url) => ({specActions, specSelectors, errActions, fn: { fetch, resolve, AST }, getConfigs}) => {
|
||||||
@@ -118,18 +113,6 @@ export const resolveSpec = (json, url) => ({specActions, specSelectors, errActio
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const formatIntoYaml = () => ({specActions, specSelectors}) => {
|
|
||||||
let { specStr } = specSelectors
|
|
||||||
let { updateSpec } = specActions
|
|
||||||
|
|
||||||
try {
|
|
||||||
let yaml = YAML.safeDump(YAML.safeLoad(specStr()), {indent: 2})
|
|
||||||
updateSpec(yaml)
|
|
||||||
} catch(e) {
|
|
||||||
updateSpec(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function changeParam( path, paramName, paramIn, value, isXml ){
|
export function changeParam( path, paramName, paramIn, value, isXml ){
|
||||||
return {
|
return {
|
||||||
type: UPDATE_PARAM,
|
type: UPDATE_PARAM,
|
||||||
|
|||||||
Reference in New Issue
Block a user