@neurodevs/meta-node 0.0.1 → 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.
Files changed (53) hide show
  1. package/.vscode/tasks.json +18 -0
  2. package/build/__tests__/modules/NodeAutomodule.test.d.ts +20 -0
  3. package/build/__tests__/modules/NodeAutomodule.test.js +166 -0
  4. package/build/__tests__/modules/NodeAutomodule.test.js.map +1 -0
  5. package/build/__tests__/modules/NpmAutopackage.test.d.ts +47 -12
  6. package/build/__tests__/modules/NpmAutopackage.test.js +314 -34
  7. package/build/__tests__/modules/NpmAutopackage.test.js.map +1 -1
  8. package/build/index.d.ts +12 -2
  9. package/build/index.js +23 -6
  10. package/build/index.js.map +1 -1
  11. package/build/modules/GitAutocloner.d.ts +5 -6
  12. package/build/modules/GitAutocloner.js +14 -17
  13. package/build/modules/GitAutocloner.js.map +1 -1
  14. package/build/modules/NodeAutomodule.d.ts +34 -0
  15. package/build/modules/NodeAutomodule.js +102 -0
  16. package/build/modules/NodeAutomodule.js.map +1 -0
  17. package/build/modules/NpmAutopackage.d.ts +49 -16
  18. package/build/modules/NpmAutopackage.js +221 -41
  19. package/build/modules/NpmAutopackage.js.map +1 -1
  20. package/build/modules/pathExists.d.ts +1 -0
  21. package/build/modules/pathExists.js +14 -0
  22. package/build/modules/pathExists.js.map +1 -0
  23. package/build/scripts/runAutomodule.d.ts +1 -0
  24. package/build/scripts/runAutomodule.js +22 -0
  25. package/build/scripts/runAutomodule.js.map +1 -0
  26. package/build/scripts/runAutopackage.js +7 -5
  27. package/build/scripts/runAutopackage.js.map +1 -1
  28. package/build/testDoubles/Automodule/FakeAutomodule.d.ts +8 -0
  29. package/build/testDoubles/Automodule/FakeAutomodule.js +18 -0
  30. package/build/testDoubles/Automodule/FakeAutomodule.js.map +1 -0
  31. package/build/testDoubles/Autopackage/FakeAutopackage.d.ts +8 -0
  32. package/build/testDoubles/Autopackage/FakeAutopackage.js +18 -0
  33. package/build/testDoubles/Autopackage/FakeAutopackage.js.map +1 -0
  34. package/build/testDoubles/fs/fakePathExists.d.ts +3 -0
  35. package/build/testDoubles/fs/fakePathExists.js +13 -0
  36. package/build/testDoubles/fs/fakePathExists.js.map +1 -0
  37. package/build/testDoubles/fs/fakeWriteFile.d.ts +6 -0
  38. package/build/testDoubles/fs/fakeWriteFile.js +13 -0
  39. package/build/testDoubles/fs/fakeWriteFile.js.map +1 -0
  40. package/package.json +5 -1
  41. package/src/__tests__/modules/NodeAutomodule.test.ts +160 -0
  42. package/src/__tests__/modules/NpmAutopackage.test.ts +415 -33
  43. package/src/index.ts +24 -5
  44. package/src/modules/GitAutocloner.ts +18 -22
  45. package/src/modules/NodeAutomodule.ts +136 -0
  46. package/src/modules/NpmAutopackage.ts +272 -42
  47. package/src/modules/pathExists.ts +10 -0
  48. package/src/scripts/runAutomodule.ts +22 -0
  49. package/src/scripts/runAutopackage.ts +7 -5
  50. package/src/testDoubles/Automodule/FakeAutomodule.ts +19 -0
  51. package/src/testDoubles/Autopackage/FakeAutopackage.ts +19 -0
  52. package/src/testDoubles/fs/fakePathExists.ts +9 -0
  53. package/src/testDoubles/fs/fakeWriteFile.ts +9 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const promises_1 = require("fs/promises");
