Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
postgres-interval
Advanced tools
The postgres-interval npm package is designed to parse and handle PostgreSQL interval types in JavaScript. It allows for the parsing of interval output from PostgreSQL into a JavaScript object, manipulation of these interval objects, and formatting of interval objects back into strings that PostgreSQL can understand. This is particularly useful when working with time-based data that needs to be manipulated or displayed in a JavaScript application.
Parsing PostgreSQL interval output
This feature allows for the parsing of a PostgreSQL interval string into a JavaScript object, making it easier to work with in a JavaScript codebase. The object contains properties for years, months, days, hours, minutes, and seconds.
const parseInterval = require('postgres-interval');
const result = parseInterval('1 year 2 months 3 days 04:05:06');
console.log(result);
Manipulating interval objects
After parsing an interval string into an object, this feature allows for the manipulation of the interval's properties (e.g., adding an extra day). The manipulated interval can then be converted back into a PostgreSQL interval string.
const parseInterval = require('postgres-interval');
const interval = parseInterval('1 day');
interval.days += 1;
console.log(interval.toPostgres());
Formatting intervals for PostgreSQL
This feature is useful for converting a manipulated interval object back into a string format that PostgreSQL can understand, enabling the updated interval to be used in database queries or operations.
const parseInterval = require('postgres-interval');
const interval = parseInterval('10 hours');
const formattedInterval = interval.toPostgres();
console.log(formattedInterval);
Moment.js is a comprehensive date handling library that can parse, validate, manipulate, and display dates and times in JavaScript. While it does not specifically target PostgreSQL interval types, it offers broad functionality for handling time-based data. Compared to postgres-interval, Moment.js is more versatile for general date and time manipulation but lacks the direct focus on PostgreSQL intervals.
Luxon is a powerful library for working with dates and times in JavaScript, offering a range of features similar to Moment.js, including parsing, formatting, and manipulating dates and times. Like Moment.js, Luxon does not specifically address PostgreSQL interval types but provides a rich set of tools for time-based data manipulation. It is a modern alternative to Moment.js with a focus on immutability and internationalization.
date-fns is a modular date utility library for JavaScript, offering over 200 functions for date manipulation, including parsing, formatting, and arithmetic operations. While it does not provide specific support for PostgreSQL interval types, its modular nature allows for lightweight inclusion of only the necessary functions. Compared to postgres-interval, date-fns offers a broader scope of date manipulation features without the direct focus on PostgreSQL intervals.
Parse Postgres interval columns
npm install --save postgres-interval
var parse = require('postgres-interval')
var interval = parse('01:02:03')
// => { hours: 1, minutes: 2, seconds: 3 }
interval.toPostgres()
// 1 hour 2 minutes 3 seconds
interval.toISOString()
// P0Y0M0DT1H2M3S
interval.toISOStringShort()
// PT1H2M3S
This package parses the default Postgres interval style. If you have changed intervalstyle
, you will need to set it back to the default:
set intervalstyle to default;
parse(pgInterval)
-> interval
Required
Type: string
A Postgres interval string.
This package is focused on parsing Postgres outputs. It optimizes for performance by assuming that inputs follow the default interval format. It does not perform any validation on the input. If any interval field is not found, its value will be set to 0
in the returned interval
.
interval.toPostgres()
-> string
Returns an interval string. This allows the interval object to be passed into prepared statements.
interval.toISOString()
-> string
Returns an ISO 8601 compliant string, for example P0Y0M0DT0H9M0S
.
Also available as interval.toISO()
for backwards compatibility.
interval.toISOStringShort()
-> string
Returns an ISO 8601 compliant string shortened to minimum length, for example PT9M
.
MIT © Ben Drucker
FAQs
Parse Postgres interval columns
We found that postgres-interval demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.