@mgvdev/nestkit-core 0.1.0
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/.tsbuildinfo +1 -0
- package/dist/bundler.d.ts +11 -0
- package/dist/bundler.d.ts.map +1 -0
- package/dist/bundler.js +2 -0
- package/dist/bundler.js.map +1 -0
- package/dist/compiler.d.ts +67 -0
- package/dist/compiler.d.ts.map +1 -0
- package/dist/compiler.js +2 -0
- package/dist/compiler.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +56 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-output.d.ts +20 -0
- package/dist/dev-output.d.ts.map +1 -0
- package/dist/dev-output.js +158 -0
- package/dist/dev-output.js.map +1 -0
- package/dist/dev.d.ts +37 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +210 -0
- package/dist/dev.js.map +1 -0
- package/dist/graph.d.ts +31 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +128 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +7 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +9 -0
- package/dist/logger.js.map +1 -0
- package/dist/orchestrator.d.ts +26 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +77 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/project.d.ts +8 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +52 -0
- package/dist/project.js.map +1 -0
- package/dist/tsconfig.d.ts +18 -0
- package/dist/tsconfig.d.ts.map +1 -0
- package/dist/tsconfig.js +121 -0
- package/dist/tsconfig.js.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/workspace.d.ts +21 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +109 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +40 -0
package/dist/project.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { join, relative } from 'node:path';
|
|
2
|
+
/** All dependency names declared by a package (prod + dev + peer). */
|
|
3
|
+
export function allDependencyNames(pkg) {
|
|
4
|
+
return [
|
|
5
|
+
...Object.keys(pkg.dependencies ?? {}),
|
|
6
|
+
...Object.keys(pkg.devDependencies ?? {}),
|
|
7
|
+
...Object.keys(pkg.peerDependencies ?? {}),
|
|
8
|
+
];
|
|
9
|
+
}
|
|
10
|
+
/** Map an app entry (src/main.ts) to its compiled output path (dist/main.js). */
|
|
11
|
+
function entryOutput(entry, sourceDir, outDir) {
|
|
12
|
+
const rel = relative(sourceDir, entry).replace(/\.[cm]?tsx?$/, '.js');
|
|
13
|
+
return join(outDir, rel);
|
|
14
|
+
}
|
|
15
|
+
/** Resolve a discovered package into a Project, applying nestkit.json defaults. */
|
|
16
|
+
export function resolveProject(pkg, localNames) {
|
|
17
|
+
const cfg = pkg.config;
|
|
18
|
+
const managed = cfg !== null;
|
|
19
|
+
const sourceDir = join(pkg.dir, cfg?.sourceDir ?? 'src');
|
|
20
|
+
const outDir = join(pkg.dir, cfg?.outDir ?? 'dist');
|
|
21
|
+
const compiler = cfg?.compiler ?? 'swc';
|
|
22
|
+
const type = cfg?.type ?? null;
|
|
23
|
+
let entry = null;
|
|
24
|
+
let entryOut = null;
|
|
25
|
+
if (type === 'app') {
|
|
26
|
+
entry = join(pkg.dir, cfg?.entry ?? 'src/main.ts');
|
|
27
|
+
entryOut = entryOutput(entry, sourceDir, outDir);
|
|
28
|
+
}
|
|
29
|
+
const localDeps = allDependencyNames(pkg.packageJson).filter((d) => localNames.has(d) && d !== pkg.name);
|
|
30
|
+
return {
|
|
31
|
+
name: pkg.name,
|
|
32
|
+
dir: pkg.dir,
|
|
33
|
+
managed,
|
|
34
|
+
type,
|
|
35
|
+
compiler,
|
|
36
|
+
sourceDir,
|
|
37
|
+
outDir,
|
|
38
|
+
entry,
|
|
39
|
+
entryOut,
|
|
40
|
+
adapter: type === 'app-frontend' ? (cfg?.adapter ?? 'vite') : null,
|
|
41
|
+
assets: cfg?.assets ?? [],
|
|
42
|
+
tsconfig: join(pkg.dir, cfg?.tsconfig ?? 'tsconfig.json'),
|
|
43
|
+
packageJson: pkg.packageJson,
|
|
44
|
+
localDeps,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Resolve every package in a workspace into a Project. */
|
|
48
|
+
export function resolveProjects(workspace) {
|
|
49
|
+
const localNames = new Set(workspace.packages.map((p) => p.name));
|
|
50
|
+
return workspace.packages.map((p) => resolveProject(p, localNames));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SyncResult {
|
|
2
|
+
baseFile: string;
|
|
3
|
+
/** Number of library path aliases written. */
|
|
4
|
+
aliases: number;
|
|
5
|
+
/** Package tsconfigs that had `extends` added. */
|
|
6
|
+
extended: string[];
|
|
7
|
+
/** Package tsconfigs skipped (unparseable / already extend something else). */
|
|
8
|
+
skipped: string[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Generate TypeScript path aliases so libraries can be imported by name with
|
|
12
|
+
* full autocompletion straight from source — no prior build required.
|
|
13
|
+
*
|
|
14
|
+
* Writes `tsconfig.base.json` at the root with `baseUrl` + `paths` for every
|
|
15
|
+
* managed library, and makes each managed package's tsconfig extend it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function syncTsconfigPaths(root: string): SyncResult;
|
|
18
|
+
//# sourceMappingURL=tsconfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../src/tsconfig.ts"],"names":[],"mappings":"AAyDA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CA2D1D"}
|
package/dist/tsconfig.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join, relative } from 'node:path';
|
|
3
|
+
import { resolveProjects } from './project.js';
|
|
4
|
+
import { discoverWorkspace } from './workspace.js';
|
|
5
|
+
/** Posix-normalized path relative to root (for tsconfig values). */
|
|
6
|
+
function relPosix(root, target) {
|
|
7
|
+
return relative(root, target).split('\\').join('/');
|
|
8
|
+
}
|
|
9
|
+
/** Parse JSON with comments and trailing commas (tsconfig files often use both). */
|
|
10
|
+
function parseJsonc(text) {
|
|
11
|
+
let out = '';
|
|
12
|
+
let inStr = false;
|
|
13
|
+
let strCh = '';
|
|
14
|
+
for (let i = 0; i < text.length; i++) {
|
|
15
|
+
const ch = text[i];
|
|
16
|
+
const nx = text[i + 1];
|
|
17
|
+
if (inStr) {
|
|
18
|
+
out += ch;
|
|
19
|
+
if (ch === '\\') {
|
|
20
|
+
out += nx ?? '';
|
|
21
|
+
i++;
|
|
22
|
+
}
|
|
23
|
+
else if (ch === strCh) {
|
|
24
|
+
inStr = false;
|
|
25
|
+
}
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (ch === '"' || ch === "'") {
|
|
29
|
+
inStr = true;
|
|
30
|
+
strCh = ch;
|
|
31
|
+
out += ch;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (ch === '/' && nx === '/') {
|
|
35
|
+
while (i < text.length && text[i] !== '\n')
|
|
36
|
+
i++;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (ch === '/' && nx === '*') {
|
|
40
|
+
i += 2;
|
|
41
|
+
while (i < text.length && !(text[i] === '*' && text[i + 1] === '/'))
|
|
42
|
+
i++;
|
|
43
|
+
i++;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
out += ch;
|
|
47
|
+
}
|
|
48
|
+
return JSON.parse(out.replace(/,(\s*[}\]])/g, '$1'));
|
|
49
|
+
}
|
|
50
|
+
function readJsonLoose(file) {
|
|
51
|
+
try {
|
|
52
|
+
return parseJsonc(readFileSync(file, 'utf8'));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Generate TypeScript path aliases so libraries can be imported by name with
|
|
60
|
+
* full autocompletion straight from source — no prior build required.
|
|
61
|
+
*
|
|
62
|
+
* Writes `tsconfig.base.json` at the root with `baseUrl` + `paths` for every
|
|
63
|
+
* managed library, and makes each managed package's tsconfig extend it.
|
|
64
|
+
*/
|
|
65
|
+
export function syncTsconfigPaths(root) {
|
|
66
|
+
const projects = resolveProjects(discoverWorkspace(root));
|
|
67
|
+
const libs = projects.filter((p) => p.managed && p.type === 'lib');
|
|
68
|
+
const paths = {};
|
|
69
|
+
for (const lib of libs) {
|
|
70
|
+
const index = join(lib.sourceDir, 'index.ts');
|
|
71
|
+
paths[lib.name] = [relPosix(root, index)];
|
|
72
|
+
paths[`${lib.name}/*`] = [`${relPosix(root, lib.sourceDir)}/*`];
|
|
73
|
+
}
|
|
74
|
+
// Write tsconfig.base.json, preserving unrelated fields but fully regenerating
|
|
75
|
+
// `paths` from the current libraries — so renamed/removed libs don't leave stale
|
|
76
|
+
// aliases behind. tsconfig.base.json's `paths` are owned by nestkit.
|
|
77
|
+
const baseFile = join(root, 'tsconfig.base.json');
|
|
78
|
+
const base = readJsonLoose(baseFile) ?? {};
|
|
79
|
+
base.compilerOptions ??= {};
|
|
80
|
+
base.compilerOptions.baseUrl = '.';
|
|
81
|
+
// rootDir at the workspace root keeps every package's src (and any lib src pulled
|
|
82
|
+
// in via an alias) under a common root, so `declaration`/inferred-rootDir configs
|
|
83
|
+
// don't trip TS6059. The dts/tsc compilers override rootDir per project at build.
|
|
84
|
+
base.compilerOptions.rootDir = '.';
|
|
85
|
+
base.compilerOptions.paths = paths;
|
|
86
|
+
writeFileSync(baseFile, `${JSON.stringify(base, null, 2)}\n`);
|
|
87
|
+
// Make each managed package tsconfig extend the base (so aliases apply).
|
|
88
|
+
const extended = [];
|
|
89
|
+
const skipped = [];
|
|
90
|
+
for (const p of projects.filter((x) => x.managed)) {
|
|
91
|
+
if (!existsSync(p.tsconfig))
|
|
92
|
+
continue;
|
|
93
|
+
const cfg = readJsonLoose(p.tsconfig);
|
|
94
|
+
if (!cfg) {
|
|
95
|
+
skipped.push(p.name);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
let changed = false;
|
|
99
|
+
// rootDir breaks alias-to-source: importing a lib's src pulls files outside the
|
|
100
|
+
// consumer's rootDir (TS6059). The dts/tsc compilers set rootDir explicitly, so it's
|
|
101
|
+
// safe to drop it here.
|
|
102
|
+
if (cfg.compilerOptions && 'rootDir' in cfg.compilerOptions) {
|
|
103
|
+
// Assigning undefined (rather than `delete`) drops the key from JSON output.
|
|
104
|
+
cfg.compilerOptions.rootDir = undefined;
|
|
105
|
+
changed = true;
|
|
106
|
+
}
|
|
107
|
+
const rel = relPosix(p.dir, baseFile);
|
|
108
|
+
if (!cfg.extends) {
|
|
109
|
+
cfg.extends = rel;
|
|
110
|
+
changed = true;
|
|
111
|
+
extended.push(p.name);
|
|
112
|
+
}
|
|
113
|
+
else if (cfg.extends !== rel) {
|
|
114
|
+
skipped.push(p.name); // already extends another config — don't touch `extends`
|
|
115
|
+
}
|
|
116
|
+
if (changed)
|
|
117
|
+
writeFileSync(p.tsconfig, `${JSON.stringify(cfg, null, 2)}\n`);
|
|
118
|
+
}
|
|
119
|
+
return { baseFile, aliases: libs.length, extended, skipped };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=tsconfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../src/tsconfig.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/** Supported package managers. */
|
|
2
|
+
export type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
|
|
3
|
+
/** Project kinds nestkit knows how to build. */
|
|
4
|
+
export type ProjectType = 'app' | 'lib' | 'app-frontend';
|
|
5
|
+
/** Built-in compilers for the transform step. */
|
|
6
|
+
export type CompilerName = 'swc' | 'tsc';
|
|
7
|
+
/** Raw shape of a per-package `nestkit.json` file. */
|
|
8
|
+
export interface NestkitProjectConfig {
|
|
9
|
+
/** Project kind. Required. */
|
|
10
|
+
type: ProjectType;
|
|
11
|
+
/** Entry file for apps, relative to the package dir. Default `src/main.ts`. */
|
|
12
|
+
entry?: string;
|
|
13
|
+
/** Transform compiler. Default `swc`. */
|
|
14
|
+
compiler?: CompilerName;
|
|
15
|
+
/** Output directory, relative to the package dir. Default `dist`. */
|
|
16
|
+
outDir?: string;
|
|
17
|
+
/** Source directory, relative to the package dir. Default `src`. */
|
|
18
|
+
sourceDir?: string;
|
|
19
|
+
/** Frontend adapter name for `app-frontend` projects. Default `vite`. */
|
|
20
|
+
adapter?: string;
|
|
21
|
+
/** Extra glob patterns of non-TS assets to copy into `outDir`. */
|
|
22
|
+
assets?: string[];
|
|
23
|
+
/** tsconfig file, relative to the package dir. Default `tsconfig.json`. */
|
|
24
|
+
tsconfig?: string;
|
|
25
|
+
}
|
|
26
|
+
/** A raw package.json (only the fields nestkit reads). */
|
|
27
|
+
export interface PackageJson {
|
|
28
|
+
name?: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
type?: 'module' | 'commonjs';
|
|
31
|
+
main?: string;
|
|
32
|
+
bin?: string | Record<string, string>;
|
|
33
|
+
scripts?: Record<string, string>;
|
|
34
|
+
dependencies?: Record<string, string>;
|
|
35
|
+
devDependencies?: Record<string, string>;
|
|
36
|
+
peerDependencies?: Record<string, string>;
|
|
37
|
+
workspaces?: string[] | {
|
|
38
|
+
packages?: string[];
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** A package discovered in the workspace, before resolution into a Project. */
|
|
42
|
+
export interface WorkspacePackage {
|
|
43
|
+
/** package.json `name`. */
|
|
44
|
+
name: string;
|
|
45
|
+
/** Absolute path to the package directory. */
|
|
46
|
+
dir: string;
|
|
47
|
+
packageJson: PackageJson;
|
|
48
|
+
/** Parsed nestkit.json, if present. */
|
|
49
|
+
config: NestkitProjectConfig | null;
|
|
50
|
+
}
|
|
51
|
+
/** The whole discovered workspace. */
|
|
52
|
+
export interface Workspace {
|
|
53
|
+
/** Absolute workspace root. */
|
|
54
|
+
root: string;
|
|
55
|
+
packageManager: PackageManager;
|
|
56
|
+
packages: WorkspacePackage[];
|
|
57
|
+
}
|
|
58
|
+
/** A fully-resolved project node with defaults applied. */
|
|
59
|
+
export interface Project {
|
|
60
|
+
name: string;
|
|
61
|
+
dir: string;
|
|
62
|
+
/** True when a valid nestkit.json was found (nestkit will compile it). */
|
|
63
|
+
managed: boolean;
|
|
64
|
+
type: ProjectType | null;
|
|
65
|
+
compiler: CompilerName;
|
|
66
|
+
/** Absolute source dir. */
|
|
67
|
+
sourceDir: string;
|
|
68
|
+
/** Absolute output dir. */
|
|
69
|
+
outDir: string;
|
|
70
|
+
/** Absolute entry file (apps only). */
|
|
71
|
+
entry: string | null;
|
|
72
|
+
/** Absolute path of the runnable entry output (apps only), e.g. dist/main.js. */
|
|
73
|
+
entryOut: string | null;
|
|
74
|
+
adapter: string | null;
|
|
75
|
+
assets: string[];
|
|
76
|
+
/** Absolute tsconfig path. */
|
|
77
|
+
tsconfig: string;
|
|
78
|
+
packageJson: PackageJson;
|
|
79
|
+
/** Names of local (workspace) packages this project depends on. */
|
|
80
|
+
localDeps: string[];
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PackageManager, Workspace } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Detect the package manager from lockfiles / config, in priority order.
|
|
4
|
+
* bun > pnpm > yarn > npm, falling back to npm.
|
|
5
|
+
*/
|
|
6
|
+
export declare function detectPackageManager(root: string): PackageManager;
|
|
7
|
+
/**
|
|
8
|
+
* Resolve the workspace glob patterns for a package manager.
|
|
9
|
+
* pnpm reads pnpm-workspace.yaml (falling back to package.json#workspaces);
|
|
10
|
+
* npm / yarn / bun read package.json#workspaces.
|
|
11
|
+
*/
|
|
12
|
+
export declare function readWorkspaceGlobs(root: string, pm: PackageManager): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Ensure a workspace glob (e.g. `packages/*`) is declared for the detected PM.
|
|
15
|
+
* pnpm → pnpm-workspace.yaml; npm/yarn/bun → package.json#workspaces.
|
|
16
|
+
* Returns true when a change was written.
|
|
17
|
+
*/
|
|
18
|
+
export declare function ensureWorkspaceGlob(root: string, glob: string): boolean;
|
|
19
|
+
/** Discover every workspace package that has a package.json with a name. */
|
|
20
|
+
export declare function discoverWorkspace(root: string): Workspace;
|
|
21
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAe,cAAc,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAA;AAE1F;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAMjE;AAeD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,MAAM,EAAE,CAU7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA8BvE;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CA2BzD"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { globSync } from 'tinyglobby';
|
|
4
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
5
|
+
import { loadProjectConfig } from './config.js';
|
|
6
|
+
/**
|
|
7
|
+
* Detect the package manager from lockfiles / config, in priority order.
|
|
8
|
+
* bun > pnpm > yarn > npm, falling back to npm.
|
|
9
|
+
*/
|
|
10
|
+
export function detectPackageManager(root) {
|
|
11
|
+
const has = (f) => existsSync(join(root, f));
|
|
12
|
+
if (has('bun.lockb') || has('bun.lock'))
|
|
13
|
+
return 'bun';
|
|
14
|
+
if (has('pnpm-lock.yaml') || has('pnpm-workspace.yaml'))
|
|
15
|
+
return 'pnpm';
|
|
16
|
+
if (has('yarn.lock'))
|
|
17
|
+
return 'yarn';
|
|
18
|
+
return 'npm';
|
|
19
|
+
}
|
|
20
|
+
function readJson(file) {
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(readFileSync(file, 'utf8'));
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function normalizeWorkspacesField(pkg) {
|
|
29
|
+
if (!pkg?.workspaces)
|
|
30
|
+
return [];
|
|
31
|
+
return Array.isArray(pkg.workspaces) ? pkg.workspaces : (pkg.workspaces.packages ?? []);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the workspace glob patterns for a package manager.
|
|
35
|
+
* pnpm reads pnpm-workspace.yaml (falling back to package.json#workspaces);
|
|
36
|
+
* npm / yarn / bun read package.json#workspaces.
|
|
37
|
+
*/
|
|
38
|
+
export function readWorkspaceGlobs(root, pm) {
|
|
39
|
+
const rootPkg = readJson(join(root, 'package.json'));
|
|
40
|
+
if (pm === 'pnpm') {
|
|
41
|
+
const wsFile = join(root, 'pnpm-workspace.yaml');
|
|
42
|
+
if (existsSync(wsFile)) {
|
|
43
|
+
const doc = parseYaml(readFileSync(wsFile, 'utf8'));
|
|
44
|
+
if (doc?.packages?.length)
|
|
45
|
+
return doc.packages;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return normalizeWorkspacesField(rootPkg);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Ensure a workspace glob (e.g. `packages/*`) is declared for the detected PM.
|
|
52
|
+
* pnpm → pnpm-workspace.yaml; npm/yarn/bun → package.json#workspaces.
|
|
53
|
+
* Returns true when a change was written.
|
|
54
|
+
*/
|
|
55
|
+
export function ensureWorkspaceGlob(root, glob) {
|
|
56
|
+
const pm = detectPackageManager(root);
|
|
57
|
+
if (pm === 'pnpm') {
|
|
58
|
+
const file = join(root, 'pnpm-workspace.yaml');
|
|
59
|
+
const doc = (existsSync(file) ? parseYaml(readFileSync(file, 'utf8')) : null) ?? {};
|
|
60
|
+
const parsed = typeof doc === 'object' && !Array.isArray(doc) ? doc : {};
|
|
61
|
+
const pkgs = Array.isArray(parsed.packages) ? parsed.packages : [];
|
|
62
|
+
if (pkgs.includes(glob))
|
|
63
|
+
return false;
|
|
64
|
+
parsed.packages = [...pkgs, glob];
|
|
65
|
+
writeFileSync(file, stringifyYaml(parsed));
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
const pkgPath = join(root, 'package.json');
|
|
69
|
+
const existed = existsSync(pkgPath);
|
|
70
|
+
const pkg = (existed ? JSON.parse(readFileSync(pkgPath, 'utf8')) : {});
|
|
71
|
+
const current = normalizeWorkspacesField(pkg);
|
|
72
|
+
if (current.includes(glob))
|
|
73
|
+
return false;
|
|
74
|
+
if (pkg.workspaces && !Array.isArray(pkg.workspaces)) {
|
|
75
|
+
pkg.workspaces = { ...pkg.workspaces, packages: [...current, glob] };
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
pkg.workspaces = [...current, glob];
|
|
79
|
+
}
|
|
80
|
+
if (!existed)
|
|
81
|
+
pkg.name ??= 'workspace';
|
|
82
|
+
writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/** Discover every workspace package that has a package.json with a name. */
|
|
86
|
+
export function discoverWorkspace(root) {
|
|
87
|
+
const packageManager = detectPackageManager(root);
|
|
88
|
+
const globs = readWorkspaceGlobs(root, packageManager);
|
|
89
|
+
const packages = [];
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
const pkgJsonPaths = globSync(globs.map((g) => `${g.replace(/\/$/, '')}/package.json`), { cwd: root, absolute: true, ignore: ['**/node_modules/**'] });
|
|
92
|
+
for (const pkgJsonPath of pkgJsonPaths.sort()) {
|
|
93
|
+
const dir = dirname(pkgJsonPath);
|
|
94
|
+
if (seen.has(dir))
|
|
95
|
+
continue;
|
|
96
|
+
const packageJson = readJson(pkgJsonPath);
|
|
97
|
+
if (!packageJson?.name)
|
|
98
|
+
continue;
|
|
99
|
+
seen.add(dir);
|
|
100
|
+
packages.push({
|
|
101
|
+
name: packageJson.name,
|
|
102
|
+
dir,
|
|
103
|
+
packageJson,
|
|
104
|
+
config: loadProjectConfig(dir),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return { root, packageManager, packages };
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mgvdev/nestkit-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "nestkit workspace engine: project graph, package-manager detection, orchestrator and dev runtime.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"chokidar": "^4.0.1",
|
|
23
|
+
"consola": "^3.2.3",
|
|
24
|
+
"picocolors": "^1.1.1",
|
|
25
|
+
"tinyglobby": "^0.2.10",
|
|
26
|
+
"yaml": "^2.6.1"
|
|
27
|
+
},
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/mgvdev/nestkit.git",
|
|
34
|
+
"directory": "packages/core"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/mgvdev/nestkit#readme",
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/mgvdev/nestkit/issues"
|
|
39
|
+
}
|
|
40
|
+
}
|