7
+ const path_1 = __importDefault(require("path"));
8
+ const pathExists_1 = __importDefault(require("./pathExists"));
9
+ class NodeAutomodule {
10
+ constructor(options) {
11
+ const { testSaveDir, moduleSaveDir, interfaceName, implName } = options;
12
+ this.testSaveDir = testSaveDir;
13
+ this.moduleSaveDir = moduleSaveDir;
14
+ this.interfaceName = interfaceName;
15
+ this.implName = implName;
16
+ }
17
+ static Create(options) {
18
+ return new (this.Class ?? this)(options);
19
+ }
20
+ async run() {
21
+ await this.throwIfTestDirDoesNotExist();
22
+ await this.throwIfModuleDirDoesNotExist();
23
+ await this.createTestFile();
24
+ await this.createModuleFile();
25
+ }
26
+ async throwIfTestDirDoesNotExist() {
27
+ const testDirExists = await this.pathExists(this.testSaveDir);
28
+ if (!testDirExists) {
29
+ throw new Error(`testSaveDir does not exist: ${this.testSaveDir}!`);
30
+ }
31
+ }
32
+ async throwIfModuleDirDoesNotExist() {
33
+ const moduleDirExists = await this.pathExists(this.moduleSaveDir);
34
+ if (!moduleDirExists) {
35
+ throw new Error(`moduleSaveDir does not exist: ${this.moduleSaveDir}!`);
36
+ }
37
+ }
38
+ async createTestFile() {
39
+ await this.writeFile(this.testFileName, this.testFilePattern);
40
+ }
41
+ get testFileName() {
42
+ return path_1.default.join(this.testSaveDir, `${this.implName}.test.ts`);
43
+ }
44
+ async createModuleFile() {
45
+ await this.writeFile(this.moduleFileName, this.moduleFilePattern);
46
+ }
47
+ get moduleFileName() {
48
+ return path_1.default.join(this.moduleSaveDir, `${this.implName}.ts`);
49
+ }
50
+ get pathExists() {
51
+ return NodeAutomodule.pathExists;
52
+ }
53
+ get writeFile() {
54
+ return NodeAutomodule.writeFile;
55
+ }
56
+ get testFilePattern() {
57
+ return `
58
+ import AbstractSpruceTest, { test, assert } from '@sprucelabs/test-utils'
59
+ import ${this.implName}, { ${this.interfaceName} } from '../../modules/${this.implName}'
60
+
61
+ export default class ${this.implName}Test extends AbstractSpruceTest {
62
+ private static instance: ${this.interfaceName}
63
+
64
+ protected static async beforeEach() {
65
+ await super.beforeEach()
66
+
67
+ this.instance = this.${this.implName}()
68
+ }
69
+
70
+ @test()
71
+ protected static async createsInstance() {
72
+ assert.isTruthy(this.instance, 'Failed to create instance!')
73
+ }
74
+
75
+ private static ${this.implName}() {
76
+ return ${this.implName}.Create()
77
+ }
78
+ }
79
+ `;
80
+ }
81
+ get moduleFilePattern() {
82
+ return `
83
+ export default class ${this.implName} implements ${this.interfaceName} {
84
+ public static Class?: ${this.interfaceName}Constructor
85
+
86
+ protected constructor() {}
87
+
88
+ public static Create() {
89
+ return new (this.Class ?? this)()
90
+ }
91
+ }
92
+
93
+ export interface ${this.interfaceName} {}
94
+
95
+ export type ${this.interfaceName}Constructor = new () => ${this.interfaceName}
96
+ `;
97
+ }
98
+ }
99
+ NodeAutomodule.pathExists = pathExists_1.default;
100
+ NodeAutomodule.writeFile = promises_1.writeFile;
101
+ exports.default = NodeAutomodule;
102
+ //# sourceMappingURL=NodeAutomodule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeAutomodule.js","sourceRoot":"","sources":["../../src/modules/NodeAutomodule.ts"],"names":[],"mappings":"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"}
@@ -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 execCreateModule;
14
- private execGitSetup;
15
- private gitInit;
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 chdirToNewPackageDir;
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 createModuleCmd();
27
- private readonly initCmd;
28
- private readonly addCmd;
29
- private readonly commitCreateCmd;
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
- this.initCmd = 'git init';
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.execCreateModule();
24
- this.execGitSetup();
25
- this.execSetupVscode();
26
- }
27
- execCreateModule() {
25
+ this.throwIfGithubTokenNotInEnv();
26
+ await this.createRepoInGithubOrg();
28
27
  this.chdirToInstallDir();
29
- this.exec(this.createModuleCmd);
28
+ this.cloneGitRepo();
29
+ this.chdirToPackageDir();
30
+ this.spruceCreateModule();
31
+ this.updatePackage();
32
+ this.updateGitignore();
33
+ this.setupVscode();
30
34
  }
