@blotch/dolan 22.2.1 → 22.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add.d.ts +6 -2
- package/dist/commands/add.js +32 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/add.test.js +129 -9
- package/dist/commands/add.test.js.map +1 -1
- package/dist/commands/diff.d.ts +2 -1
- package/dist/commands/diff.js +38 -25
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/diff.test.js +72 -11
- package/dist/commands/diff.test.js.map +1 -1
- package/dist/commands/doctor.js +41 -27
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +93 -9
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/eject.js +7 -0
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/eject.test.js +39 -0
- package/dist/commands/eject.test.js.map +1 -1
- package/dist/commands/info.js +3 -2
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts +37 -1
- package/dist/commands/init.js +149 -40
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +285 -26
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/install-packages.d.ts +6 -0
- package/dist/commands/install-packages.js +20 -0
- package/dist/commands/install-packages.js.map +1 -0
- package/dist/commands/install-packages.test.d.ts +1 -0
- package/dist/commands/install-packages.test.js +55 -0
- package/dist/commands/install-packages.test.js.map +1 -0
- package/dist/commands/list.js +21 -14
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/list.test.js +62 -5
- package/dist/commands/list.test.js.map +1 -1
- package/dist/commands/outdated.js +11 -10
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/outdated.test.js +20 -5
- package/dist/commands/outdated.test.js.map +1 -1
- package/dist/commands/remove.d.ts +4 -0
- package/dist/commands/remove.js +17 -4
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/remove.test.js +53 -2
- package/dist/commands/remove.test.js.map +1 -1
- package/dist/commands/update.d.ts +6 -0
- package/dist/commands/update.js +59 -24
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/update.test.js +273 -31
- package/dist/commands/update.test.js.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +8 -0
- package/dist/registry.js +32 -24
- package/dist/registry.js.map +1 -1
- package/dist/registry.test.js +76 -37
- package/dist/registry.test.js.map +1 -1
- package/dist/testing/set-input-signal.d.ts +13 -0
- package/dist/testing/set-input-signal.js +20 -0
- package/dist/testing/set-input-signal.js.map +1 -0
- package/dist/testing/set-input-signal.test.d.ts +1 -0
- package/dist/testing/set-input-signal.test.js +20 -0
- package/dist/testing/set-input-signal.test.js.map +1 -0
- package/dist/ui/components/action-sheet/action-sheet.test.ts +48 -1
- package/dist/ui/components/action-sheet/action-sheet.ts +37 -9
- package/dist/ui/components/alert-dialog/alert-dialog.test.ts +49 -2
- package/dist/ui/components/alert-dialog/alert-dialog.ts +43 -12
- package/dist/ui/components/area-chart/area-chart-render.test.ts +52 -110
- package/dist/ui/components/area-chart/area-chart.test.ts +59 -146
- package/dist/ui/components/area-chart/area-chart.ts +100 -315
- package/dist/ui/components/area-chart/index.ts +2 -3
- package/dist/ui/components/bar-chart/bar-chart-render.test.ts +47 -163
- package/dist/ui/components/bar-chart/bar-chart.test.ts +82 -58
- package/dist/ui/components/bar-chart/bar-chart.ts +140 -294
- package/dist/ui/components/bar-chart/index.ts +3 -3
- package/dist/ui/components/bottom-sheet/bottom-sheet.test.ts +191 -9
- package/dist/ui/components/bottom-sheet/bottom-sheet.ts +136 -20
- package/dist/ui/components/button/button-render.test.ts +19 -0
- package/dist/ui/components/button/button.test.ts +2 -15
- package/dist/ui/components/button/button.ts +18 -2
- package/dist/ui/components/button-group/button-group.test.ts +2 -21
- package/dist/ui/components/candlestick-chart/candlestick-chart-render.test.ts +48 -163
- package/dist/ui/components/candlestick-chart/candlestick-chart.test.ts +107 -85
- package/dist/ui/components/candlestick-chart/candlestick-chart.ts +150 -323
- package/dist/ui/components/candlestick-chart/index.ts +3 -4
- package/dist/ui/components/chart/chart-focus.test.ts +132 -0
- package/dist/ui/components/chart/chart-focus.ts +115 -0
- package/dist/ui/components/chart/chart-presets.test.ts +139 -0
- package/dist/ui/components/chart/chart-presets.ts +271 -0
- package/dist/ui/components/chart/chart-render.test.ts +730 -0
- package/dist/ui/components/chart/chart-scene.test.ts +589 -0
- package/dist/ui/components/chart/chart-scene.ts +483 -0
- package/dist/ui/components/chart/chart-theme.test.ts +85 -0
- package/dist/ui/components/chart/chart-theme.ts +198 -0
- package/dist/ui/components/chart/chart-zoom.test.ts +159 -0
- package/dist/ui/components/chart/chart-zoom.ts +162 -0
- package/dist/ui/components/chart/chart.ts +921 -0
- package/dist/ui/components/chart/index.ts +24 -0
- package/dist/ui/components/dialog/dialog.test.ts +49 -2
- package/dist/ui/components/dialog/dialog.ts +43 -12
- package/dist/ui/components/icon/icon-theme.test.ts +133 -0
- package/dist/ui/components/icon/icon-theme.ts +204 -0
- package/dist/ui/components/icon/icon.test.ts +51 -2
- package/dist/ui/components/icon/icon.ts +38 -21
- package/dist/ui/components/line-chart/index.ts +2 -3
- package/dist/ui/components/line-chart/line-chart-render.test.ts +69 -107
- package/dist/ui/components/line-chart/line-chart.test.ts +63 -67
- package/dist/ui/components/line-chart/line-chart.ts +83 -241
- package/dist/ui/components/list/list.test.ts +69 -2
- package/dist/ui/components/list/list.ts +21 -15
- package/dist/ui/components/nav-drawer/nav-drawer.test.ts +80 -1
- package/dist/ui/components/nav-drawer/nav-drawer.ts +66 -11
- package/dist/ui/components/pagination/pagination.test.ts +62 -0
- package/dist/ui/components/pagination/pagination.ts +55 -8
- package/dist/ui/components/scatter-chart/index.ts +2 -3
- package/dist/ui/components/scatter-chart/scatter-chart-render.test.ts +51 -144
- package/dist/ui/components/scatter-chart/scatter-chart.test.ts +57 -47
- package/dist/ui/components/scatter-chart/scatter-chart.ts +104 -250
- package/dist/ui/components/scroll-area/scroll-area.test.ts +37 -2
- package/dist/ui/components/scroll-area/scroll-area.ts +8 -8
- package/dist/ui/components/spinner/spinner.test.ts +27 -0
- package/dist/ui/components/spinner/spinner.ts +33 -23
- package/dist/ui/components/toast/toast.test.ts +37 -0
- package/dist/ui/components/toast/toast.ts +20 -4
- package/dist/ui/theme/chart-colors.test.ts +30 -0
- package/dist/ui/theme/dark.css +8 -0
- package/dist/ui/theme/default.css +8 -0
- package/dist/ui/theme/icon-colors.test.ts +30 -0
- package/dist/ui/theme/tailwind-plugin.ts +10 -1
- package/dist/utils/installed.d.ts +17 -0
- package/dist/utils/installed.js +27 -0
- package/dist/utils/installed.js.map +1 -0
- package/dist/utils/installed.test.d.ts +1 -0
- package/dist/utils/installed.test.js +41 -0
- package/dist/utils/installed.test.js.map +1 -0
- package/dist/utils/interactive.d.ts +9 -0
- package/dist/utils/interactive.js +10 -0
- package/dist/utils/interactive.js.map +1 -0
- package/dist/utils/interactive.test.d.ts +1 -0
- package/dist/utils/interactive.test.js +24 -0
- package/dist/utils/interactive.test.js.map +1 -0
- package/dist/utils/packages.d.ts +36 -0
- package/dist/utils/packages.js +70 -0
- package/dist/utils/packages.js.map +1 -0
- package/dist/utils/packages.test.d.ts +1 -0
- package/dist/utils/packages.test.js +89 -0
- package/dist/utils/packages.test.js.map +1 -0
- package/dist/utils/resolve-paths.d.ts +17 -1
- package/dist/utils/resolve-paths.js +23 -3
- package/dist/utils/resolve-paths.js.map +1 -1
- package/dist/utils/resolve-paths.test.js +34 -2
- package/dist/utils/resolve-paths.test.js.map +1 -1
- package/package.json +5 -1
- package/dist/ui/components/cartesian-chart/cartesian-chart-render.test.ts +0 -188
- package/dist/ui/components/cartesian-chart/cartesian-chart.test.ts +0 -549
- package/dist/ui/components/cartesian-chart/cartesian-chart.ts +0 -1140
- package/dist/ui/components/cartesian-chart/index.ts +0 -18
package/dist/commands/add.d.ts
CHANGED
|
@@ -14,9 +14,13 @@
|
|
|
14
14
|
* `resolveDependencies` (topological order, see registry.ts).
|
|
15
15
|
* 2. Detect any already-installed components and prompt for overwrite —
|
|
16
16
|
* "skip the conflicts" is the default so a stray re-run doesn't blow
|
|
17
|
-
* away local changes.
|
|
17
|
+
* away local changes. `--force` overwrites them without asking.
|
|
18
18
|
* 3. For each component: copy every file, rewrite cross-component imports
|
|
19
19
|
* to use the user's alias config, hash the rewritten content, and record
|
|
20
20
|
* it in the lockfile.
|
|
21
|
+
* 4. Install any npm packages the components import that the project
|
|
22
|
+
* doesn't depend on yet (the charts need `@tanstack/charts`).
|
|
21
23
|
*/
|
|
22
|
-
export declare const addCommand: (components: string[]
|
|
24
|
+
export declare const addCommand: (components: string[], options?: {
|
|
25
|
+
force?: boolean;
|
|
26
|
+
}) => Promise<void>;
|
package/dist/commands/add.js
CHANGED
|
@@ -6,6 +6,9 @@ import { configExists, readConfig } from '../config.js';
|
|
|
6
6
|
import { getComponentNames, getEntry, resolveDependencies, } from '../registry.js';
|
|
7
7
|
import { getComponentFiles, getComponentSourceDir, rewriteImports, } from '../utils/resolve-paths.js';
|
|
8
8
|
import { formatContent } from '../utils/format.js';
|
|
9
|
+
import { isInteractive } from '../utils/interactive.js';
|
|
10
|
+
import { copiesTests, TESTING_LIBRARY } from '../utils/packages.js';
|
|
11
|
+
import { installComponentPackages } from './install-packages.js';
|
|
9
12
|
import { getOrCreateLockfile, hashContent, writeLockfile, } from '../lockfile.js';
|
|
10
13
|
/**
|
|
11
14
|
* Copies one or more UI components from the dolan registry into the user's
|
|
@@ -23,13 +26,16 @@ import { getOrCreateLockfile, hashContent, writeLockfile, } from '../lockfile.js
|
|
|
23
26
|
* `resolveDependencies` (topological order, see registry.ts).
|
|
24
27
|
* 2. Detect any already-installed components and prompt for overwrite —
|
|
25
28
|
* "skip the conflicts" is the default so a stray re-run doesn't blow
|
|
26
|
-
* away local changes.
|
|
29
|
+
* away local changes. `--force` overwrites them without asking.
|
|
27
30
|
* 3. For each component: copy every file, rewrite cross-component imports
|
|
28
31
|
* to use the user's alias config, hash the rewritten content, and record
|
|
29
32
|
* it in the lockfile.
|
|
33
|
+
* 4. Install any npm packages the components import that the project
|
|
34
|
+
* doesn't depend on yet (the charts need `@tanstack/charts`).
|
|
30
35
|
*/
|
|
31
|
-
export const addCommand = async (components) => {
|
|
36
|
+
export const addCommand = async (components, options = {}) => {
|
|
32
37
|
const cwd = process.cwd();
|
|
38
|
+
const interactive = isInteractive();
|
|
33
39
|
p.intro(pc.bold('dolan add'));
|
|
34
40
|
if (!configExists(cwd)) {
|
|
35
41
|
p.log.error(`No ${pc.cyan('dolan.config.json')} found. Run ${pc.bold('dolan init')} first.`);
|
|
@@ -39,6 +45,12 @@ export const addCommand = async (components) => {
|
|
|
39
45
|
const allComponents = getComponentNames();
|
|
40
46
|
let selected;
|
|
41
47
|
if (components.length === 0) {
|
|
48
|
+
// The checklist has no default to fall back on.
|
|
49
|
+
if (!interactive) {
|
|
50
|
+
p.log.error(`Name the components to add, such as ${pc.bold('dolan add button card')}.`);
|
|
51
|
+
p.log.info(`Available: ${allComponents.map((c) => pc.cyan(c)).join(', ')}`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
42
54
|
const result = await p.multiselect({
|
|
43
55
|
message: 'Which components would you like to add?',
|
|
44
56
|
options: allComponents.map((name) => ({ value: name, label: name })),
|
|
@@ -71,15 +83,20 @@ export const addCommand = async (components) => {
|
|
|
71
83
|
const destDir = resolve(cwd, config.aliases.components, name);
|
|
72
84
|
return existsSync(destDir);
|
|
73
85
|
});
|
|
74
|
-
if (existing.length > 0) {
|
|
86
|
+
if (existing.length > 0 && !options.force) {
|
|
75
87
|
// Default to "no" (initialValue: false) — destructive operations on
|
|
76
|
-
// user-owned code should require an explicit affirmative
|
|
77
|
-
//
|
|
78
|
-
const overwrite =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
// user-owned code should require an explicit affirmative, which `--force`
|
|
89
|
+
// gives up front. Without a terminal, that default is the answer.
|
|
90
|
+
const overwrite = interactive
|
|
91
|
+
? await p.confirm({
|
|
92
|
+
message: `${existing.map((c) => pc.yellow(c)).join(', ')} already exist. Overwrite?`,
|
|
93
|
+
initialValue: false,
|
|
94
|
+
})
|
|
95
|
+
: false;
|
|
82
96
|
if (p.isCancel(overwrite) || !overwrite) {
|
|
97
|
+
// Says how to overwrite them, since a run without the question never
|
|
98
|
+
// mentioned them.
|
|
99
|
+
p.log.info(`Skipped ${existing.map((c) => pc.cyan(c)).join(', ')}: already installed. Run ${pc.bold(`dolan add --force ${existing.join(' ')}`)} to overwrite.`);
|
|
83
100
|
// Filter the existing components out of `resolved` in-place via splice
|
|
84
101
|
// so later code (the copy loop, the success message) operates on the
|
|
85
102
|
// narrowed set. We can't just `resolved = filtered` because the array
|
|
@@ -96,6 +113,7 @@ export const addCommand = async (components) => {
|
|
|
96
113
|
s.start('Adding components...');
|
|
97
114
|
const componentsDir = resolve(cwd, config.aliases.components);
|
|
98
115
|
const lockfile = getOrCreateLockfile(cwd);
|
|
116
|
+
const tests = copiesTests(cwd);
|
|
99
117
|
for (const name of resolved) {
|
|
100
118
|
const srcDir = getComponentSourceDir(name);
|
|
101
119
|
const destDir = resolve(componentsDir, name);
|
|
@@ -103,7 +121,7 @@ export const addCommand = async (components) => {
|
|
|
103
121
|
if (!lockfile.components[name]) {
|
|
104
122
|
lockfile.components[name] = {};
|
|
105
123
|
}
|
|
106
|
-
const files = getComponentFiles(name);
|
|
124
|
+
const files = getComponentFiles(name, { tests });
|
|
107
125
|
for (const file of files) {
|
|
108
126
|
// Read from the registry source, then rewrite cross-component imports.
|
|
109
127
|
// The registry uses workspace-relative imports like
|
|
@@ -126,6 +144,10 @@ export const addCommand = async (components) => {
|
|
|
126
144
|
}
|
|
127
145
|
writeLockfile(cwd, lockfile);
|
|
128
146
|
s.stop('Done!');
|
|
147
|
+
installComponentPackages(cwd, resolved);
|
|
148
|
+
if (!tests) {
|
|
149
|
+
p.log.info(`Left out the components' tests: they need ${pc.cyan(TESTING_LIBRARY)}. Run ${pc.bold('ng generate @blotch/angular-lynx:add-testing')}, then ${pc.bold('dolan update')} adds them.`);
|
|
150
|
+
}
|
|
129
151
|
p.log.success(`Added ${resolved.length} component(s): ${resolved.map((c) => pc.green(c)).join(', ')}`);
|
|
130
152
|
p.outro('Components are ready to use.');
|
|
131
153
|
};
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { existsSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { createFixture, DEFAULT_CONFIG } from '../test-utils';
|
|
5
5
|
const spinnerMock = { start: vi.fn(), stop: vi.fn() };
|
|
@@ -19,16 +19,28 @@ vi.mock('@clack/prompts', () => ({
|
|
|
19
19
|
cancel: vi.fn(),
|
|
20
20
|
isCancel: vi.fn().mockReturnValue(false),
|
|
21
21
|
}));
|
|
22
|
+
// Vitest's stdin isn't a terminal, which reads as "nobody can answer". Most
|
|
23
|
+
// tests are about the questions, so they run as if in one.
|
|
24
|
+
let interactive = true;
|
|
25
|
+
vi.mock('../utils/interactive.js', () => ({
|
|
26
|
+
isInteractive: () => interactive,
|
|
27
|
+
}));
|
|
22
28
|
let fixture;
|
|
23
29
|
// `add` reads component source through resolve-paths — stub it to read from
|
|
24
30
|
// the fixture's __ui_source tree instead of the real dist/ui, same pattern
|
|
25
31
|
// used by diff.test.ts / update.test.ts.
|
|
26
32
|
vi.mock('../utils/resolve-paths.js', () => ({
|
|
27
33
|
getComponentSourceDir: (name) => join(fixture.uiDir, 'components', name),
|
|
28
|
-
getComponentFiles: (name) => readdirSync(join(fixture.uiDir, 'components', name)).filter((f) => f.endsWith('.ts')),
|
|
34
|
+
getComponentFiles: (name, { tests }) => readdirSync(join(fixture.uiDir, 'components', name)).filter((f) => f.endsWith('.ts') && (tests || !f.endsWith('.test.ts'))),
|
|
29
35
|
rewriteImports: (content) => content,
|
|
30
36
|
}));
|
|
37
|
+
// The install step runs the project's package manager; record calls instead.
|
|
38
|
+
const installComponentPackages = vi.fn();
|
|
39
|
+
vi.mock('./install-packages.js', () => ({
|
|
40
|
+
installComponentPackages: (...args) => installComponentPackages(...args),
|
|
41
|
+
}));
|
|
31
42
|
beforeEach(() => {
|
|
43
|
+
interactive = true;
|
|
32
44
|
// The @clack/prompts mock above is a module-level vi.fn() object shared by
|
|
33
45
|
// every test in this file (vi.restoreAllMocks() in afterEach only restores
|
|
34
46
|
// vi.spyOn spies, not plain vi.fn() mocks) — clear call history explicitly
|
|
@@ -42,8 +54,25 @@ afterEach(() => {
|
|
|
42
54
|
fixture?.cleanup();
|
|
43
55
|
vi.restoreAllMocks();
|
|
44
56
|
});
|
|
57
|
+
const readLockfile = (dir) => JSON.parse(readFileSync(join(dir, 'dolan.lock.json'), 'utf-8'));
|
|
45
58
|
const readInstalledFile = (dir, component, file) => readFileSync(join(dir, DEFAULT_CONFIG.aliases.components, component, file), 'utf-8');
|
|
46
59
|
describe('addCommand', () => {
|
|
60
|
+
it('installs the packages of everything it added, dependencies included', async () => {
|
|
61
|
+
fixture = createFixture({
|
|
62
|
+
config: DEFAULT_CONFIG,
|
|
63
|
+
uiSource: {
|
|
64
|
+
chart: { 'chart.ts': 'export const UiChart = {};' },
|
|
65
|
+
'line-chart': { 'line-chart.ts': 'export const UiLineChart = {};' },
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
69
|
+
const { addCommand } = await import('./add');
|
|
70
|
+
await addCommand(['line-chart']);
|
|
71
|
+
expect(installComponentPackages).toHaveBeenCalledWith(fixture.dir, [
|
|
72
|
+
'chart',
|
|
73
|
+
'line-chart',
|
|
74
|
+
]);
|
|
75
|
+
});
|
|
47
76
|
it('exits with error when no config exists', async () => {
|
|
48
77
|
fixture = createFixture({});
|
|
49
78
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
@@ -77,13 +106,14 @@ describe('addCommand', () => {
|
|
|
77
106
|
expect(p.log.info).toHaveBeenCalledWith(expect.stringContaining('Available:'));
|
|
78
107
|
});
|
|
79
108
|
it('surfaces auto-added transitive dependencies', async () => {
|
|
80
|
-
// button depends on spinner (registry.ts) — requesting
|
|
81
|
-
// should pull
|
|
109
|
+
// button depends on spinner, and spinner on icon (registry.ts) — requesting
|
|
110
|
+
// only "button" should pull both in automatically and announce them.
|
|
82
111
|
fixture = createFixture({
|
|
83
112
|
config: DEFAULT_CONFIG,
|
|
84
113
|
uiSource: {
|
|
85
114
|
button: { 'button.ts': 'export const Button = {};' },
|
|
86
115
|
spinner: { 'spinner.ts': 'export const Spinner = {};' },
|
|
116
|
+
icon: { 'icon.ts': 'export const Icon = {};' },
|
|
87
117
|
},
|
|
88
118
|
});
|
|
89
119
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
@@ -96,6 +126,7 @@ describe('addCommand', () => {
|
|
|
96
126
|
// loosely with a regex instead of relying on literal adjacency.
|
|
97
127
|
expect(p.log.info).toHaveBeenCalledWith(expect.stringMatching(/Adding dependencies:.*spinner/));
|
|
98
128
|
expect(readInstalledFile(fixture.dir, 'spinner', 'spinner.ts')).toBeDefined();
|
|
129
|
+
expect(readInstalledFile(fixture.dir, 'icon', 'icon.ts')).toBeDefined();
|
|
99
130
|
});
|
|
100
131
|
it('does not announce dependencies when they were already explicitly requested', async () => {
|
|
101
132
|
fixture = createFixture({
|
|
@@ -103,11 +134,12 @@ describe('addCommand', () => {
|
|
|
103
134
|
uiSource: {
|
|
104
135
|
button: { 'button.ts': 'export const Button = {};' },
|
|
105
136
|
spinner: { 'spinner.ts': 'export const Spinner = {};' },
|
|
137
|
+
icon: { 'icon.ts': 'export const Icon = {};' },
|
|
106
138
|
},
|
|
107
139
|
});
|
|
108
140
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
109
141
|
const { addCommand } = await import('./add');
|
|
110
|
-
await addCommand(['button', 'spinner']);
|
|
142
|
+
await addCommand(['button', 'spinner', 'icon']);
|
|
111
143
|
const p = await import('@clack/prompts');
|
|
112
144
|
expect(p.log.info).not.toHaveBeenCalledWith(expect.stringContaining('Adding dependencies'));
|
|
113
145
|
});
|
|
@@ -166,18 +198,18 @@ describe('addCommand', () => {
|
|
|
166
198
|
components: { card: { 'card.ts': cardOriginal } },
|
|
167
199
|
uiSource: {
|
|
168
200
|
card: { 'card.ts': 'export const Card = { v: 2 };' },
|
|
169
|
-
|
|
201
|
+
skeleton: { 'skeleton.ts': 'export const Skeleton = {};' },
|
|
170
202
|
},
|
|
171
203
|
});
|
|
172
204
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
173
205
|
const p = await import('@clack/prompts');
|
|
174
206
|
p.confirm.mockResolvedValue(false);
|
|
175
207
|
const { addCommand } = await import('./add');
|
|
176
|
-
await addCommand(['card', '
|
|
208
|
+
await addCommand(['card', 'skeleton']);
|
|
177
209
|
// card declined — left untouched
|
|
178
210
|
expect(readInstalledFile(fixture.dir, 'card', 'card.ts')).toBe(cardOriginal);
|
|
179
|
-
//
|
|
180
|
-
expect(readInstalledFile(fixture.dir, '
|
|
211
|
+
// skeleton wasn't already installed, so it's unaffected by the decline
|
|
212
|
+
expect(readInstalledFile(fixture.dir, 'skeleton', 'skeleton.ts')).toBeDefined();
|
|
181
213
|
});
|
|
182
214
|
it('cancels entirely when overwrite is declined and nothing else is left to add', async () => {
|
|
183
215
|
fixture = createFixture({
|
|
@@ -205,5 +237,93 @@ describe('addCommand', () => {
|
|
|
205
237
|
const { addCommand } = await import('./add');
|
|
206
238
|
await expect(addCommand(['card'])).rejects.toThrow('process.exit(0)');
|
|
207
239
|
});
|
|
240
|
+
it('overwrites installed components without asking with --force', async () => {
|
|
241
|
+
const upstream = 'export const Card = { v: 2 };';
|
|
242
|
+
fixture = createFixture({
|
|
243
|
+
config: DEFAULT_CONFIG,
|
|
244
|
+
components: { card: { 'card.ts': 'export const Card = { v: 1 };' } },
|
|
245
|
+
uiSource: { card: { 'card.ts': upstream } },
|
|
246
|
+
});
|
|
247
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
248
|
+
const p = await import('@clack/prompts');
|
|
249
|
+
const { addCommand } = await import('./add');
|
|
250
|
+
await addCommand(['card'], { force: true });
|
|
251
|
+
expect(p.confirm).not.toHaveBeenCalled();
|
|
252
|
+
expect(readInstalledFile(fixture.dir, 'card', 'card.ts')).toBe(upstream);
|
|
253
|
+
});
|
|
254
|
+
// CI, agents and scripts: a question there would wait for input that never
|
|
255
|
+
// comes.
|
|
256
|
+
describe('without a terminal', () => {
|
|
257
|
+
beforeEach(() => {
|
|
258
|
+
interactive = false;
|
|
259
|
+
});
|
|
260
|
+
it('fails without component names, since the checklist has no default', async () => {
|
|
261
|
+
fixture = createFixture({
|
|
262
|
+
config: DEFAULT_CONFIG,
|
|
263
|
+
uiSource: { card: { 'card.ts': 'export const Card = {};' } },
|
|
264
|
+
});
|
|
265
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
266
|
+
const p = await import('@clack/prompts');
|
|
267
|
+
const { addCommand } = await import('./add');
|
|
268
|
+
await expect(addCommand([])).rejects.toThrow('process.exit(1)');
|
|
269
|
+
expect(p.multiselect).not.toHaveBeenCalled();
|
|
270
|
+
expect(p.log.error).toHaveBeenCalledWith(expect.stringContaining('dolan add button card'));
|
|
271
|
+
expect(p.log.info).toHaveBeenCalledWith(expect.stringContaining('card'));
|
|
272
|
+
});
|
|
273
|
+
it('skips installed components, says how to overwrite them, and adds the rest', async () => {
|
|
274
|
+
const cardOriginal = 'export const Card = { v: 1 };';
|
|
275
|
+
fixture = createFixture({
|
|
276
|
+
config: DEFAULT_CONFIG,
|
|
277
|
+
components: { card: { 'card.ts': cardOriginal } },
|
|
278
|
+
uiSource: {
|
|
279
|
+
card: { 'card.ts': 'export const Card = { v: 2 };' },
|
|
280
|
+
skeleton: { 'skeleton.ts': 'export const Skeleton = {};' },
|
|
281
|
+
},
|
|
282
|
+
});
|
|
283
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
284
|
+
const p = await import('@clack/prompts');
|
|
285
|
+
const { addCommand } = await import('./add');
|
|
286
|
+
await addCommand(['card', 'skeleton']);
|
|
287
|
+
expect(p.confirm).not.toHaveBeenCalled();
|
|
288
|
+
expect(readInstalledFile(fixture.dir, 'card', 'card.ts')).toBe(cardOriginal);
|
|
289
|
+
expect(readInstalledFile(fixture.dir, 'skeleton', 'skeleton.ts')).toBe('export const Skeleton = {};');
|
|
290
|
+
expect(p.log.info).toHaveBeenCalledWith(expect.stringContaining('dolan add --force card'));
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
describe("components' tests", () => {
|
|
294
|
+
const setup = (dependencies) => {
|
|
295
|
+
fixture = createFixture({
|
|
296
|
+
config: DEFAULT_CONFIG,
|
|
297
|
+
uiSource: {
|
|
298
|
+
card: {
|
|
299
|
+
'card.ts': 'export const Card = {};',
|
|
300
|
+
'card.test.ts': "import '@blotch/angular-lynx-testing-library';",
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
});
|
|
304
|
+
writeFileSync(join(fixture.dir, 'package.json'), JSON.stringify({ dependencies }));
|
|
305
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
306
|
+
};
|
|
307
|
+
const installed = (file) => existsSync(join(fixture.dir, DEFAULT_CONFIG.aliases.components, 'card', file));
|
|
308
|
+
it('copies them when the project has the testing library', async () => {
|
|
309
|
+
setup({ '@blotch/angular-lynx-testing-library': '^22.0.0' });
|
|
310
|
+
const { addCommand } = await import('./add');
|
|
311
|
+
await addCommand(['card']);
|
|
312
|
+
expect(installed('card.test.ts')).toBe(true);
|
|
313
|
+
const p = await import('@clack/prompts');
|
|
314
|
+
expect(p.log.info).not.toHaveBeenCalledWith(expect.stringContaining('tests'));
|
|
315
|
+
});
|
|
316
|
+
it("leaves them out, and says how to get them, when it doesn't", async () => {
|
|
317
|
+
// They import the testing library, so `ng test` couldn't compile them.
|
|
318
|
+
setup({});
|
|
319
|
+
const { addCommand } = await import('./add');
|
|
320
|
+
await addCommand(['card']);
|
|
321
|
+
expect(installed('card.ts')).toBe(true);
|
|
322
|
+
expect(installed('card.test.ts')).toBe(false);
|
|
323
|
+
expect(readLockfile(fixture.dir).components.card).not.toHaveProperty('card.test.ts');
|
|
324
|
+
const p = await import('@clack/prompts');
|
|
325
|
+
expect(p.log.info).toHaveBeenCalledWith(expect.stringMatching(/@blotch\/angular-lynx-testing-library.*add-testing.*dolan update/));
|
|
326
|
+
});
|
|
327
|
+
});
|
|
208
328
|
});
|
|
209
329
|
//# sourceMappingURL=add.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../src/commands/add.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../src/commands/add.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/diff.d.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* - With a component name: print the per-file diff immediately. Useful for
|
|
6
6
|
* CI-style "what would change?" inspection.
|
|
7
7
|
* - Without arguments: summarize all components that have any divergence
|
|
8
|
-
* from upstream and prompt to pick which one's diff to display.
|
|
8
|
+
* from upstream and prompt to pick which one's diff to display. Without a
|
|
9
|
+
* terminal to ask in, it shows them all, as `git diff` would.
|
|
9
10
|
*
|
|
10
11
|
* Uses the same analyzeFile + summarizeComponent pipeline as `list`/`update`
|
|
11
12
|
* so what you see here matches what those commands will report.
|
package/dist/commands/diff.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as p from '@clack/prompts';
|
|
2
|
-
import { existsSync, readFileSync
|
|
2
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { resolve, join } from 'node:path';
|
|
4
4
|
import pc from 'picocolors';
|
|
5
5
|
import { configExists, readConfig } from '../config.js';
|
|
6
6
|
import { getComponentNames, getEntry } from '../registry.js';
|
|
7
7
|
import { getComponentFiles, getComponentSourceDir, rewriteImports, } from '../utils/resolve-paths.js';
|
|
8
8
|
import { formatContent } from '../utils/format.js';
|
|
9
|
+
import { trackedComponents, untrackedComponents } from '../utils/installed.js';
|
|
10
|
+
import { isInteractive } from '../utils/interactive.js';
|
|
11
|
+
import { copiesTests } from '../utils/packages.js';
|
|
9
12
|
import { getOrCreateLockfile, hashContent } from '../lockfile.js';
|
|
10
13
|
import { analyzeFile, formatDiff, summarizeComponent, STATUS_ICONS, } from '../utils/analyze.js';
|
|
11
14
|
const STATUS_SHORT_LABELS = {
|
|
@@ -22,7 +25,8 @@ const STATUS_SHORT_LABELS = {
|
|
|
22
25
|
* - With a component name: print the per-file diff immediately. Useful for
|
|
23
26
|
* CI-style "what would change?" inspection.
|
|
24
27
|
* - Without arguments: summarize all components that have any divergence
|
|
25
|
-
* from upstream and prompt to pick which one's diff to display.
|
|
28
|
+
* from upstream and prompt to pick which one's diff to display. Without a
|
|
29
|
+
* terminal to ask in, it shows them all, as `git diff` would.
|
|
26
30
|
*
|
|
27
31
|
* Uses the same analyzeFile + summarizeComponent pipeline as `list`/`update`
|
|
28
32
|
* so what you see here matches what those commands will report.
|
|
@@ -41,35 +45,40 @@ export const diffCommand = async (component) => {
|
|
|
41
45
|
p.outro('Done.');
|
|
42
46
|
return;
|
|
43
47
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (installed.length === 0) {
|
|
48
|
+
const lockfile = getOrCreateLockfile(cwd);
|
|
49
|
+
// Ejected components (no lockfile entry) are the app's code, with no
|
|
50
|
+
// upstream to diff against.
|
|
51
|
+
const installed = trackedComponents(componentsDir, lockfile);
|
|
52
|
+
const ejected = untrackedComponents(componentsDir, lockfile);
|
|
53
|
+
if (installed.length === 0 && !(component && ejected.includes(component))) {
|
|
50
54
|
p.log.warn('No components installed.');
|
|
51
55
|
p.outro('Done.');
|
|
52
56
|
return;
|
|
53
57
|
}
|
|
54
|
-
const
|
|
58
|
+
const tests = copiesTests(cwd);
|
|
55
59
|
if (component) {
|
|
56
60
|
// Show diff for a specific component
|
|
57
61
|
if (!getEntry(component)) {
|
|
58
62
|
p.log.error(`Unknown component ${pc.bold(component)}. Available: ${getComponentNames().join(', ')}`);
|
|
59
63
|
process.exit(1);
|
|
60
64
|
}
|
|
65
|
+
if (ejected.includes(component)) {
|
|
66
|
+
p.log.warn(`${pc.bold(component)} is ejected: dolan doesn't track it, so there's no upstream to compare.`);
|
|
67
|
+
p.outro('');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
61
70
|
if (!installed.includes(component)) {
|
|
62
71
|
p.log.error(`${pc.bold(component)} is not installed.`);
|
|
63
72
|
process.exit(1);
|
|
64
73
|
}
|
|
65
|
-
showComponentDiff(component, componentsDir, lockfile);
|
|
74
|
+
showComponentDiff(component, componentsDir, lockfile, tests);
|
|
66
75
|
p.outro('');
|
|
67
76
|
return;
|
|
68
77
|
}
|
|
69
78
|
// Summary mode — show all components with changes
|
|
70
79
|
const changed = [];
|
|
71
80
|
for (const name of installed) {
|
|
72
|
-
const analyses = analyzeComponent(name, componentsDir, lockfile);
|
|
81
|
+
const analyses = analyzeComponent(name, componentsDir, lockfile, tests);
|
|
73
82
|
const overall = summarizeComponent({ name, files: analyses });
|
|
74
83
|
if (overall !== 'up-to-date') {
|
|
75
84
|
changed.push({ name, status: overall });
|
|
@@ -85,28 +94,32 @@ export const diffCommand = async (component) => {
|
|
|
85
94
|
p.log.message(` ${STATUS_ICONS[status]} ${pc.bold(name)} ${STATUS_SHORT_LABELS[status]}`);
|
|
86
95
|
}
|
|
87
96
|
p.log.message('');
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
// No terminal to ask in: show them all.
|
|
98
|
+
const choice = isInteractive()
|
|
99
|
+
? await p.select({
|
|
100
|
+
message: 'Show diff for which component?',
|
|
101
|
+
options: [
|
|
102
|
+
...changed.map((c) => ({ value: c.name, label: c.name })),
|
|
103
|
+
{ value: '__all__', label: 'All changed components' },
|
|
104
|
+
{ value: '__none__', label: 'Exit' },
|
|
105
|
+
],
|
|
106
|
+
})
|
|
107
|
+
: '__all__';
|
|
96
108
|
if (p.isCancel(choice) || choice === '__none__') {
|
|
97
109
|
p.outro('');
|
|
98
110
|
return;
|
|
99
111
|
}
|
|
100
112
|
const toShow = choice === '__all__' ? changed.map((c) => c.name) : [choice];
|
|
101
113
|
for (const name of toShow) {
|
|
102
|
-
showComponentDiff(name, componentsDir, lockfile);
|
|
114
|
+
showComponentDiff(name, componentsDir, lockfile, tests);
|
|
103
115
|
}
|
|
104
116
|
p.outro('');
|
|
105
117
|
};
|
|
106
|
-
const analyzeComponent = (name, componentsDir, lockfile) => {
|
|
118
|
+
const analyzeComponent = (name, componentsDir, lockfile, tests) => {
|
|
107
119
|
const srcDir = getComponentSourceDir(name);
|
|
108
|
-
const files = getComponentFiles(name);
|
|
109
|
-
|
|
120
|
+
const files = getComponentFiles(name, { tests });
|
|
121
|
+
// Only tracked components get here, and those have an entry.
|
|
122
|
+
const lockedComponent = lockfile.components[name];
|
|
110
123
|
const destDir = resolve(componentsDir, name);
|
|
111
124
|
const analyses = [];
|
|
112
125
|
for (const file of files) {
|
|
@@ -129,8 +142,8 @@ const analyzeComponent = (name, componentsDir, lockfile) => {
|
|
|
129
142
|
}
|
|
130
143
|
return analyses;
|
|
131
144
|
};
|
|
132
|
-
const showComponentDiff = (name, componentsDir, lockfile) => {
|
|
133
|
-
const analyses = analyzeComponent(name, componentsDir, lockfile);
|
|
145
|
+
const showComponentDiff = (name, componentsDir, lockfile, tests) => {
|
|
146
|
+
const analyses = analyzeComponent(name, componentsDir, lockfile, tests);
|
|
134
147
|
p.log.message(`\n${pc.bold(name)}`);
|
|
135
148
|
for (const analysis of analyses) {
|
|
136
149
|
if (analysis.status === 'up-to-date')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
|