@ceramicnetwork/codecs
Version:
Ceramic Codecs
21 lines • 816 B
JavaScript
import { Type } from 'codeco';
export const date = new Type('Date-as-ISOString', (input) => input instanceof Date, function (input, context) {
if (this.is(input))
return context.success(input);
if (typeof input === 'string') {
const parsed = new Date(input);
const isParsingSuccessful = Number.isFinite(parsed.valueOf());
if (isParsingSuccessful)
return context.success(parsed);
}
return context.failure();
}, (input) => input.toISOString());
export const dateAsUnix = new Type('Date-as-UnixTimestamp', (input) => Boolean(input && input instanceof Date), (input, context) => {
try {
return context.success(new Date(input));
}
catch {
return context.failure();
}
}, (date) => date.getTime());
//# sourceMappingURL=date.js.map