]> git.wincent.com - wincent.git/commitdiff
refactor: simplify task callback calling convention
authorGreg Hurrell <greg@hurrell.net>
Sat, 28 Mar 2020 18:04:23 +0000 (19:04 +0100)
committerGreg Hurrell <greg@hurrell.net>
Sat, 28 Mar 2020 18:04:23 +0000 (19:04 +0100)
As mentioned in last commit. This makes us more dependent on global
state for communication, but it does make the DSL lighter, and it also
makes our type dependencies a bit less circular because we don't have to
pass the "Fig" type around all over the place. Overall, I think this is
an improvement.

aspects/terminfo/index.ts
src/Fig/TaskRegistry.ts
src/Fig/task.ts
src/main.ts

index 313071d7f71ca69937adb759f9d66204af342f1e..f9699c8f340afc8bc975cc6e95670dcaf515f088 100644 (file)
@@ -1,14 +1,14 @@
-import {task} from '../../src/Fig';
+import {command, file, path, task, variable} from '../../src/Fig';
 
-task('create target directory', ({file, variable}) => {
+task('create target directory', () => {
   file({
     path: variable.string('terminfo_path'),
     state: 'directory',
   });
 });
 
-task('update terminfo files', ({command, path, variable}) => {
-  for (const file of path.files('*.terminfo')) {
-    command('tic', '-o', variable.string('terminfo_path'), file);
+task('update terminfo files', () => {
+  for (const terminfo of path.files('*.terminfo')) {
+    command('tic', '-o', variable.string('terminfo_path'), terminfo);
   }
 });
index e2eb966e25a8351c5eba8c45b31290ec2145f125..5f0e68b073790b86d5623d221a1e463aacab567c 100644 (file)
@@ -1,7 +1,6 @@
-import type {Fig} from '../Fig';
 import type {Aspect} from '../types/Project';
 
-type Callback = (Fig: Fig) => void;
+type Callback = () => void;
 
 const callbacks = new Map<Aspect, Array<Callback>>();
 
index 8ffa23374de23bf80a865144a753a065e038b708..f6d5a2c7c8fc9fe62d0ce54ccc401514864e91f6 100644 (file)
@@ -1,6 +1,5 @@
 import {relative, sep} from 'path';
 
-import type {Fig} from '../Fig';
 import {assertAspect} from '../types/Project';
 import * as TaskRegistry from './TaskRegistry';
 import getCaller from '../getCaller';
@@ -10,7 +9,7 @@ import * as path from './path';
 import {default as root} from './root';
 import {default as variable} from './variable';
 
-export default function task(name: string, callback: (Fig: Fig) => void) {
+export default function task(name: string, callback: () => void) {
   const caller = getCaller();
 
   const ancestors = relative(root, caller).split(sep);
index 93fa2018c3ca89399b84d7ed27a590b7b1ca845c..223f2e5178f9df596b769631b6518bbbe73a1f61 100644 (file)
@@ -3,7 +3,7 @@ import * as path from 'path';
 
 import Attributes from './Attributes';
 import Context from './Fig/Context';
-import * as Fig from './Fig';
+import {root} from './Fig';
 import * as TaskRegistry from './Fig/TaskRegistry';
 import {log} from './console';
 import merge from './merge';
@@ -22,7 +22,7 @@ async function main() {
 
   await test();
 
-  const project = await readProject(path.join(Fig.root, 'project.json'));
+  const project = await readProject(path.join(root, 'project.json'));
 
   const hostname = os.hostname();
 
@@ -66,7 +66,7 @@ async function main() {
   // touching filesystem).
   for (const aspect of aspects) {
     const {description, variables: aspectVariables = {}} = await readAspect(
-      path.join(Fig.root, 'aspects', aspect, 'aspect.json')
+      path.join(root, 'aspects', aspect, 'aspect.json')
     );
     log.info(`${aspect}: ${description}`);
 
@@ -79,7 +79,7 @@ async function main() {
       // everything with `await` keywords... better to use blocking sync
       // everywhere I think
       Context.withContext({aspect, variables}, () => {
-        callback(Fig);
+        callback();
       });
     }
   }