11import { FunctionPlotOptions } from "function-plot" ;
22import { amendAttr , omitAttr } from "./utils" ;
3- import cloneDeep from "lodash-es/cloneDeep" ;
43
54type PrivateAxis = {
65 invert : boolean ;
@@ -15,14 +14,15 @@ export type PrivateOptions = {
1514 title : string ;
1615} ;
1716
17+ const defaultAxis = {
18+ invert : false ,
19+ label : "" ,
20+ type : "linear" ,
21+ } as PrivateAxis ;
22+
1823export function toPrivateOptions (
1924 original : Partial < FunctionPlotOptions >
2025) : PrivateOptions {
21- const defaultAxis = {
22- invert : false ,
23- label : "" ,
24- type : "linear" ,
25- } as PrivateAxis ;
2626 const { xAxis, yAxis, title, grid } = original ;
2727 return amendAttr < PrivateOptions > (
2828 { xAxis, yAxis, title, grid } ,
@@ -35,15 +35,21 @@ export function toPrivateOptions(
3535 ) ;
3636}
3737
38- const checkAxisUseless = ( { invert, label, type } : PrivateAxis ) =>
39- label === "" && ! invert && type === "linear" ;
38+ const checkObjEmpty = ( object : Object ) => Object . keys ( object ) . length === 0 ;
4039
4140export const toPublicOptions = (
4241 options : PrivateOptions
4342) : Partial < FunctionPlotOptions > =>
44- omitAttr ( cloneDeep ( options ) , {
45- title : "" ,
46- grid : false ,
47- xAxis : checkAxisUseless ,
48- yAxis : checkAxisUseless ,
49- } ) ;
43+ omitAttr (
44+ {
45+ ...options ,
46+ xAxis : omitAttr ( options . xAxis , defaultAxis ) ,
47+ yAxis : omitAttr ( options . yAxis , defaultAxis ) ,
48+ } ,
49+ {
50+ title : "" ,
51+ grid : false ,
52+ xAxis : checkObjEmpty ,
53+ yAxis : checkObjEmpty ,
54+ }
55+ ) ;
0 commit comments