31
- execGitSetup() {
32
- this.chdirToNewPackageDir();
33
- this.gitInit();
34
- this.gitAdd();
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
- gitInit() {
39
- this.exec(this.initCmd);
40
+ get githubToken() {
41
+ return process.env.GITHUB_TOKEN;
40
42
  }
41
- gitAdd() {
42
- this.exec(this.addCmd);
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
- gitCommitCreateModule() {
45
- this.exec(this.commitCreateCmd);
61
+ chdirToInstallDir() {
62
+ this.chdir(this.installDir);
46
63
  }
47
- gitRemoteAddOrigin() {
48
- this.exec(this.addRemoteCmd);
64
+ cloneGitRepo() {
65
+ if (!this.packageDirExists) {
66
+ this.exec(`git clone ${this.gitUrl}`);
67
+ }
49
68
  }
50
- execSetupVscode() {
51
- this.exec(this.setupVscodeCmd);
52
- this.gitAdd();
53
- this.gitCommitSetupVscode();
69
+ get packageDirExists() {
70
+ return this.existsSync(this.packageDir);
54
71
  }
55
- gitCommitSetupVscode() {
56
- this.exec(this.commitVscodeCmd);
72
+ get packageDir() {
73
+ return `${this.installDir}/${this.packageName}`;
57
74
  }
58
- chdirToInstallDir() {
59
- this.chdir(this.installDir);
75
+ get gitUrl() {
76
+ return `https://github.com/${this.gitNamespace}/${this.packageName}.git`;
60
77
  }
61
- chdirToNewPackageDir() {
78
+ chdirToPackageDir() {
62
79
  this.chdir(this.packageDir);
63
80
  }
64
- get packageDir() {
65
- return `${this.installDir}/${this.packageName}`;
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 createModuleCmd() {
74
- return `spruce create.module --name "${this.packageName}" --destination "${this.installDir}/${this.packageName}" --description "${this.packageDescription}"`;
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 addRemoteCmd() {
77
- return `git remote add origin "https://github.com/${this.gitNamespace}/${this.packageName}.git"`;
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":"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"}
1
+ {"version":3,"file":"NpmAutopackage.js","sourceRoot":"","sources":["../../src/modules/NpmAutopackage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function pathExists(path: string): Promise<boolean>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = pathExists;
4
+ const promises_1 = require("fs/promises");
5
+ async function pathExists(path) {
6
+ try {
7
+ await (0, promises_1.access)(path);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=pathExists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathExists.js","sourceRoot":"","sources":["../../src/modules/pathExists.ts"],"names":[],"mappings":";;AAEA,6BAOC;AATD,0CAAoC;AAErB,KAAK,UAAU,UAAU,CAAC,IAAY;IACjD,IAAI,CAAC;QACD,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const NodeAutomodule_1 = __importDefault(require("../modules/NodeAutomodule"));
7
+ async function main() {
8
+ console.log('\nRunning automodule...');
9
+ const instance = NodeAutomodule_1.default.Create({
10
+ testSaveDir: '/Users/ericthecurious/dev/meta-node/src/__tests__/modules',
11
+ moduleSaveDir: '/Users/ericthecurious/dev/meta-node/src/modules',
12
+ interfaceName: 'Autocomponent',
13
+ implName: 'ReactAutocomponent',
14
+ });
15
+ await instance.run();
16
+ console.log('Finished running automodule!\n');
17
+ }
18
+ main().catch((err) => {
19
+ console.error(err);
20
+ process.exit(1);
21
+ });
22
+ //# sourceMappingURL=runAutomodule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runAutomodule.js","sourceRoot":"","sources":["../../src/scripts/runAutomodule.ts"],"names":[],"mappings":";;;;;AAAA,+EAAsD;AAEtD,KAAK,UAAU,IAAI;IACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAEtC,MAAM,QAAQ,GAAG,wBAAc,CAAC,MAAM,CAAC;QACnC,WAAW,EACP,2DAA2D;QAC/D,aAAa,EAAE,iDAAiD;QAChE,aAAa,EAAE,eAAe;QAC9B,QAAQ,EAAE,oBAAoB;KACjC,CAAC,CAAA;IAEF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAA;IAEpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AACjD,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"}
@@ -5,21 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const child_process_1 = require("child_process");
7
7
  const NpmAutopackage_1 = __importDefault(require("../modules/NpmAutopackage"));
8
- async function run() {
9
- console.log('Running...');
8
+ async function main() {
9
+ console.log('Running autopackage...');
10
10
  await NpmAutopackage_1.default.Create({
11
- name: 'node-xyz',
12
- description: 'XYZ, yo',
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 .');
19
21
  console.log('Done!');
20
22
  process.exit(0);
21
23
  }
22
- run().catch((err) => {
24
+ main().catch((err) => {
23
25
  console.error(err);
24
26
  process.exit(1);
25
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runAutopackage.js","sourceRoot":"","sources":["../../src/scripts/runAutopackage.ts"],"names":[],"mappings":";;;;;AAAA,iDAAwC;AACxC,+EAAsD;AAEtD,KAAK,UAAU,GAAG;IACd,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAEzB,MAAM,wBAAc,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,2BAA2B;KAC1C,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,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
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 { Automodule, AutomoduleOptions } from '../../modules/NodeAutomodule';
2
+ export default class FakeAutomodule implements Automodule {
3
+ static callsToConstructor: AutomoduleOptions[];
4
+ static numCallsToRun: number;
5
+ constructor(options: AutomoduleOptions);
6
+ run(): Promise<void>;
7
+ static resetTestDouble(): void;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class FakeAutomodule {
4
+ constructor(options) {
5
+ FakeAutomodule.callsToConstructor.push(options);
6
+ }
7
+ async run() {
8
+ FakeAutomodule.numCallsToRun++;
9
+ }
10
+ static resetTestDouble() {
11
+ this.callsToConstructor = [];
12
+ this.numCallsToRun = 0;
13
+ }
14
+ }
15
+ FakeAutomodule.callsToConstructor = [];
16
+ FakeAutomodule.numCallsToRun = 0;
17
+ exports.default = FakeAutomodule;
18
+ //# sourceMappingURL=FakeAutomodule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeAutomodule.js","sourceRoot":"","sources":["../../../src/testDoubles/Automodule/FakeAutomodule.ts"],"names":[],"mappings":";;AAEA,MAAqB,cAAc;IAI/B,YAAmB,OAA0B;QACzC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,KAAK,CAAC,GAAG;QACZ,cAAc,CAAC,aAAa,EAAE,CAAA;IAClC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;IAC1B,CAAC;;AAda,iCAAkB,GAAwB,EAAE,CAAA;AAC5C,4BAAa,GAAG,CAAC,CAAA;kBAFd,cAAc"}
@@ -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
+ }