Skip to content

Commit d73c912

Browse files
refactor: [M3-9214] - Introduce the (at)linode/shared package (linode#11844)
* Create new linode/shared package * Fix imports * Appease typescript * Update imports * Move nodebalancer factory * Test fixes * Update package scripts * Added changeset: Move `LinodeSelect` to new `shared` package * Added changeset: New `shared` package with `LinodeSelect` as the first component * Linting fixes * Add shared package to storybook * Add missing dependencies * Update lockfile * Feedback @bnussman-akamai @coliu-akamai * Fix unit test * Add validation artifact to ci.yml * Fix cannabalizing imports * Use <CloseIcon /> in LinodeSelect
1 parent b8fa65b commit d73c912

File tree

186 files changed

+951
-635
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+951
-635
lines changed

.github/workflows/ci.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
"linode-manager",
1818
"@linode/api-v4",
1919
"@linode/queries",
20+
"@linode/shared",
2021
"@linode/ui",
2122
"@linode/utilities",
2223
"@linode/validation",
@@ -233,6 +234,30 @@ jobs:
233234
- run: pnpm install --frozen-lockfile
234235
- run: pnpm run --filter @linode/queries test
235236

237+
test-shared:
238+
runs-on: ubuntu-latest
239+
needs: build-sdk
240+
steps:
241+
- uses: actions/checkout@v4
242+
- uses: pnpm/action-setup@v4
243+
with:
244+
run_install: false
245+
version: 10
246+
- uses: actions/setup-node@v4
247+
with:
248+
node-version: "20.17"
249+
cache: "pnpm"
250+
- uses: actions/download-artifact@v4
251+
with:
252+
name: packages-api-v4-lib
253+
path: packages/api-v4/lib
254+
- uses: actions/download-artifact@v4
255+
with:
256+
name: packages-validation-lib
257+
path: packages/validation/lib
258+
- run: pnpm install --frozen-lockfile
259+
- run: pnpm run --filter @linode/shared test
260+
236261
typecheck-ui:
237262
runs-on: ubuntu-latest
238263
needs: build-sdk
@@ -289,6 +314,30 @@ jobs:
289314
- run: pnpm install --frozen-lockfile
290315
- run: pnpm run --filter @linode/queries typecheck
291316

317+
typecheck-shared:
318+
runs-on: ubuntu-latest
319+
needs: build-sdk
320+
steps:
321+
- uses: actions/checkout@v4
322+
- uses: pnpm/action-setup@v4
323+
with:
324+
run_install: false
325+
version: 10
326+
- uses: actions/setup-node@v4
327+
with:
328+
node-version: "20.17"
329+
cache: "pnpm"
330+
- uses: actions/download-artifact@v4
331+
with:
332+
name: packages-api-v4-lib
333+
path: packages/api-v4/lib
334+
- uses: actions/download-artifact@v4
335+
with:
336+
name: packages-validation-lib
337+
path: packages/validation/lib
338+
- run: pnpm install --frozen-lockfile
339+
- run: pnpm run --filter @linode/shared typecheck
340+
292341
typecheck-manager:
293342
runs-on: ubuntu-latest
294343
needs: build-sdk

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ This repository is home to the Akamai Connected **[Cloud Manager](https://cloud.
4545
- [`@linode/api-v4`](packages/api-v4/)
4646
- [`@linode/queries`](packages/queries/)
4747
- [`@linode/search`](packages/search/)
48+
- [`@linode/shared`](packages/shared/)
4849
- [`@linode/ui`](packages/ui/)
4950
- [`@linode/utilities`](packages/utilities/)
5051
- [`@linode/validation`](packages/validation/)

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
"build:analyze": "pnpm run --filter linode-manager build:analyze",
2020
"bootstrap": "pnpm install:all && pnpm build:validation && pnpm build:sdk",
2121
"up:expose": "npm_config_package_import_method=clone-or-copy pnpm install:all && pnpm build:validation && pnpm build:sdk && pnpm start:all:expose",
22-
"dev": "concurrently -n api-v4,validation,ui,utilities,queries,manager -c blue,yellow,magenta,cyan,gray,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter linode-manager start\"",
23-
"start:all:expose": "concurrently -n api-v4,validation,ui,utilities,queries,manager -c blue,yellow,magenta,cyan,gray,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter linode-manager start:expose\"",
22+
"dev": "concurrently -n api-v4,validation,ui,utilities,queries,shared,manager -c blue,yellow,magenta,cyan,gray,blue,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter @linode/shared start\" \"pnpm run --filter linode-manager start\"",
23+
"start:all:expose": "concurrently -n api-v4,validation,ui,utilities,queries,shared,manager -c blue,yellow,magenta,cyan,gray,blue,green \"pnpm run --filter @linode/api-v4 start\" \"pnpm run --filter @linode/validation start\" \"pnpm run --filter @linode/ui start\" \"pnpm run --filter @linode/utilities start\" \"pnpm run --filter @linode/queries start\" \"pnpm run --filter @linode/shared start\" \"pnpm run --filter linode-manager start:expose\"",
2424
"start:manager": "pnpm --filter linode-manager start",
2525
"start:manager:ci": "pnpm run --filter linode-manager start:ci",
2626
"docs": "bunx [email protected] dev docs",
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Removed
3+
---
4+
5+
Move `LinodeSelect` to new `shared` package ([#11844](https://github.com/linode/manager/pull/11844))

packages/manager/.storybook/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const config: StorybookConfig = {
55
stories: [
66
'../src/components/**/*.@(mdx|stories.@(js|ts|jsx|tsx))',
77
'../src/features/**/*.@(mdx|stories.@(js|ts|jsx|tsx))',
8+
'../../shared/src/**/*.@(mdx|stories.@(js|ts|jsx|tsx))',
89
'../../ui/src/components/**/*.@(mdx|stories.@(js|ts|jsx|tsx))',
910
],
1011
addons: [

packages/manager/cypress/e2e/core/account/account-linode-managed.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* @file Integration tests for Cloud Manager account enable Linode Managed flows.
33
*/
44

5+
import { linodeFactory } from '@linode/utilities';
56
import {
67
visitUrlWithManagedDisabled,
78
visitUrlWithManagedEnabled,
@@ -21,7 +22,6 @@ import { ui } from 'support/ui';
2122
import { chooseRegion } from 'support/util/regions';
2223

2324
import { accountFactory } from 'src/factories/account';
24-
import { linodeFactory } from 'src/factories/linodes';
2525
import { profileFactory } from 'src/factories/profile';
2626

2727
import type { Linode } from '@linode/api-v4';

packages/manager/cypress/e2e/core/account/service-transfer.spec.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
import { getProfile } from '@linode/api-v4/lib/profile';
6+
import { createLinodeRequestFactory, linodeFactory } from '@linode/utilities';
67
import { authenticate } from 'support/api/authentication';
78
import { visitUrlWithManagedEnabled } from 'support/api/managed';
89
import {
@@ -21,13 +22,15 @@ import { pollLinodeStatus } from 'support/util/polling';
2122
import { randomLabel, randomUuid } from 'support/util/random';
2223
import { chooseRegion } from 'support/util/regions';
2324

24-
import { linodeFactory } from 'src/factories';
2525
import { entityTransferFactory } from 'src/factories/entityTransfers';
26-
import { createLinodeRequestFactory } from 'src/factories/linodes';
2726
import { formatDate } from 'src/utilities/formatDate';
2827

29-
import type { EntityTransferStatus } from '@linode/api-v4';
30-
import type { EntityTransfer, Linode, Profile } from '@linode/api-v4';
28+
import type {
29+
EntityTransfer,
30+
EntityTransferStatus,
31+
Linode,
32+
Profile,
33+
} from '@linode/api-v4';
3134

3235
// Service transfer empty state message.
3336
const serviceTransferEmptyState = 'No data to display.';

packages/manager/cypress/e2e/core/cloudpulse/dbaas-widgets-verification.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @file Integration Tests for CloudPulse Dbass Dashboard.
33
*/
4-
import { regionFactory } from '@linode/utilities';
4+
import { linodeFactory, regionFactory } from '@linode/utilities';
55
import { widgetDetails } from 'support/constants/widgets';
66
import { mockGetAccount } from 'support/intercepts/account';
77
import {
@@ -27,7 +27,6 @@ import {
2727
dashboardMetricFactory,
2828
databaseFactory,
2929
kubeLinodeFactory,
30-
linodeFactory,
3130
widgetFactory,
3231
} from 'src/factories';
3332
import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils';

packages/manager/cypress/e2e/core/cloudpulse/linode-widget-verification.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @file Integration Tests for CloudPulse Linode Dashboard.
33
*/
4-
import { regionFactory } from '@linode/utilities';
4+
import { linodeFactory, regionFactory } from '@linode/utilities';
55
import { widgetDetails } from 'support/constants/widgets';
66
import { mockGetAccount } from 'support/intercepts/account';
77
import {
@@ -25,7 +25,6 @@ import {
2525
dashboardFactory,
2626
dashboardMetricFactory,
2727
kubeLinodeFactory,
28-
linodeFactory,
2928
widgetFactory,
3029
} from 'src/factories';
3130
import { generateGraphData } from 'src/features/CloudPulse/Utils/CloudPulseWidgetUtils';

packages/manager/cypress/e2e/core/firewalls/create-firewall.spec.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1+
import { createLinodeRequestFactory } from '@linode/utilities';
12
import { authenticate } from 'support/api/authentication';
23
import { interceptCreateFirewall } from 'support/intercepts/firewalls';
34
import { ui } from 'support/ui';
45
import { cleanUp } from 'support/util/cleanup';
56
import { createTestLinode } from 'support/util/linodes';
67
import { randomLabel, randomString } from 'support/util/random';
78
import { chooseRegion } from 'support/util/regions';
8-
9-
import { createLinodeRequestFactory } from 'src/factories/linodes';
10-
119
authenticate();
1210
describe.skip('create firewall', () => {
1311
before(() => {

0 commit comments

Comments
 (0)