]> git.wincent.com - wincent.git/commitdiff
refactor(fig): make it possible to import from 'fig' alone
authorGreg Hurrell <greg@hurrell.net>
Tue, 21 Apr 2020 23:07:34 +0000 (01:07 +0200)
committerGreg Hurrell <greg@hurrell.net>
Tue, 21 Apr 2020 23:07:34 +0000 (01:07 +0200)
A hack, to be sure, but I want the DSL as used from the "aspects/"
directories to be nice.

.prettierignore
aspects/dotfiles/index.ts
aspects/launchd/index.ts
aspects/meta/index.ts
aspects/terminfo/index.ts
aspects/vim/index.ts
fig/package.json [new file with mode: 0644]
install
tsconfig.json

index 08c27231dd5fe94b19d84015cab8851104bb8d87..90dbd95c570c1ec7feff219a9b3d4d9c4deea1be 100644 (file)
@@ -1,6 +1,6 @@
-/lib
 /aspects/vim/files/.vim
+/fig/types
+/lib
 /python
 /roles/dotfiles/templates/.config/karabiner/karabiner.json
-/fig/types
 /vendor
index 7a48f10b17f66811aacf4af65b783c627c78d72b..0a3bfe22fa19c99b416a73a71d531d786d409c85 100644 (file)
@@ -6,7 +6,7 @@ import {
     task,
     variable,
     variables,
-} from 'fig/index.js';
+} from 'fig';
 import stat from 'fig/fs/stat.js';
 import path from 'fig/path.js';
 
index 8b12551d411fb6ac7b40ce214e17e53532087986..3a499b85107596bf61648457417680b94e1550ba 100644 (file)
@@ -1,4 +1,4 @@
-import {resource, template, task} from 'fig/index.js';
+import {resource, template, task} from 'fig';
 
 task('configure (global) LaunchDaemons', async () => {
     const items = [
index aaaaed9c986136f63eb8efa47ac0ed2a4a0d3abc..c9b56d51b7aa6d9f0137b7adbd83499607c1be06 100644 (file)
@@ -1,7 +1,7 @@
 import {equal, ok} from 'assert';
 import {join} from 'path';
 
-import {file, resource, task, template} from 'fig/index.js';
+import {file, resource, task, template} from 'fig';
 import Context from 'fig/Fig/Context.js';
 import assert from 'fig/assert.js';
 import {promises} from 'fig/fs.js';
index f2310357ab5660c0fefb90e4831f1a74fc981703..d061e467d5eadeefae260f4942567907e90c37e5 100644 (file)
@@ -1,4 +1,4 @@
-import {command, file, resource, task, variable} from 'fig/index.js';
+import {command, file, resource, task, variable} from 'fig';
 
 task('create target directory', async () => {
     await file({
index 7eac7c93c026f7bc80c65c17c1a8ec0df2b8d1dc..f70d6ca1cf0ea8bc2cdeb32b0dffe2dc9a3c0eac 100644 (file)
@@ -1,12 +1,4 @@
-import {
-    attributes,
-    command,
-    file,
-    resource,
-    skip,
-    task,
-    variable,
-} from 'fig/index.js';
+import {attributes, command, file, resource, skip, task, variable} from 'fig';
 import stat from 'fig/fs/stat.js';
 import path from 'fig/path.js';
 
diff --git a/fig/package.json b/fig/package.json
new file mode 100644 (file)
index 0000000..df18100
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "name": "fig",
+    "description": "An absurd configuration framework",
+    "version": "0.0.1",
+    "main": "index.js",
+    "private": true,
+    "type": "module"
+}
diff --git a/install b/install
index 45359628375a86b1e6049c32f3c4c2c78ad6f5c3..f7bfa85f8914cf3ba4ac0735ddbcc454bfe71dda 100755 (executable)
--- a/install
+++ b/install
@@ -12,8 +12,6 @@ log_info "Installing TypeScript"
 
 yarn --frozen-lockfile --no-default-rc --no-progress --silent
 
-ln -fns ../lib/fig node_modules/fig
-
 log_info "Cleaning"
 
 git clean -fdxq -- lib
@@ -27,6 +25,10 @@ log_info "Compiling TypeScript source to JavaScript"
 
 tsc
 
+# Hacks so that built JS can import from 'fig':
+ln -fns ../lib/fig node_modules/fig
+cp fig/package.json lib/fig/package.json
+
 log_info "Running main"
 
 node lib/fig/main.js "$@"
index c4beecde73edfe855ff37492071ddc9b1be9ab9c..54dc43907e952e714de8177ae9fdeb2b2264b0ce 100644 (file)
@@ -9,6 +9,7 @@
         "outDir": "./lib",
         "baseUrl": ".",
         "paths": {
+            "fig": ["fig/index.js"],
             "fig/*": ["fig/*"]
         },
         "strict": true,