Skip to content

Commit e70248b

Browse files
committed
refactor(rollup)!: receive package patterns instead of config files (#65)
1 parent 12813a1 commit e70248b

File tree

8 files changed

+42
-198
lines changed

8 files changed

+42
-198
lines changed

.pnp.js

Lines changed: 0 additions & 102 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
-667 Bytes
Binary file not shown.
-638 Bytes
Binary file not shown.
-638 Bytes
Binary file not shown.
-638 Bytes
Binary file not shown.

packages/rollup/src/collect.ts

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,47 @@
1-
import { RollupConfigInjectOptions } from '@azimutlabs/rollup-config';
1+
import { RollupConfig, RollupConfigInjectOptions } from '@azimutlabs/rollup-config';
22
import { sync } from 'glob';
3-
import { dirname, resolve } from 'path';
4-
import readPkgUp from 'read-pkg-up';
3+
import { resolve } from 'path';
54
import type { RollupOptions } from 'rollup';
65
import loadConfigFile from 'rollup/dist/loadConfigFile';
76

8-
export const collect = async (
9-
filePatterns: readonly string[],
10-
cwd = process.cwd()
11-
): Promise<readonly RollupOptions[]> => {
12-
const packagePath = readPkgUp.sync({ cwd })?.path ?? cwd;
13-
const rootDir = dirname(packagePath);
14-
15-
const configPromises = filePatterns
16-
.flatMap((pattern) => sync(pattern, { cwd: rootDir }) as readonly string[])
17-
.map(async (file) => {
18-
class InjectOptions extends RollupConfigInjectOptions {
19-
// eslint-disable-next-line class-methods-use-this
20-
public get rootDir(): string {
21-
return dirname(file);
7+
const configFilePattern = 'rollup.config.@(js|mjs|cjs)';
8+
9+
export function collect(
10+
packages: readonly string[]
11+
): (dirname: string) => Promise<readonly RollupOptions[]>;
12+
export function collect(
13+
packages: readonly string[]
14+
): (options: RollupOptions) => Promise<readonly RollupOptions[]>;
15+
export function collect(packages: readonly string[]) {
16+
return async (dirnameOrOptions: RollupOptions | string): Promise<readonly RollupOptions[]> => {
17+
const rootDir = RollupConfig.getRootDir(dirnameOrOptions);
18+
const configPromises = packages
19+
.flatMap((pattern) => sync(pattern, { cwd: rootDir }) as readonly string[])
20+
.map(async (pkg) => {
21+
const absolutePkgPath = resolve(rootDir, pkg);
22+
23+
const [firstFoundFile] = sync(configFilePattern, { cwd: absolutePkgPath });
24+
if (!firstFoundFile) return null;
25+
26+
class InjectOptions extends RollupConfigInjectOptions {
27+
// eslint-disable-next-line class-methods-use-this
28+
public get rootDir(): string {
29+
return absolutePkgPath;
30+
}
2231
}
23-
}
2432

25-
const { warnings, options } = await loadConfigFile(resolve(cwd, file), new InjectOptions());
33+
const { warnings, options } = await loadConfigFile(
34+
resolve(absolutePkgPath, firstFoundFile),
35+
new InjectOptions()
36+
);
2637

27-
warnings.flush();
38+
warnings.flush();
2839

29-
return options;
30-
});
40+
return options;
41+
});
3142

32-
return Promise.all(configPromises).then((configs) => configs.flat());
33-
};
43+
return Promise.all(configPromises).then((configs) =>
44+
configs.flat().filter((it): it is RollupOptions => it !== null)
45+
);
46+
};
47+
}

packages/rollup/src/fromWorkspaces.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
1-
import { resolve } from 'path';
2-
import readPackage from 'read-pkg-up';
1+
import readPkgUp from 'read-pkg-up';
32

43
import { sortDependencies } from './sortDependencies';
54

6-
const defaultConfigFile = 'rollup.config.@(js|mjs|cjs)';
7-
8-
export const fromWorkspaces = (pattern = defaultConfigFile): readonly string[] => {
9-
const foundPackage = readPackage.sync();
5+
export const fromWorkspaces = (): readonly string[] => {
6+
const foundPackage = readPkgUp.sync();
107
if (!foundPackage) return [];
118

129
const { workspaces } = foundPackage.packageJson;
1310
if (!workspaces) return [];
1411

1512
const spaces = Array.isArray(workspaces) ? workspaces : workspaces.packages;
16-
return sortDependencies(spaces).map((workspace: string) => resolve(workspace, pattern));
13+
return sortDependencies(spaces);
1714
};

yarn.lock

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -4286,23 +4286,6 @@ __metadata:
42864286
languageName: node
42874287
linkType: hard
42884288

4289-
"a@file:../a::locator=b%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fb":
4290-
version: 0.0.0
4291-
resolution: "a@file:../a#../a::hash=49c627&locator=b%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fb"
4292-
dependencies:
4293-
c: "file:../c"
4294-
checksum: 35e9ca42e57cbd492b9d499dca48b5233116e4fb59f03c3b3e81e4ef602adb967f1ca877ef7ae492e180f5b30df942cc6eecd7a18960d850d8ae439684dfe0da
4295-
languageName: node
4296-
linkType: hard
4297-
4298-
"a@workspace:packages/tests/src/rollup/packages/a":
4299-
version: 0.0.0-use.local
4300-
resolution: "a@workspace:packages/tests/src/rollup/packages/a"
4301-
dependencies:
4302-
c: "file:../c"
4303-
languageName: unknown
4304-
linkType: soft
4305-
43064289
"abab@npm:^2.0.3":
43074290
version: 2.0.5
43084291
resolution: "abab@npm:2.0.5"
@@ -4767,15 +4750,6 @@ __metadata:
47674750
languageName: node
47684751
linkType: hard
47694752

4770-
"b@workspace:packages/tests/src/rollup/packages/b":
4771-
version: 0.0.0-use.local
4772-
resolution: "b@workspace:packages/tests/src/rollup/packages/b"
4773-
dependencies:
4774-
a: "file:../a"
4775-
c: "file:../c"
4776-
languageName: unknown
4777-
linkType: soft
4778-
47794753
"babel-jest@npm:^26.6.3":
47804754
version: 26.6.3
47814755
resolution: "babel-jest@npm:26.6.3"
@@ -5098,33 +5072,6 @@ __metadata:
50985072
languageName: node
50995073
linkType: hard
51005074

5101-
"c@file:../c::locator=a%40file%3A..%2Fa%23..%2Fa%3A%3Ahash%3D49c627%26locator%3Db%2540workspace%253Apackages%252Ftests%252Fsrc%252Frollup%252Fpackages%252Fb":
5102-
version: 0.0.0
5103-
resolution: "c@file:../c#../c::hash=269aec&locator=a%40file%3A..%2Fa%23..%2Fa%3A%3Ahash%3D49c627%26locator%3Db%2540workspace%253Apackages%252Ftests%252Fsrc%252Frollup%252Fpackages%252Fb"
5104-
checksum: 7d3da9612be7b952116aaa48056651fe813dfbbb87a6809e7f1681a391501e29c80b912eabffb33364b43fec8705aad37119e2acbc50a0a5d21820b11110a22d
5105-
languageName: node
5106-
linkType: hard
5107-
5108-
"c@file:../c::locator=a%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fa":
5109-
version: 0.0.0
5110-
resolution: "c@file:../c#../c::hash=269aec&locator=a%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fa"
5111-
checksum: 7d3da9612be7b952116aaa48056651fe813dfbbb87a6809e7f1681a391501e29c80b912eabffb33364b43fec8705aad37119e2acbc50a0a5d21820b11110a22d
5112-
languageName: node
5113-
linkType: hard
5114-
5115-
"c@file:../c::locator=b%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fb":
5116-
version: 0.0.0
5117-
resolution: "c@file:../c#../c::hash=269aec&locator=b%40workspace%3Apackages%2Ftests%2Fsrc%2Frollup%2Fpackages%2Fb"
5118-
checksum: 7d3da9612be7b952116aaa48056651fe813dfbbb87a6809e7f1681a391501e29c80b912eabffb33364b43fec8705aad37119e2acbc50a0a5d21820b11110a22d
5119-
languageName: node
5120-
linkType: hard
5121-
5122-
"c@workspace:packages/tests/src/rollup/packages/c":
5123-
version: 0.0.0-use.local
5124-
resolution: "c@workspace:packages/tests/src/rollup/packages/c"
5125-
languageName: unknown
5126-
linkType: soft
5127-
51285075
"cacache@npm:^12.0.0, cacache@npm:^12.0.3":
51295076
version: 12.0.4
51305077
resolution: "cacache@npm:12.0.4"
@@ -5990,12 +5937,6 @@ __metadata:
59905937
languageName: node
59915938
linkType: hard
59925939

5993-
"d@workspace:packages/tests/src/rollup/packages/d":
5994-
version: 0.0.0-use.local
5995-
resolution: "d@workspace:packages/tests/src/rollup/packages/d"
5996-
languageName: unknown
5997-
linkType: soft
5998-
59995940
"dargs@npm:^4.0.1":
60005941
version: 4.1.0
60015942
resolution: "dargs@npm:4.1.0"
@@ -6352,12 +6293,6 @@ __metadata:
63526293
languageName: node
63536294
linkType: hard
63546295

6355-
"e@workspace:packages/tests/src/rollup/packages/e":
6356-
version: 0.0.0-use.local
6357-
resolution: "e@workspace:packages/tests/src/rollup/packages/e"
6358-
languageName: unknown
6359-
linkType: soft
6360-
63616296
"ecc-jsbn@npm:~0.1.1":
63626297
version: 0.1.2
63636298
resolution: "ecc-jsbn@npm:0.1.2"

0 commit comments

Comments
 (0)