@nshiab/setup-data-project 2.0.0 → 2.0.2
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/README.md +2 -1
- package/esm/helpers/ensureAgents.d.ts +2 -1
- package/esm/helpers/ensureAgents.d.ts.map +1 -1
- package/esm/helpers/ensureAgents.js +38 -4
- package/esm/helpers/fetchPackageDocs.d.ts +8 -0
- package/esm/helpers/fetchPackageDocs.d.ts.map +1 -0
- package/esm/helpers/fetchPackageDocs.js +75 -0
- package/esm/helpers/getInstalledPackageVersions.d.ts +2 -0
- package/esm/helpers/getInstalledPackageVersions.d.ts.map +1 -0
- package/esm/helpers/getInstalledPackageVersions.js +91 -0
- package/esm/helpers/installPackages.d.ts +7 -0
- package/esm/helpers/installPackages.d.ts.map +1 -0
- package/esm/helpers/installPackages.js +59 -0
- package/esm/helpers/packageRegistry.js +6 -6
- package/esm/helpers/projectManifest.d.ts +1 -0
- package/esm/helpers/projectManifest.d.ts.map +1 -1
- package/esm/helpers/projectManifest.js +9 -2
- package/esm/helpers/syncPackageDocs.d.ts +2 -1
- package/esm/helpers/syncPackageDocs.d.ts.map +1 -1
- package/esm/helpers/syncPackageDocs.js +31 -12
- package/esm/main.js +10 -5
- package/package.json +1 -1
- package/script/helpers/ensureAgents.d.ts +2 -1
- package/script/helpers/ensureAgents.d.ts.map +1 -1
- package/script/helpers/ensureAgents.js +38 -4
- package/script/helpers/fetchPackageDocs.d.ts +8 -0
- package/script/helpers/fetchPackageDocs.d.ts.map +1 -0
- package/script/helpers/fetchPackageDocs.js +78 -0
- package/script/helpers/getInstalledPackageVersions.d.ts +2 -0
- package/script/helpers/getInstalledPackageVersions.d.ts.map +1 -0
- package/script/helpers/getInstalledPackageVersions.js +94 -0
- package/script/helpers/installPackages.d.ts +7 -0
- package/script/helpers/installPackages.d.ts.map +1 -0
- package/script/helpers/installPackages.js +96 -0
- package/script/helpers/packageRegistry.js +6 -6
- package/script/helpers/projectManifest.d.ts +1 -0
- package/script/helpers/projectManifest.d.ts.map +1 -1
- package/script/helpers/projectManifest.js +9 -2
- package/script/helpers/syncPackageDocs.d.ts +2 -1
- package/script/helpers/syncPackageDocs.d.ts.map +1 -1
- package/script/helpers/syncPackageDocs.js +30 -11
- package/script/main.js +10 -5
- package/esm/helpers/installPackagesAndFetchDocs.d.ts +0 -10
- package/esm/helpers/installPackagesAndFetchDocs.d.ts.map +0 -1
- package/esm/helpers/installPackagesAndFetchDocs.js +0 -109
- package/script/helpers/installPackagesAndFetchDocs.d.ts +0 -10
- package/script/helpers/installPackagesAndFetchDocs.d.ts.map +0 -1
- package/script/helpers/installPackagesAndFetchDocs.js +0 -147
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.commandRunner = void 0;
|
|
37
|
-
exports.fetchPackageDocs = fetchPackageDocs;
|
|
38
|
-
exports.installPackagesAndFetchDocs = installPackagesAndFetchDocs;
|
|
39
|
-
const prompts_1 = require("@clack/prompts");
|
|
40
|
-
const childProcess = __importStar(require("node:child_process"));
|
|
41
|
-
const node_fs_1 = require("node:fs");
|
|
42
|
-
const node_path_1 = require("node:path");
|
|
43
|
-
const getRuntime_js_1 = require("./getRuntime.js");
|
|
44
|
-
exports.commandRunner = {
|
|
45
|
-
exec: childProcess.exec,
|
|
46
|
-
};
|
|
47
|
-
// Temporary: remove this bypass after the 2.0 release window.
|
|
48
|
-
// https://github.com/nshiab/setup-data-project/issues/15
|
|
49
|
-
const PACKAGES_WITH_FRESH_DENO_RELEASES = new Set([
|
|
50
|
-
"@nshiab/simple-data-analysis-core",
|
|
51
|
-
"@nshiab/simple-data-analysis",
|
|
52
|
-
]);
|
|
53
|
-
async function fetchPackageDocs(pkg, options = {}) {
|
|
54
|
-
if (!(0, node_fs_1.existsSync)("docs")) {
|
|
55
|
-
(0, node_fs_1.mkdirSync)("docs");
|
|
56
|
-
}
|
|
57
|
-
const sFetch = (0, prompts_1.spinner)();
|
|
58
|
-
if (!options.silent) {
|
|
59
|
-
sFetch.start("Fetching documentation for " + pkg + "...");
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const repoName = pkg.split("/")[1];
|
|
63
|
-
const url = "https://raw.githubusercontent.com/nshiab/" + repoName +
|
|
64
|
-
"/refs/heads/main/llm.md";
|
|
65
|
-
const response = await fetch(url);
|
|
66
|
-
if (!response.ok) {
|
|
67
|
-
if (!options.silent) {
|
|
68
|
-
sFetch.stop("⚠️ No documentation (llm.md) found for " + pkg + ".");
|
|
69
|
-
}
|
|
70
|
-
prompts_1.log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
71
|
-
"later to try again.");
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
const docContent = await response.text();
|
|
75
|
-
(0, node_fs_1.writeFileSync)((0, node_path_1.join)("docs", repoName + ".md"), docContent);
|
|
76
|
-
if (!options.silent) {
|
|
77
|
-
sFetch.stop("✅ Documentation for " + pkg + " saved!");
|
|
78
|
-
}
|
|
79
|
-
return docContent;
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
if (!options.silent) {
|
|
83
|
-
sFetch.stop("❌ Failed to fetch documentation for " + pkg + ".");
|
|
84
|
-
}
|
|
85
|
-
prompts_1.log.warn(`Documentation for ${pkg} could not be refreshed. Rerun the script ` +
|
|
86
|
-
"later to try again.");
|
|
87
|
-
console.error(error);
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
async function installPackagesAndFetchDocs(selectedPackages, options = {}) {
|
|
92
|
-
const runtime = (0, getRuntime_js_1.getRuntime)();
|
|
93
|
-
if (Array.isArray(selectedPackages) && selectedPackages.length > 0) {
|
|
94
|
-
if (!(0, node_fs_1.existsSync)("docs")) {
|
|
95
|
-
(0, node_fs_1.mkdirSync)("docs");
|
|
96
|
-
}
|
|
97
|
-
let lastDoc = "";
|
|
98
|
-
for (const pkg of selectedPackages) {
|
|
99
|
-
const s = (0, prompts_1.spinner)();
|
|
100
|
-
const pkgsToInstall = [pkg];
|
|
101
|
-
if (pkg === "@nshiab/simple-data-analysis" ||
|
|
102
|
-
pkg === "@nshiab/journalism-dataviz") {
|
|
103
|
-
pkgsToInstall.push("@observablehq/plot");
|
|
104
|
-
}
|
|
105
|
-
for (const p of pkgsToInstall) {
|
|
106
|
-
const isObservablePlot = p === "@observablehq/plot";
|
|
107
|
-
const minimumDependencyAgeOption = PACKAGES_WITH_FRESH_DENO_RELEASES.has(p) ? " --min-dep-age=0" : "";
|
|
108
|
-
const installCmd = runtime === "deno"
|
|
109
|
-
? (isObservablePlot
|
|
110
|
-
? "deno add npm:" + p
|
|
111
|
-
: "deno add" + minimumDependencyAgeOption + " jsr:" + p)
|
|
112
|
-
: runtime === "bun"
|
|
113
|
-
? "bun add " + p
|
|
114
|
-
: "npm install " + p;
|
|
115
|
-
if (!options.silent) {
|
|
116
|
-
s.start("Installing " + p + " via " + runtime + "...");
|
|
117
|
-
}
|
|
118
|
-
try {
|
|
119
|
-
await new Promise((resolve, reject) => {
|
|
120
|
-
exports.commandRunner.exec(installCmd, (error) => {
|
|
121
|
-
if (error) {
|
|
122
|
-
reject(error);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
resolve(void 0);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
if (!options.silent) {
|
|
130
|
-
s.stop("✅ " + p + " installed!");
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
if (!options.silent) {
|
|
135
|
-
s.stop("❌ Failed to install " + p + ".");
|
|
136
|
-
}
|
|
137
|
-
throw error;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const docContent = await fetchPackageDocs(pkg, options);
|
|
141
|
-
if (docContent !== undefined) {
|
|
142
|
-
lastDoc = docContent;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return lastDoc;
|
|
146
|
-
}
|
|
147
|
-
}
|