Skip to content

Commit

Permalink
fix(degree): isAngle check
Browse files Browse the repository at this point in the history
  • Loading branch information
MrTelanie committed Sep 29, 2019
1 parent 4b74892 commit f869a4d
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/degree.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// @ts-nocheck
import { normRad } from './util';

const ANGLE = Symbol('angle-rad');
const ANGLE = Symbol('angle rad');
const DEG_TO_RAD = Math.PI / 180;
const RAD_TO_DEG = 180 / Math.PI;

Expand Down Expand Up @@ -41,13 +41,13 @@ class ADegree {
export class Degree extends ADegree {
/**
*
* @param {number | Degree | IDegree} angle
* @param {number | Degree | IDegree} [angle]
*/
set(angle) {
if (angle instanceof ADegree) {
this[ANGLE] = angle[ANGLE];
} else {
this[ANGLE] = normRad(angle * DEG_TO_RAD);
this[ANGLE] = normRad((angle || 0) * DEG_TO_RAD);
}
}
}
Expand All @@ -61,6 +61,8 @@ export class IDegree extends ADegree {
}
}

const ZERO = new IDegree(0);

/**
* @typedef {(angle: number) => DegreeType} DegreeNum
* @typedef {(angle: Degree | IDegree) => DegreeType} DegreeDeg
Expand All @@ -87,18 +89,25 @@ export function idegree(angle) {
if (angle instanceof IDegree) {
return angle;
}
if (!angle) {
return ZERO;
}
return new IDegree(angle);
}

export function isAngle(angle) {
return typeof angle === 'number' || angle instanceof ADegree;
}

export const Export = {
/**
* @param {number | Degree | IDegree} angle
* @param {number | Degree | IDegree} [angle]
* @returns {IDegreeType}
*/
idegree: angle => idegree(angle),

/**
* @param {number | Degree | IDegree} angle
* @param {number | Degree | IDegree} [angle]
* @returns {DegreeType}
*/
degree: angle => degree(angle),
Expand Down

0 comments on commit f869a4d

Please sign in to comment.