@scoir/date
Advanced tools
Comparing version 2.0.0-beta.ed162590 to 2.0.0
@@ -1,16 +0,30 @@ | ||
import moment from 'moment-timezone'; | ||
import isCredibleDate from './is-credible-date'; | ||
const DateFormatter = { | ||
format: (date, { | ||
defaultText, | ||
inputFormat, | ||
outputFormat = 'MMM DD, YYYY' | ||
} = {}) => { | ||
if (!isCredibleDate(date)) { | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _momentTimezone = _interopRequireDefault(require("moment-timezone")); | ||
var _isCredibleDate = _interopRequireDefault(require("./is-credible-date")); | ||
var DateFormatter = { | ||
format: function format(date) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
defaultText = _ref.defaultText, | ||
inputFormat = _ref.inputFormat, | ||
_ref$outputFormat = _ref.outputFormat, | ||
outputFormat = _ref$outputFormat === void 0 ? 'MMM DD, YYYY' : _ref$outputFormat; | ||
if (!(0, _isCredibleDate.default)(date)) { | ||
return defaultText; | ||
} | ||
return moment(date, inputFormat).format(outputFormat); | ||
return (0, _momentTimezone.default)(date, inputFormat).format(outputFormat); | ||
} | ||
}; | ||
export default DateFormatter; | ||
var _default = DateFormatter; | ||
exports.default = _default; |
@@ -1,42 +0,56 @@ | ||
import formatter from './formatter'; | ||
import moment from 'moment-timezone'; | ||
import isCredibleDate from './is-credible-date'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _formatter = _interopRequireDefault(require("./formatter")); | ||
var _momentTimezone = _interopRequireDefault(require("moment-timezone")); | ||
var _isCredibleDate = _interopRequireDefault(require("./is-credible-date")); | ||
jest.mock('./is-credible-date'); | ||
jest.mock('moment-timezone', () => { | ||
const instance = { | ||
format: jest.fn(() => 'format-result') | ||
jest.mock('moment-timezone', function () { | ||
var instance = { | ||
format: jest.fn(function () { | ||
return 'format-result'; | ||
}) | ||
}; | ||
return jest.fn(() => { | ||
return jest.fn(function () { | ||
return instance; | ||
}); | ||
}); | ||
describe('# format', () => { | ||
beforeEach(() => { | ||
isCredibleDate.mockReturnValueOnce(true); | ||
moment().format.mockClear(); | ||
describe('# format', function () { | ||
beforeEach(function () { | ||
_isCredibleDate.default.mockReturnValueOnce(true); | ||
(0, _momentTimezone.default)().format.mockClear(); | ||
}); | ||
it('should return the default date if the input is invalid', () => { | ||
isCredibleDate.mockReset(); | ||
isCredibleDate.mockReturnValueOnce(false); | ||
expect(formatter.format('my bad date')).toBeUndefined(); | ||
expect(isCredibleDate).toHaveBeenCalledWith('my bad date'); | ||
isCredibleDate.mockClear(); | ||
expect(formatter.format('my bad date', { | ||
it('should return the default date if the input is invalid', function () { | ||
_isCredibleDate.default.mockReset(); | ||
_isCredibleDate.default.mockReturnValueOnce(false); | ||
expect(_formatter.default.format('my bad date')).toBeUndefined(); | ||
expect(_isCredibleDate.default).toHaveBeenCalledWith('my bad date'); | ||
_isCredibleDate.default.mockClear(); | ||
expect(_formatter.default.format('my bad date', { | ||
defaultText: 'N/A' | ||
})).toEqual('N/A'); | ||
expect(isCredibleDate).toHaveBeenCalledWith('my bad date'); | ||
expect(_isCredibleDate.default).toHaveBeenCalledWith('my bad date'); | ||
}); | ||
it('should allow the formatting of the input type', () => { | ||
expect(formatter.format('01-02-03', { | ||
it('should allow the formatting of the input type', function () { | ||
expect(_formatter.default.format('01-02-03', { | ||
inputFormat: 'MM-YY-DD' | ||
})).toEqual('format-result'); | ||
expect(moment).toHaveBeenCalledWith('01-02-03', 'MM-YY-DD'); | ||
expect(_momentTimezone.default).toHaveBeenCalledWith('01-02-03', 'MM-YY-DD'); | ||
}); | ||
it('should allow the formatting of the output type', () => { | ||
expect(formatter.format('01-02-03', { | ||
it('should allow the formatting of the output type', function () { | ||
expect(_formatter.default.format('01-02-03', { | ||
outputFormat: 'Mon DD' | ||
})).toEqual('format-result'); | ||
const mockInstance = moment(); | ||
var mockInstance = (0, _momentTimezone.default)(); | ||
expect(mockInstance.format).toHaveBeenCalledWith('Mon DD'); | ||
}); | ||
}); |
@@ -1,2 +0,23 @@ | ||
export { default as formatter } from './formatter'; | ||
export { default as isCredibleDate } from './is-credible-date'; | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
Object.defineProperty(exports, "formatter", { | ||
enumerable: true, | ||
get: function get() { | ||
return _formatter.default; | ||
} | ||
}); | ||
Object.defineProperty(exports, "isCredibleDate", { | ||
enumerable: true, | ||
get: function get() { | ||
return _isCredibleDate.default; | ||
} | ||
}); | ||
var _formatter = _interopRequireDefault(require("./formatter")); | ||
var _isCredibleDate = _interopRequireDefault(require("./is-credible-date")); |
@@ -1,7 +0,10 @@ | ||
import { formatter as exposedFormatter, isCredibleDate as exposedIsCredibleDate } from '.'; | ||
it('should expose a formatter', () => { | ||
expect(exposedFormatter).toEqual(expect.any(Object)); | ||
"use strict"; | ||
var _ = require("."); | ||
it('should expose a formatter', function () { | ||
expect(_.formatter).toEqual(expect.any(Object)); | ||
}); | ||
it('should expose a zero date checker', () => { | ||
expect(exposedIsCredibleDate).toEqual(expect.any(Function)); | ||
it('should expose a zero date checker', function () { | ||
expect(_.isCredibleDate).toEqual(expect.any(Function)); | ||
}); |
@@ -1,5 +0,18 @@ | ||
import { includes } from 'lodash'; | ||
const EMPTY_FORMAT = [undefined, null, '', '0001-01-01', '0001-01-01T00:00:00Z']; | ||
export default (input => { | ||
return !includes(EMPTY_FORMAT, input); | ||
}); | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _includes = _interopRequireDefault(require("lodash/includes")); | ||
var EMPTY_FORMAT = [undefined, null, '', '0001-01-01', '0001-01-01T00:00:00Z']; | ||
var _default = function _default(input) { | ||
return !(0, _includes.default)(EMPTY_FORMAT, input); | ||
}; | ||
exports.default = _default; |
@@ -1,11 +0,16 @@ | ||
import isCredibleDate from './is-credible-date'; | ||
it('should return false for "invalid" dates', () => { | ||
expect(isCredibleDate(undefined)).toBe(false); | ||
expect(isCredibleDate(null)).toBe(false); | ||
expect(isCredibleDate('0001-01-01')).toBe(false); | ||
expect(isCredibleDate('')).toBe(false); | ||
expect(isCredibleDate('0001-01-01T00:00:00Z')).toBe(false); | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _isCredibleDate = _interopRequireDefault(require("./is-credible-date")); | ||
it('should return false for "invalid" dates', function () { | ||
expect((0, _isCredibleDate.default)(undefined)).toBe(false); | ||
expect((0, _isCredibleDate.default)(null)).toBe(false); | ||
expect((0, _isCredibleDate.default)('0001-01-01')).toBe(false); | ||
expect((0, _isCredibleDate.default)('')).toBe(false); | ||
expect((0, _isCredibleDate.default)('0001-01-01T00:00:00Z')).toBe(false); | ||
}); | ||
it('should return true for actual dates', () => { | ||
expect(isCredibleDate('2012-02-05')).toBe(true); | ||
it('should return true for actual dates', function () { | ||
expect((0, _isCredibleDate.default)('2012-02-05')).toBe(true); | ||
}); |
{ | ||
"name": "@scoir/date", | ||
"version": "2.0.0-beta.ed162590", | ||
"version": "2.0.0", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "author": "@scoir", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
9280
15
192
1
0