@nshiab/setup-data-project 1.0.23 → 1.0.25
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/esm/helpers/getProjectTasks.js +1 -1
- package/esm/helpers/installPackagesAndFetchDocs.d.ts.map +1 -1
- package/esm/helpers/installPackagesAndFetchDocs.js +49 -27
- package/esm/main.js +1 -0
- package/package.json +1 -1
- package/script/helpers/getProjectTasks.js +1 -1
- package/script/helpers/installPackagesAndFetchDocs.d.ts.map +1 -1
- package/script/helpers/installPackagesAndFetchDocs.js +49 -27
- package/script/main.js +1 -0
|
@@ -6,7 +6,7 @@ export function getProjectTasks() {
|
|
|
6
6
|
? "deno run -A --env --watch sda/main.ts"
|
|
7
7
|
: runtime === "bun"
|
|
8
8
|
? "bun run --watch sda/main.ts"
|
|
9
|
-
: "node --env-file=.env --watch sda/main.ts",
|
|
9
|
+
: "node --env-file=.env --watch --experimental-strip-types sda/main.ts",
|
|
10
10
|
clean: "rm -rf .sda-cache .journalism-cache .tmp",
|
|
11
11
|
};
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4FxB"}
|
|
@@ -15,54 +15,76 @@ export async function installPackagesAndFetchDocs(selectedPackages, options = {}
|
|
|
15
15
|
let lastDoc = "";
|
|
16
16
|
for (const pkg of selectedPackages) {
|
|
17
17
|
const s = spinner();
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
: `npm install ${pkg}`;
|
|
23
|
-
if (!options.silent) {
|
|
24
|
-
s.start(`Installing ${pkg} via ${runtime}...`);
|
|
18
|
+
const pkgsToInstall = [pkg];
|
|
19
|
+
if (pkg === "@nshiab/simple-data-analysis" ||
|
|
20
|
+
pkg === "@nshiab/journalism-dataviz") {
|
|
21
|
+
pkgsToInstall.push("@observablehq/plot");
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
resolve(void 0);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
});
|
|
23
|
+
for (const p of pkgsToInstall) {
|
|
24
|
+
const isObservablePlot = p === "@observablehq/plot";
|
|
25
|
+
const installCmd = runtime === "deno"
|
|
26
|
+
? (isObservablePlot ? "deno add npm:" + p : "deno add jsr:" + p)
|
|
27
|
+
: runtime === "bun"
|
|
28
|
+
? "bun add " + p
|
|
29
|
+
: "npm install " + p;
|
|
37
30
|
if (!options.silent) {
|
|
38
|
-
s.
|
|
31
|
+
s.start("Installing " + p + " via " + runtime + "...");
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
await new Promise((resolve, reject) => {
|
|
35
|
+
commandRunner.exec(installCmd, (error) => {
|
|
36
|
+
if (error) {
|
|
37
|
+
reject(error);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
resolve(void 0);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (!options.silent) {
|
|
45
|
+
s.stop("✅ " + p + " installed!");
|
|
46
|
+
}
|
|
39
47
|
}
|
|
40
|
-
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (!options.silent) {
|
|
50
|
+
s.stop("❌ Failed to install " + p + ".");
|
|
51
|
+
}
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Documentation logic
|
|
56
|
+
if (pkg === "@observablehq/plot") {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const sFetch = spinner();
|
|
60
|
+
try {
|
|
41
61
|
if (!options.silent) {
|
|
42
|
-
sFetch.start(
|
|
62
|
+
sFetch.start("Fetching documentation for " + pkg + "...");
|
|
43
63
|
}
|
|
44
64
|
const repoName = pkg.split("/")[1];
|
|
45
|
-
const url =
|
|
65
|
+
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
66
|
+
"/refs/heads/main/llm.md";
|
|
46
67
|
const response = await fetch(url);
|
|
47
68
|
if (response.ok) {
|
|
48
69
|
const docContent = await response.text();
|
|
49
|
-
writeFileSync(join("docs",
|
|
70
|
+
writeFileSync(join("docs", repoName + ".md"), docContent);
|
|
50
71
|
if (!options.silent) {
|
|
51
|
-
sFetch.stop(
|
|
72
|
+
sFetch.stop("✅ Documentation for " + pkg + " saved!");
|
|
52
73
|
}
|
|
53
74
|
lastDoc = docContent;
|
|
54
75
|
}
|
|
55
76
|
else {
|
|
56
77
|
if (!options.silent) {
|
|
57
|
-
sFetch.stop(
|
|
78
|
+
sFetch.stop("⚠️ No documentation (llm.md) found for " + pkg +
|
|
79
|
+
". Skipping doc fetch.");
|
|
58
80
|
}
|
|
59
81
|
}
|
|
60
82
|
}
|
|
61
83
|
catch (error) {
|
|
62
84
|
if (!options.silent) {
|
|
63
|
-
|
|
85
|
+
sFetch.stop("❌ Failed to fetch documentation for " + pkg + ".");
|
|
64
86
|
}
|
|
65
|
-
|
|
87
|
+
console.error(error);
|
|
66
88
|
}
|
|
67
89
|
}
|
|
68
90
|
return lastDoc;
|
package/esm/main.js
CHANGED
|
@@ -16,6 +16,7 @@ async function main() {
|
|
|
16
16
|
const runtime = getRuntime();
|
|
17
17
|
console.log();
|
|
18
18
|
intro(`Hi! 👋 (Running on ${runtime})`);
|
|
19
|
+
updateProjectConfig(getProjectTasks());
|
|
19
20
|
const installedPackages = getInstalledPackages();
|
|
20
21
|
const options = PACKAGE_OPTIONS.map((opt) => ({
|
|
21
22
|
...opt,
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ function getProjectTasks() {
|
|
|
9
9
|
? "deno run -A --env --watch sda/main.ts"
|
|
10
10
|
: runtime === "bun"
|
|
11
11
|
? "bun run --watch sda/main.ts"
|
|
12
|
-
: "node --env-file=.env --watch sda/main.ts",
|
|
12
|
+
: "node --env-file=.env --watch --experimental-strip-types sda/main.ts",
|
|
13
13
|
clean: "rm -rf .sda-cache .journalism-cache .tmp",
|
|
14
14
|
};
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"installPackagesAndFetchDocs.d.ts","sourceRoot":"","sources":["../../src/helpers/installPackagesAndFetchDocs.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4FxB"}
|
|
@@ -52,54 +52,76 @@ async function installPackagesAndFetchDocs(selectedPackages, options = {}) {
|
|
|
52
52
|
let lastDoc = "";
|
|
53
53
|
for (const pkg of selectedPackages) {
|
|
54
54
|
const s = (0, prompts_1.spinner)();
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
: `npm install ${pkg}`;
|
|
60
|
-
if (!options.silent) {
|
|
61
|
-
s.start(`Installing ${pkg} via ${runtime}...`);
|
|
55
|
+
const pkgsToInstall = [pkg];
|
|
56
|
+
if (pkg === "@nshiab/simple-data-analysis" ||
|
|
57
|
+
pkg === "@nshiab/journalism-dataviz") {
|
|
58
|
+
pkgsToInstall.push("@observablehq/plot");
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
resolve(void 0);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
});
|
|
60
|
+
for (const p of pkgsToInstall) {
|
|
61
|
+
const isObservablePlot = p === "@observablehq/plot";
|
|
62
|
+
const installCmd = runtime === "deno"
|
|
63
|
+
? (isObservablePlot ? "deno add npm:" + p : "deno add jsr:" + p)
|
|
64
|
+
: runtime === "bun"
|
|
65
|
+
? "bun add " + p
|
|
66
|
+
: "npm install " + p;
|
|
74
67
|
if (!options.silent) {
|
|
75
|
-
s.
|
|
68
|
+
s.start("Installing " + p + " via " + runtime + "...");
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
await new Promise((resolve, reject) => {
|
|
72
|
+
exports.commandRunner.exec(installCmd, (error) => {
|
|
73
|
+
if (error) {
|
|
74
|
+
reject(error);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
resolve(void 0);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
if (!options.silent) {
|
|
82
|
+
s.stop("✅ " + p + " installed!");
|
|
83
|
+
}
|
|
76
84
|
}
|
|
77
|
-
|
|
85
|
+
catch (error) {
|
|
86
|
+
if (!options.silent) {
|
|
87
|
+
s.stop("❌ Failed to install " + p + ".");
|
|
88
|
+
}
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Documentation logic
|
|
93
|
+
if (pkg === "@observablehq/plot") {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const sFetch = (0, prompts_1.spinner)();
|
|
97
|
+
try {
|
|
78
98
|
if (!options.silent) {
|
|
79
|
-
sFetch.start(
|
|
99
|
+
sFetch.start("Fetching documentation for " + pkg + "...");
|
|
80
100
|
}
|
|
81
101
|
const repoName = pkg.split("/")[1];
|
|
82
|
-
const url =
|
|
102
|
+
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
103
|
+
"/refs/heads/main/llm.md";
|
|
83
104
|
const response = await fetch(url);
|
|
84
105
|
if (response.ok) {
|
|
85
106
|
const docContent = await response.text();
|
|
86
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.join)("docs",
|
|
107
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)("docs", repoName + ".md"), docContent);
|
|
87
108
|
if (!options.silent) {
|
|
88
|
-
sFetch.stop(
|
|
109
|
+
sFetch.stop("✅ Documentation for " + pkg + " saved!");
|
|
89
110
|
}
|
|
90
111
|
lastDoc = docContent;
|
|
91
112
|
}
|
|
92
113
|
else {
|
|
93
114
|
if (!options.silent) {
|
|
94
|
-
sFetch.stop(
|
|
115
|
+
sFetch.stop("⚠️ No documentation (llm.md) found for " + pkg +
|
|
116
|
+
". Skipping doc fetch.");
|
|
95
117
|
}
|
|
96
118
|
}
|
|
97
119
|
}
|
|
98
120
|
catch (error) {
|
|
99
121
|
if (!options.silent) {
|
|
100
|
-
|
|
122
|
+
sFetch.stop("❌ Failed to fetch documentation for " + pkg + ".");
|
|
101
123
|
}
|
|
102
|
-
|
|
124
|
+
console.error(error);
|
|
103
125
|
}
|
|
104
126
|
}
|
|
105
127
|
return lastDoc;
|
package/script/main.js
CHANGED
|
@@ -21,6 +21,7 @@ async function main() {
|
|
|
21
21
|
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
22
22
|
console.log();
|
|
23
23
|
(0, prompts_1.intro)(`Hi! 👋 (Running on ${runtime})`);
|
|
24
|
+
(0, updateProjectConfig_js_1.updateProjectConfig)((0, getProjectTasks_js_1.getProjectTasks)());
|
|
24
25
|
const installedPackages = (0, getInstalledPackages_js_1.getInstalledPackages)();
|
|
25
26
|
const options = packageOptions_js_1.PACKAGE_OPTIONS.map((opt) => ({
|
|
26
27
|
...opt,
|