Remove redundant dependency on moment in the csv-export package (#45410)
This commit is contained in:
parent
172bbac661
commit
0f98ffee64
|
@ -0,0 +1,4 @@
|
|||
Significance: minor
|
||||
Type: dev
|
||||
|
||||
Remove moment dependency from the csv-export package.
|
|
@ -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",
|
||||
|
|
|
@ -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 ) =>
|
||||
|
|
|
@ -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'
|
||||
);
|
||||
} );
|
||||
} );
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue