@neurodevs/meta-node 0.1.0 → 0.2.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/.vscode/tasks.json +18 -0
- package/build/__tests__/modules/NpmAutopackage.test.d.ts +47 -12
- package/build/__tests__/modules/NpmAutopackage.test.js +314 -34
- package/build/__tests__/modules/NpmAutopackage.test.js.map +1 -1
- package/build/index.d.ts +6 -2
- package/build/index.js +11 -5
- package/build/index.js.map +1 -1
- package/build/modules/NpmAutopackage.d.ts +49 -16
- package/build/modules/NpmAutopackage.js +221 -41
- package/build/modules/NpmAutopackage.js.map +1 -1
- package/build/scripts/runAutopackage.js +4 -2
- package/build/scripts/runAutopackage.js.map +1 -1
- package/build/testDoubles/Autopackage/FakeAutopackage.d.ts +8 -0
- package/build/testDoubles/Autopackage/FakeAutopackage.js +18 -0
- package/build/testDoubles/Autopackage/FakeAutopackage.js.map +1 -0
- package/package.json +5 -1
- package/src/__tests__/modules/NpmAutopackage.test.ts +415 -33
- package/src/index.ts +9 -3
- package/src/modules/NpmAutopackage.ts +272 -42
- package/src/scripts/runAutopackage.ts +4 -2
- package/src/testDoubles/Autopackage/FakeAutopackage.ts +19 -0
- package/build/__tests__/modules/PackageJsonUpdater.test.d.ts +0 -7
- package/build/__tests__/modules/PackageJsonUpdater.test.js +0 -63
- package/build/__tests__/modules/PackageJsonUpdater.test.js.map +0 -1
- package/build/modules/PackageJsonUpdater.d.ts +0 -8
- package/build/modules/PackageJsonUpdater.js +0 -10
- package/build/modules/PackageJsonUpdater.js.map +0 -1
- package/src/__tests__/modules/PackageJsonUpdater.test.ts +0 -23
- package/src/modules/PackageJsonUpdater.ts +0 -13
|
@@ -1,35 +1,65 @@
|
|
|
1
1
|
import { execSync } from 'child_process';
|
|
2
|
+
import fs from 'fs';
|
|
2
3
|
export default class NpmAutopackage implements Autopackage {
|
|
3
4
|
static Class?: AutopackageConstructor;
|
|
4
5
|
static chdir: (directory: string) => void;
|
|
5
6
|
static execSync: typeof execSync;
|
|
7
|
+
static existsSync: typeof fs.existsSync;
|
|
8
|
+
static fetch: typeof fetch;
|
|
9
|
+
static readFileSync: typeof fs.readFileSync;
|
|
10
|
+
static writeFileSync: typeof fs.writeFileSync;
|
|
6
11
|
private packageName;
|
|
7
12
|
private packageDescription;
|
|
8
13
|
private gitNamespace;
|
|
9
14
|
private installDir;
|
|
15
|
+
private keywords?;
|
|
16
|
+
private license?;
|
|
17
|
+
private author?;
|
|
10
18
|
protected constructor(options: AutopackageOptions);
|
|
11
19
|
static Create(options: AutopackageOptions): Promise<Autopackage>;
|
|
12
20
|
createPackage(): Promise<void>;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private gitAdd;
|
|
17
|
-
private gitCommitCreateModule;
|
|
18
|
-
private gitRemoteAddOrigin;
|
|
19
|
-
private execSetupVscode;
|
|
20
|
-
private gitCommitSetupVscode;
|
|
21
|
+
private throwIfGithubTokenNotInEnv;
|
|
22
|
+
private get githubToken();
|
|
23
|
+
private createRepoInGithubOrg;
|
|
21
24
|
private chdirToInstallDir;
|
|
22
|
-
private
|
|
25
|
+
private cloneGitRepo;
|
|
26
|
+
private get packageDirExists();
|
|
23
27
|
private get packageDir();
|
|
28
|
+
private get gitUrl();
|
|
29
|
+
private chdirToPackageDir;
|
|
30
|
+
private spruceCreateModule;
|
|
31
|
+
private get packageJsonExists();
|
|
32
|
+
private get packageJsonPath();
|
|
33
|
+
private execSpruceCreateModule;
|
|
34
|
+
private commitCreatePackage;
|
|
35
|
+
private gitAddAll;
|
|
36
|
+
private gitCommitCreatePackage;
|
|
37
|
+
private gitPush;
|
|
38
|
+
private updatePackage;
|
|
39
|
+
private get packageUpdated();
|
|
40
|
+
private get pkg();
|
|
41
|
+
private updatePackageJson;
|
|
42
|
+
private get updatedJsonFile();
|
|
43
|
+
private get scopedPackage();
|
|
44
|
+
private orderJsonKeys;
|
|
45
|
+
private commitUpdatePackage;
|
|
46
|
+
private gitCommitUpdatePackage;
|
|
47
|
+
private updateGitignore;
|
|
48
|
+
private get gitignoreUpdated();
|
|
49
|
+
private get gitignorePath();
|
|
50
|
+
private commitUpdateGitignore;
|
|
51
|
+
private gitCommitUpdateGitignore;
|
|
52
|
+
private setupVscode;
|
|
53
|
+
private get vscodeSettingsExists();
|
|
54
|
+
private spruceSetupVscode;
|
|
55
|
+
private commitSetupVscode;
|
|
56
|
+
private gitCommitSetup;
|
|
24
57
|
private get chdir();
|
|
25
58
|
private get exec();
|
|
26
|
-
private get
|
|
27
|
-
private
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
-
private get addRemoteCmd();
|
|
31
|
-
private readonly setupVscodeCmd;
|
|
32
|
-
private readonly commitVscodeCmd;
|
|
59
|
+
private get existsSync();
|
|
60
|
+
private get fetch();
|
|
61
|
+
private get readFileSync();
|
|
62
|
+
private get writeFileSync();
|
|
33
63
|
}
|
|
34
64
|
export interface Autopackage {
|
|
35
65
|
createPackage(): Promise<void>;
|
|
@@ -40,5 +70,8 @@ export interface AutopackageOptions {
|
|
|
40
70
|
gitNamespace: string;
|
|
41
71
|
npmNamespace: string;
|
|
42
72
|
installDir: string;
|
|
73
|
+
keywords?: string[];
|
|
74
|
+
license?: string;
|
|
75
|
+
author?: string;
|
|
43
76
|
}
|
|
44
77
|
export type AutopackageConstructor = new () => Autopackage;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const child_process_1 = require("child_process");
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
4
8
|
class NpmAutopackage {
|
|
5
9
|
constructor(options) {
|
|
6
|
-
|
|
7
|
-
this.addCmd = 'git add .';
|
|
8
|
-
this.commitCreateCmd = 'git commit -m "patch: create module"';
|
|
9
|
-
this.setupVscodeCmd = 'spruce setup.vscode --all true';
|
|
10
|
-
this.commitVscodeCmd = 'git commit -m "patch: setup vscode"';
|
|
11
|
-
const { name, description, gitNamespace, installDir } = options;
|
|
10
|
+
const { name, description, gitNamespace, installDir, license, author, keywords, } = options;
|
|
12
11
|
this.packageName = name;
|
|
13
12
|
this.packageDescription = description;
|
|
14
13
|
this.gitNamespace = gitNamespace;
|
|
15
14
|
this.installDir = installDir;
|
|
15
|
+
this.keywords = keywords;
|
|
16
|
+
this.license = license;
|
|
17
|
+
this.author = author;
|
|
16
18
|
}
|
|
17
19
|
static async Create(options) {
|
|
18
20
|
const instance = new (this.Class ?? this)(options);
|
|
@@ -20,49 +22,217 @@ class NpmAutopackage {
|
|
|
20
22
|
return instance;
|
|
21
23
|
}
|
|
22
24
|
async createPackage() {
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.execSetupVscode();
|
|
26
|
-
}
|
|
27
|
-
execCreateModule() {
|
|
25
|
+
this.throwIfGithubTokenNotInEnv();
|
|
26
|
+
await this.createRepoInGithubOrg();
|
|
28
27
|
this.chdirToInstallDir();
|
|
29
|
-
this.
|
|
28
|
+
this.cloneGitRepo();
|
|
29
|
+
this.chdirToPackageDir();
|
|
30
|
+
this.spruceCreateModule();
|
|
31
|
+
this.updatePackage();
|
|
32
|
+
this.updateGitignore();
|
|
33
|
+
this.setupVscode();
|
|
30
34
|
}
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.gitCommitCreateModule();
|
|
36
|
-
this.gitRemoteAddOrigin();
|
|
35
|
+
throwIfGithubTokenNotInEnv() {
|
|
36
|
+
if (!this.githubToken) {
|
|
37
|
+
throw new Error('\n\nPlease set process.env.GITHUB_TOKEN!\n');
|
|
38
|
+
}
|
|
37
39
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
get githubToken() {
|
|
41
|
+
return process.env.GITHUB_TOKEN;
|
|
40
42
|
}
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
+
async createRepoInGithubOrg() {
|
|
44
|
+
await this.fetch(`https://api.github.com/orgs/${this.gitNamespace}/repos`, {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
headers: {
|
|
47
|
+
Authorization: `token ${this.githubToken}`,
|
|
48
|
+
Accept: 'application/vnd.github+json',
|
|
49
|
+
'Content-Type': 'application/json',
|
|
50
|
+
},
|
|
51
|
+
body: JSON.stringify({
|
|
52
|
+
name: this.packageName,
|
|
53
|
+
private: false,
|
|
54
|
+
description: this.packageDescription,
|
|
55
|
+
auto_init: true,
|
|
56
|
+
gitignore_template: 'Node',
|
|
57
|
+
license_template: 'mit',
|
|
58
|
+
}),
|
|
59
|
+
});
|
|
43
60
|
}
|
|
44
|
-
|
|
45
|
-
this.
|
|
61
|
+
chdirToInstallDir() {
|
|
62
|
+
this.chdir(this.installDir);
|
|
46
63
|
}
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
cloneGitRepo() {
|
|
65
|
+
if (!this.packageDirExists) {
|
|
66
|
+
this.exec(`git clone ${this.gitUrl}`);
|
|
67
|
+
}
|
|
49
68
|
}
|
|
50
|
-
|
|
51
|
-
this.
|
|
52
|
-
this.gitAdd();
|
|
53
|
-
this.gitCommitSetupVscode();
|
|
69
|
+
get packageDirExists() {
|
|
70
|
+
return this.existsSync(this.packageDir);
|
|
54
71
|
}
|
|
55
|
-
|
|
56
|
-
this.
|
|
72
|
+
get packageDir() {
|
|
73
|
+
return `${this.installDir}/${this.packageName}`;
|
|
57
74
|
}
|
|
58
|
-
|
|
59
|
-
this.
|
|
75
|
+
get gitUrl() {
|
|
76
|
+
return `https://github.com/${this.gitNamespace}/${this.packageName}.git`;
|
|
60
77
|
}
|
|
61
|
-
|
|
78
|
+
chdirToPackageDir() {
|
|
62
79
|
this.chdir(this.packageDir);
|
|
63
80
|
}
|
|
64
|
-
|
|
65
|
-
|
|
81
|
+
spruceCreateModule() {
|
|
82
|
+
if (!this.packageJsonExists) {
|
|
83
|
+
this.execSpruceCreateModule();
|
|
84
|
+
this.commitCreatePackage();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
get packageJsonExists() {
|
|
88
|
+
return this.existsSync(this.packageJsonPath);
|
|
89
|
+
}
|
|
90
|
+
get packageJsonPath() {
|
|
91
|
+
return `${this.packageDir}/package.json`;
|
|
92
|
+
}
|
|
93
|
+
execSpruceCreateModule() {
|
|
94
|
+
this.exec(`spruce create.module --name "${this.packageName}" --destination "${this.installDir}/${this.packageName}" --description "${this.packageDescription}"`);
|
|
95
|
+
}
|
|
96
|
+
commitCreatePackage() {
|
|
97
|
+
this.gitAddAll();
|
|
98
|
+
this.gitCommitCreatePackage();
|
|
99
|
+
this.gitPush();
|
|
100
|
+
}
|
|
101
|
+
gitAddAll() {
|
|
102
|
+
this.exec('git add .');
|
|
103
|
+
}
|
|
104
|
+
gitCommitCreatePackage() {
|
|
105
|
+
this.exec('git commit -m "patch: create package"');
|
|
106
|
+
}
|
|
107
|
+
gitPush() {
|
|
108
|
+
this.exec('git push');
|
|
109
|
+
}
|
|
110
|
+
updatePackage() {
|
|
111
|
+
if (!this.packageUpdated) {
|
|
112
|
+
this.updatePackageJson();
|
|
113
|
+
this.commitUpdatePackage();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
get packageUpdated() {
|
|
117
|
+
return this.pkg.name === `@${this.scopedPackage}`;
|
|
118
|
+
}
|
|
119
|
+
get pkg() {
|
|
120
|
+
const raw = this.readFileSync(this.packageJsonPath, {
|
|
121
|
+
encoding: 'utf-8',
|
|
122
|
+
});
|
|
123
|
+
return JSON.parse(raw);
|
|
124
|
+
}
|
|
125
|
+
updatePackageJson() {
|
|
126
|
+
const updated = { ...this.pkg, ...this.updatedJsonFile };
|
|
127
|
+
const ordered = this.orderJsonKeys(updated, [
|
|
128
|
+
'name',
|
|
129
|
+
'version',
|
|
130
|
+
'description',
|
|
131
|
+
'keywords',
|
|
132
|
+
'license',
|
|
133
|
+
'author',
|
|
134
|
+
'homepage',
|
|
135
|
+
'repository',
|
|
136
|
+
'bugs',
|
|
137
|
+
'main',
|
|
138
|
+
'scripts',
|
|
139
|
+
'dependencies',
|
|
140
|
+
'devDependencies',
|
|
141
|
+
'jest',
|
|
142
|
+
'skill',
|
|
143
|
+
]);
|
|
144
|
+
this.writeFileSync(this.packageJsonPath, JSON.stringify(ordered, null, 2) + '\n', { encoding: 'utf-8' });
|
|
145
|
+
}
|
|
146
|
+
get updatedJsonFile() {
|
|
147
|
+
return {
|
|
148
|
+
name: `@${this.scopedPackage}`,
|
|
149
|
+
keywords: this.keywords ?? [],
|
|
150
|
+
license: this.license,
|
|
151
|
+
author: this.author,
|
|
152
|
+
main: 'build/index.js',
|
|
153
|
+
homepage: `https://github.com/${this.gitNamespace}/${this.packageName}`,
|
|
154
|
+
repository: {
|
|
155
|
+
type: 'git',
|
|
156
|
+
url: `git+https://github.com/${this.gitNamespace}/${this.packageName}.git`,
|
|
157
|
+
},
|
|
158
|
+
bugs: {
|
|
159
|
+
url: `https://github.com/${this.gitNamespace}/${this.packageName}/issues`,
|
|
160
|
+
},
|
|
161
|
+
dependencies: {},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
get scopedPackage() {
|
|
165
|
+
return `${this.gitNamespace}/${this.packageName}`;
|
|
166
|
+
}
|
|
167
|
+
orderJsonKeys(json, keyOrder) {
|
|
168
|
+
const ordered = {};
|
|
169
|
+
for (const key of keyOrder) {
|
|
170
|
+
if (key in json) {
|
|
171
|
+
ordered[key] = json[key];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const remainingKeys = Object.keys(json)
|
|
175
|
+
.filter((k) => !keyOrder.includes(k))
|
|
176
|
+
.sort();
|
|
177
|
+
for (const key of remainingKeys) {
|
|
178
|
+
ordered[key] = json[key];
|
|
179
|
+
}
|
|
180
|
+
return ordered;
|
|
181
|
+
}
|
|
182
|
+
commitUpdatePackage() {
|
|
183
|
+
this.gitAddAll();
|
|
184
|
+
this.gitCommitUpdatePackage();
|
|
185
|
+
this.gitPush();
|
|
186
|
+
}
|
|
187
|
+
gitCommitUpdatePackage() {
|
|
188
|
+
this.exec('git commit -m "patch: update package"');
|
|
189
|
+
}
|
|
190
|
+
updateGitignore() {
|
|
191
|
+
if (!this.gitignoreUpdated) {
|
|
192
|
+
this.writeFileSync(this.gitignorePath, '\nbuild/\n', {
|
|
193
|
+
encoding: 'utf-8',
|
|
194
|
+
flag: 'a',
|
|
195
|
+
});
|
|
196
|
+
this.commitUpdateGitignore();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
get gitignoreUpdated() {
|
|
200
|
+
const content = this.readFileSync(this.gitignorePath, {
|
|
201
|
+
encoding: 'utf-8',
|
|
202
|
+
});
|
|
203
|
+
const lines = content.split(/\r?\n/).map((line) => line.trim());
|
|
204
|
+
return lines.includes('build/');
|
|
205
|
+
}
|
|
206
|
+
get gitignorePath() {
|
|
207
|
+
return `${this.packageDir}/.gitignore`;
|
|
208
|
+
}
|
|
209
|
+
commitUpdateGitignore() {
|
|
210
|
+
this.gitAddAll();
|
|
211
|
+
this.gitCommitUpdateGitignore();
|
|
212
|
+
this.gitPush();
|
|
213
|
+
}
|
|
214
|
+
gitCommitUpdateGitignore() {
|
|
215
|
+
this.exec('git commit -m "patch: add build dir to gitignore"');
|
|
216
|
+
}
|
|
217
|
+
setupVscode() {
|
|
218
|
+
if (!this.vscodeSettingsExists) {
|
|
219
|
+
this.spruceSetupVscode();
|
|
220
|
+
this.commitSetupVscode();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
get vscodeSettingsExists() {
|
|
224
|
+
return this.existsSync(`${this.packageDir}/.vscode/settings.json`);
|
|
225
|
+
}
|
|
226
|
+
spruceSetupVscode() {
|
|
227
|
+
this.exec('spruce setup.vscode --all true');
|
|
228
|
+
}
|
|
229
|
+
commitSetupVscode() {
|
|
230
|
+
this.gitAddAll();
|
|
231
|
+
this.gitCommitSetup();
|
|
232
|
+
this.gitPush();
|
|
233
|
+
}
|
|
234
|
+
gitCommitSetup() {
|
|
235
|
+
this.exec('git commit -m "patch: setup vscode"');
|
|
66
236
|
}
|
|
67
237
|
get chdir() {
|
|
68
238
|
return NpmAutopackage.chdir;
|
|
@@ -70,14 +240,24 @@ class NpmAutopackage {
|
|
|
70
240
|
get exec() {
|
|
71
241
|
return NpmAutopackage.execSync;
|
|
72
242
|
}
|
|
73
|
-
get
|
|
74
|
-
return
|
|
243
|
+
get existsSync() {
|
|
244
|
+
return NpmAutopackage.existsSync;
|
|
245
|
+
}
|
|
246
|
+
get fetch() {
|
|
247
|
+
return NpmAutopackage.fetch;
|
|
248
|
+
}
|
|
249
|
+
get readFileSync() {
|
|
250
|
+
return NpmAutopackage.readFileSync;
|
|
75
251
|
}
|
|
76
|
-
get
|
|
77
|
-
return
|
|
252
|
+
get writeFileSync() {
|
|
253
|
+
return NpmAutopackage.writeFileSync;
|
|
78
254
|
}
|
|
79
255
|
}
|
|
80
256
|
NpmAutopackage.chdir = process.chdir;
|
|
81
257
|
NpmAutopackage.execSync = child_process_1.execSync;
|
|
258
|
+
NpmAutopackage.existsSync = fs_1.default.existsSync;
|
|
259
|
+
NpmAutopackage.fetch = globalThis.fetch;
|
|
260
|
+
NpmAutopackage.readFileSync = fs_1.default.readFileSync;
|
|
261
|
+
NpmAutopackage.writeFileSync = fs_1.default.writeFileSync;
|
|
82
262
|
exports.default = NpmAutopackage;
|
|
83
263
|
//# sourceMappingURL=NpmAutopackage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NpmAutopackage.js","sourceRoot":"","sources":["../../src/modules/NpmAutopackage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NpmAutopackage.js","sourceRoot":"","sources":["../../src/modules/NpmAutopackage.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,13 @@ const NpmAutopackage_1 = __importDefault(require("../modules/NpmAutopackage"));
|
|
|
8
8
|
async function main() {
|
|
9
9
|
console.log('Running autopackage...');
|
|
10
10
|
await NpmAutopackage_1.default.Create({
|
|
11
|
-
name: 'node-
|
|
12
|
-
description: '
|
|
11
|
+
name: 'node-osf',
|
|
12
|
+
description: 'Node.js client for the Open Science Framework (OSF) API',
|
|
13
13
|
gitNamespace: 'neurodevs',
|
|
14
14
|
npmNamespace: 'neurodevs',
|
|
15
15
|
installDir: '/Users/ericthecurious/dev',
|
|
16
|
+
license: 'MIT',
|
|
17
|
+
author: 'Eric Yates <hello@ericthecurious.com>',
|
|
16
18
|
});
|
|
17
19
|
console.log('Opening in VSCode...');
|
|
18
20
|
(0, child_process_1.execSync)('code .');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runAutopackage.js","sourceRoot":"","sources":["../../src/scripts/runAutopackage.ts"],"names":[],"mappings":";;;;;AAAA,iDAAwC;AACxC,+EAAsD;AAEtD,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAErC,MAAM,wBAAc,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"runAutopackage.js","sourceRoot":"","sources":["../../src/scripts/runAutopackage.ts"],"names":[],"mappings":";;;;;AAAA,iDAAwC;AACxC,+EAAsD;AAEtD,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAErC,MAAM,wBAAc,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yDAAyD;QACtE,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,2BAA2B;QACvC,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,uCAAuC;KAClD,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACnC,IAAA,wBAAQ,EAAC,QAAQ,CAAC,CAAA;IAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Autopackage, AutopackageOptions } from '../../modules/NpmAutopackage';
|
|
2
|
+
export default class FakeAutopackage implements Autopackage {
|
|
3
|
+
static callsToConstructor: AutopackageOptions[];
|
|
4
|
+
static numCallsToCreatePackage: number;
|
|
5
|
+
constructor(options: AutopackageOptions);
|
|
6
|
+
createPackage(): Promise<void>;
|
|
7
|
+
static resetTestDouble(): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class FakeAutopackage {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
FakeAutopackage.callsToConstructor.push(options);
|
|
6
|
+
}
|
|
7
|
+
async createPackage() {
|
|
8
|
+
FakeAutopackage.numCallsToCreatePackage++;
|
|
9
|
+
}
|
|
10
|
+
static resetTestDouble() {
|
|
11
|
+
this.callsToConstructor = [];
|
|
12
|
+
this.numCallsToCreatePackage = 0;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
FakeAutopackage.callsToConstructor = [];
|
|
16
|
+
FakeAutopackage.numCallsToCreatePackage = 0;
|
|
17
|
+
exports.default = FakeAutopackage;
|
|
18
|
+
//# sourceMappingURL=FakeAutopackage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeAutopackage.js","sourceRoot":"","sources":["../../../src/testDoubles/Autopackage/FakeAutopackage.ts"],"names":[],"mappings":";;AAEA,MAAqB,eAAe;IAIhC,YAAmB,OAA2B;QAC1C,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,eAAe,CAAC,uBAAuB,EAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAA;IACpC,CAAC;;AAda,kCAAkB,GAAyB,EAAE,CAAA;AAC7C,uCAAuB,GAAG,CAAC,CAAA;kBAFxB,eAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/meta-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Meta-layer utilities for maintaining Node.js package ecosystems.",
|
|
5
5
|
"repository": "https://github.com/neurodevs/meta-node.git",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@sprucelabs/test": "^10.0.24",
|
|
33
33
|
"@sprucelabs/test-utils": "^6.0.94",
|
|
34
34
|
"@types/node": "^24.6.2",
|
|
35
|
+
"@types/node-fetch": "^2.6.13",
|
|
35
36
|
"chokidar-cli": "^3.0.0",
|
|
36
37
|
"eslint": "^9.37.0",
|
|
37
38
|
"eslint-config-spruce": "^11.2.26",
|
|
@@ -62,5 +63,8 @@
|
|
|
62
63
|
},
|
|
63
64
|
"skill": {
|
|
64
65
|
"namespace": "meta-node"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"node-fetch": "^3.3.2"
|
|
65
69
|
}
|
|
66
70
|
}
|