UNPKG

1.33 kBJavaScriptView Raw
1/**
2 * use `angular.isDate` instead of `typeof` comparisons
3 *
4 * You should use the angular.isDate method instead of the default JavaScript implementation (typeof new Date() === "[object Date]").
5 *
6 * @version 0.1.0
7 * @category angularWrapper
8 * @sinceAngularVersion 1.x
9 */
10'use strict';
11
12var utils = require('./utils/utils');
13
14module.exports = {
15 meta: {
16 docs: {
17 url: 'https://github.com/Gillespie59/eslint-plugin-angular/blob/master/docs/rules/typecheck-date.md'
18 },
19 schema: []
20 },
21 create: function(context) {
22 function recordError(node, origin) {
23 if (node.type === 'Literal' && node.value === '[object Date]') {
24 context.report(origin, 'You should use the angular.isDate method', {});
25 }
26 }
27
28 return {
29
30 BinaryExpression: function(node) {
31 if (node.operator === '===' || node.operator === '!==') {
32 if (utils.isTypeOfStatement(node.left) || utils.isToStringStatement(node.left)) {
33 recordError(node.right, node);
34 } else if (utils.isTypeOfStatement(node.right) || utils.isToStringStatement(node.right)) {
35 recordError(node.left, node);
36 }
37 }
38 }
39 };
40 }
41};