Remove redundant dependency on moment in the csv-export package (#45410)

This commit is contained in:
Sam Seay 2024-03-12 12:06:53 +08:00 committed by GitHub
parent 172bbac661
commit 0f98ffee64
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 24 additions and 16 deletions

View File

@ -0,0 +1,4 @@
Significance: minor
Type: dev
Remove moment dependency from the csv-export package.

View File

@ -49,8 +49,7 @@
},
"dependencies": {
"@types/node": "^16.18.68",
"browser-filesaver": "^1.1.1",
"moment": "^2.29.4"
"browser-filesaver": "^1.1.1"
},
"devDependencies": {
"@babel/core": "^7.23.5",

View File

@ -1,7 +1,6 @@
/**
* External dependencies
*/
import moment from 'moment';
import { saveAs } from 'browser-filesaver'; // TODO: Replace this with https://www.npmjs.com/package/file-saver since browser-filesaver is not maintained anymore.
export type Header = {
@ -82,6 +81,18 @@ export function generateCSVDataFromTable( headers: Header[], rows: Rows ) {
.join( '\n' );
}
/**
* Today's date in the format YYYY-MM-DD
*
* @return {string} the formatted date.
*/
function todayDateStr() {
const date = new Date();
const dateStr = date.toISOString().split( 'T' )[ 0 ];
return dateStr;
}
/**
* Generates a file name for CSV files based on the provided name, the current date
* and the provided params, which are all appended with hyphens.
@ -96,7 +107,7 @@ export function generateCSVFileName(
) {
const fileNameSections = [
name.toLowerCase().replace( /[^a-z0-9]/g, '-' ),
moment().format( 'YYYY-MM-DD' ),
todayDateStr(),
Object.keys( params )
.map(
( key ) =>

View File

@ -2,7 +2,6 @@
/**
* External dependencies
*/
import moment from 'moment';
import { saveAs } from 'browser-filesaver';
/**
@ -65,16 +64,16 @@ describe( 'generateCSVDataFromTable', () => {
} );
describe( 'generateCSVFileName', () => {
jest.useFakeTimers().setSystemTime( new Date( '2024-12-23' ) );
it( 'should generate a file name with the date when no params are provided', () => {
const fileName = generateCSVFileName();
expect( fileName ).toBe( moment().format( 'YYYY-MM-DD' ) + '.csv' );
expect( fileName ).toBe( '2024-12-23.csv' );
} );
it( 'should generate a file name with the `name` and the date', () => {
const fileName = generateCSVFileName( 'Revenue table' );
expect( fileName ).toBe(
'revenue-table_' + moment().format( 'YYYY-MM-DD' ) + '.csv'
);
expect( fileName ).toBe( 'revenue-table_2024-12-23.csv' );
} );
it( 'should generate a file name with the `name` and `params`', () => {
@ -83,9 +82,7 @@ describe( 'generateCSVFileName', () => {
order: 'desc',
} );
expect( fileName ).toBe(
'revenue-table_' +
moment().format( 'YYYY-MM-DD' ) +
'_orderby-revenue_order-desc.csv'
'revenue-table_2024-12-23_orderby-revenue_order-desc.csv'
);
} );
} );

View File

@ -945,9 +945,6 @@ importers:
browser-filesaver:
specifier: ^1.1.1
version: 1.1.1
moment:
specifier: ^2.29.4
version: 2.29.4
devDependencies:
'@babel/core':
specifier: ^7.23.5
@ -52999,4 +52996,4 @@ packages:
resolution: {tarball: https://codeload.github.com/woocommerce/sourcebuster-js/tar.gz/411d8dffaa37d7602d678c2ec02baacee93c12d5}
name: sourcebuster
version: 1.1.2
dev: false
dev: false