From 6688587a9d03e2012a8a5eb96c929cfb6ff72aa7 Mon Sep 17 00:00:00 2001 From: Marin Atanasov Date: Thu, 14 Jul 2022 14:47:18 +0300 Subject: [PATCH] Lodash: Refactor away from _.snakeCase() --- .eslintrc.js | 1 + package-lock.json | 103 +++++++++++++++++++++ packages/create-block/lib/scaffold.js | 6 +- packages/create-block/package.json | 1 + packages/e2e-test-utils/package.json | 1 + packages/e2e-test-utils/src/create-user.js | 2 +- 6 files changed, 112 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 32a0a853c04eb0..dda2b15c737359 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -121,6 +121,7 @@ module.exports = { 'repeat', 'reverse', 'size', + 'snakeCase', 'stubFalse', 'stubTrue', 'sum', diff --git a/package-lock.json b/package-lock.json index 220c5111a23320..bdf466f3832801 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16839,6 +16839,7 @@ "requires": { "@wordpress/lazy-import": "file:packages/lazy-import", "chalk": "^4.0.0", + "change-case": "^4.1.2", "check-node-version": "^4.1.0", "commander": "^9.2.0", "execa": "^4.0.2", @@ -16969,6 +16970,7 @@ "@wordpress/api-fetch": "file:packages/api-fetch", "@wordpress/keycodes": "file:packages/keycodes", "@wordpress/url": "file:packages/url", + "change-case": "^4.1.2", "form-data": "^4.0.0", "lodash": "^4.17.21", "node-fetch": "^2.6.0" @@ -28478,6 +28480,17 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz", "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==" }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "capture-exit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", @@ -28566,6 +28579,26 @@ } } }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -29622,6 +29655,17 @@ "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -37303,6 +37347,16 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, "hermes-engine": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.9.0.tgz", @@ -48436,6 +48490,16 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -53042,6 +53106,17 @@ } } }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "serialize-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", @@ -53477,6 +53552,16 @@ "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -57778,6 +57863,24 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", diff --git a/packages/create-block/lib/scaffold.js b/packages/create-block/lib/scaffold.js index a13b742ae9a23a..30b173c5dcb0e7 100644 --- a/packages/create-block/lib/scaffold.js +++ b/packages/create-block/lib/scaffold.js @@ -1,7 +1,7 @@ /** * External dependencies */ -const { snakeCase, camelCase, upperFirst } = require( 'lodash' ); +const { camelCase, snakeCase } = require( 'change-case' ); /** * Internal dependencies @@ -13,6 +13,10 @@ const initWPEnv = require( './init-wp-env' ); const { code, info, success } = require( './log' ); const { writeOutputAsset, writeOutputTemplate } = require( './output' ); +function upperFirst( str ) { + return str.charAt( 0 ).toUpperCase() + str.substr( 1 ); +} + module.exports = async ( { blockOutputTemplates, pluginOutputTemplates, outputAssets }, { diff --git a/packages/create-block/package.json b/packages/create-block/package.json index 37b68d439a8376..2cc9722f3b85e1 100644 --- a/packages/create-block/package.json +++ b/packages/create-block/package.json @@ -33,6 +33,7 @@ "dependencies": { "@wordpress/lazy-import": "file:../lazy-import", "chalk": "^4.0.0", + "change-case": "^4.1.2", "check-node-version": "^4.1.0", "commander": "^9.2.0", "execa": "^4.0.2", diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json index a596b49eccf9b2..fc4c75a86a2529 100644 --- a/packages/e2e-test-utils/package.json +++ b/packages/e2e-test-utils/package.json @@ -33,6 +33,7 @@ "@wordpress/api-fetch": "file:../api-fetch", "@wordpress/keycodes": "file:../keycodes", "@wordpress/url": "file:../url", + "change-case": "^4.1.2", "form-data": "^4.0.0", "lodash": "^4.17.21", "node-fetch": "^2.6.0" diff --git a/packages/e2e-test-utils/src/create-user.js b/packages/e2e-test-utils/src/create-user.js index e26ebbc8dc92ae..317f23c4c58d40 100644 --- a/packages/e2e-test-utils/src/create-user.js +++ b/packages/e2e-test-utils/src/create-user.js @@ -1,7 +1,7 @@ /** * External dependencies */ -import { snakeCase } from 'lodash'; +import { snakeCase } from 'change-case'; /** * Internal dependencies