]> git.wincent.com - wincent.git/log
2 years agochore(fig): turn on more TypeScript checks
Greg Hurrell [Sun, 5 Apr 2020 11:19:47 +0000 (13:19 +0200)] 
chore(fig): turn on more TypeScript checks

Because `--strict` isn't actually as strict as it could be. This makes
`tsc` do a few ESLint-like additional checks (and given that I have no
intention of adding ESLint or any other deps to this project, so this
will have to do).

2 years agostyle(fig): fix formatting
Greg Hurrell [Sun, 5 Apr 2020 11:07:56 +0000 (13:07 +0200)] 
style(fig): fix formatting

2 years agofeat(fig): sanity-check compare() inputs
Greg Hurrell [Sun, 5 Apr 2020 11:07:34 +0000 (13:07 +0200)] 
feat(fig): sanity-check compare() inputs

2 years agorefactor: get rid of useless distinction between Compare and Diff types
Greg Hurrell [Sun, 5 Apr 2020 11:07:13 +0000 (13:07 +0200)] 
refactor: get rid of useless distinction between Compare and Diff types

2 years agorefactor(fig): remove unused import
Greg Hurrell [Sun, 5 Apr 2020 10:11:42 +0000 (12:11 +0200)] 
refactor(fig): remove unused import

2 years agorefactor: make file operation use custom stat implementation
Greg Hurrell [Sun, 5 Apr 2020 10:11:22 +0000 (12:11 +0200)] 
refactor: make file operation use custom stat implementation

2 years agorefactor: fix horribly inconsistent fs module usage
Greg Hurrell [Sun, 5 Apr 2020 09:56:13 +0000 (11:56 +0200)] 
refactor: fix horribly inconsistent fs module usage

Always do it the same way, with `fs.promises`.

2 years agorefactor: remove a stale comment
Greg Hurrell [Sun, 5 Apr 2020 09:53:08 +0000 (11:53 +0200)] 
refactor: remove a stale comment

2 years agofix: make stat() return Error instead of throwing
Greg Hurrell [Sun, 5 Apr 2020 09:51:14 +0000 (11:51 +0200)] 
fix: make stat() return Error instead of throwing

That was always my intention (see the return type), but I didn't follow
through on it.

Note that in practice this should very rarely happen because we also use
sudo if there is a permissions problem. But it still could happen,

2 years agostyle(fix): fix formatting
Greg Hurrell [Sat, 4 Apr 2020 22:42:29 +0000 (00:42 +0200)] 
style(fix): fix formatting

2 years agofeat(fig): get chown working
Greg Hurrell [Sat, 4 Apr 2020 22:38:18 +0000 (00:38 +0200)] 
feat(fig): get chown working

2 years agofeat(vim): blacklist certain filetypes/paths from editorconfig
Greg Hurrell [Sat, 4 Apr 2020 19:13:04 +0000 (21:13 +0200)] 
feat(vim): blacklist certain filetypes/paths from editorconfig

2 years agorefactor(vim): run .editorconfig for buffer autocmds, not filetype
Greg Hurrell [Sat, 4 Apr 2020 18:57:39 +0000 (20:57 +0200)] 
refactor(vim): run .editorconfig for buffer autocmds, not filetype

Because it is all based on paths, not filetypes.

2 years agorefactor: deal with identity consistently
Greg Hurrell [Sat, 4 Apr 2020 16:31:45 +0000 (18:31 +0200)] 
refactor: deal with identity consistently

I just added variable "identity" which will be "wincent" when `$USER` is
"glh" or "greghurrell", so I should use it consistently. Obviously, this
isn't totally watertight, but I suspect it is good enough (probably not
too many people with `$USER` "glh" blindly running my dotfile setup).

2 years agofix: remove reference to deleted role
Greg Hurrell [Sat, 4 Apr 2020 16:31:23 +0000 (18:31 +0200)] 
fix: remove reference to deleted role

2 years agofeat(dotfiles): set up ~/code/.editorconfig
Greg Hurrell [Sat, 4 Apr 2020 16:28:19 +0000 (18:28 +0200)] 
feat(dotfiles): set up ~/code/.editorconfig

2 years agorefactor(vim): replace Liferay-specific overrides with .editorconfig
Greg Hurrell [Sat, 4 Apr 2020 16:04:07 +0000 (18:04 +0200)] 
refactor(vim): replace Liferay-specific overrides with .editorconfig

The thing with some of the Liferay repos (specifically, liferay-portal,
and liferay-portal-ee) is that I can't commit an `.editorconfig` to
them, so I need something like this under `~/code`:

root = true

insert_final_newline = false
indent_size = 4
indent_style = tab

insert_final_newline = true
indent_size = 4
indent_style = tab

indent_size = 4
indent_style = tab

Seems to work adequately. Once I have flushed the bugs out I'll add this
`.editorconfig` to the dotfiles installer (obviously only if `$USER`
matches, or I'm on the right host).

2 years agofeat(vim): implement support for .editorconfig "root = true"
Greg Hurrell [Sat, 4 Apr 2020 15:41:37 +0000 (17:41 +0200)] 
feat(vim): implement support for .editorconfig "root = true"

Note the path handling here is a bit tricky:

- When first called for a file, we'll get a relative path like "a/b/c".
- `fnamemodify()` with `:p` will make that absolute: "/path/to/a/b/c".
- `fnamemodify()` with `:h` gives us the dir name: "/path/to/a/b".
- When we recurse to look for ancestor paths, we can't just pass
  "/path/to/a/b", because `:p` would turn that into "/path/to/a/b/"
  (because it looks on the filesystem and sees that it is a directory);
  and in turn `:h` would strip off the trailing "/", leaving us with
  "/path/to/a/b" (ie. no change, an infinite recursion loop).
- Solution is therefore to call `:h` before recursing, so we pass
  "/path/to/a" instead. Then `:p` gives us "/path/to/a/", and then `:h`
  gives us "/path/to/a", which is what we actually wanted to look at.

Minor smell here: the param name is "file" but we're evidently
passing a directory during recursion.

2 years agofeat(vim): handle "insert_final_newline"
Greg Hurrell [Sat, 4 Apr 2020 15:17:04 +0000 (17:17 +0200)] 
feat(vim): handle "insert_final_newline"

2 years agofeat(vim): apply par-overrides when using .editorconfig
Greg Hurrell [Sat, 4 Apr 2020 15:16:17 +0000 (17:16 +0200)] 
feat(vim): apply par-overrides when using .editorconfig

Just ports the existing special-case logic from further down the file up
here to the .editorconfig code path.

2 years agofix(vim): treat key/value pairs case-insensitively
Greg Hurrell [Sat, 4 Apr 2020 15:15:32 +0000 (17:15 +0200)] 
fix(vim): treat key/value pairs case-insensitively

As described here:


2 years agofix(vim): remove errant "tab" from list of allowed "tab_width" values
Greg Hurrell [Sat, 4 Apr 2020 15:15:14 +0000 (17:15 +0200)] 
fix(vim): remove errant "tab" from list of allowed "tab_width" values

2 years agorefactor(vim): get rid of 'shiftround' override
Greg Hurrell [Sat, 4 Apr 2020 15:03:52 +0000 (17:03 +0200)] 
refactor(vim): get rid of 'shiftround' override

The reason why I need 'noshiftround' (actually the default), is that
otherwise my multi-line comments get mangled when dedenting/indenting in
files that use tabs for indentation (see dfa3c7950).

But, I don't actually see any reason why I ever set 'shiftround' in the
first place (in e3ea6b8f2ce8, back in 2010). As I said, 'noshiftround'
is the default, and it seems like a perfectly reasonable one. I am
leaving it in the settings explicitly so that it turns up in `git-blame`
output and people can find this explanation without having to trawl
through the log.

2 years agorefactor(vim): drop unnecessary "type" param
Greg Hurrell [Sat, 4 Apr 2020 14:17:20 +0000 (16:17 +0200)] 
refactor(vim): drop unnecessary "type" param

2 years agofix(vim): ignore overlength globs
Greg Hurrell [Sat, 4 Apr 2020 14:15:15 +0000 (16:15 +0200)] 
fix(vim): ignore overlength globs

Better adherence to spec.

2 years agofeat(vim): guard against malicious .editorconfig
Greg Hurrell [Sat, 4 Apr 2020 12:20:11 +0000 (14:20 +0200)] 
feat(vim): guard against malicious .editorconfig

Just say someone injects a 1GB .editorconfig file somewhere, we don't
want to waste time reading it all.

2 years agochore(vim): update Terminus submodule
Greg Hurrell [Sat, 4 Apr 2020 12:17:38 +0000 (14:17 +0200)] 
chore(vim): update Terminus submodule

Nothing important in here, but it has been cluttering my `git status`
output for ages now.

* roles/dotfiles/files/.vim/pack/bundle/opt/terminus 0c826f1...340ea44 (2):
  > docs: fix alignment in table of contents
  > Merge branch 'pull/43'

2 years agofix(vim): don't throw due to invalid editorconfig pattern
Greg Hurrell [Sat, 4 Apr 2020 12:15:36 +0000 (14:15 +0200)] 
fix(vim): don't throw due to invalid editorconfig pattern

If fed invalid section header like this:


degrade gracefully instead of showing an error.

2 years agofeat(vim): add WIP of .editorconfig support
Greg Hurrell [Fri, 3 Apr 2020 23:56:54 +0000 (01:56 +0200)] 
feat(vim): add WIP of .editorconfig support

It works for the simple case shown here, which is changing the tabWidth
to 4 spaces (up from 2) in Markdown, JSON, JS, and TS files.

I prefer to do this minimally and locally without pulling in a large
editorconfig plugin like:

- https://github.com/editorconfig/editorconfig-vim
- https://github.com/sgur/vim-editorconfig

because I want to integrate it with my existing Liferay-specific stuff.

Plenty of unimplemented features though, and I don't intend to reach
feature parity with those plugins, so I might end up having to implement
an "escape hatch" here to blacklist folders when things don't play
nicely. Will cross that bridge when we come to it.

2 years agochore: clean out some stale TODOs
Greg Hurrell [Thu, 2 Apr 2020 23:27:41 +0000 (01:27 +0200)] 
chore: clean out some stale TODOs

2 years agorefactor: make test runs silent unless --debug applies or test fails
Greg Hurrell [Thu, 2 Apr 2020 23:21:12 +0000 (01:21 +0200)] 
refactor: make test runs silent unless --debug applies or test fails

2 years agorefactor(fig): improve consistency of logging
Greg Hurrell [Thu, 2 Apr 2020 23:14:25 +0000 (01:14 +0200)] 
refactor(fig): improve consistency of logging

2 years agofeat: add ability to focus on specific aspects
Greg Hurrell [Thu, 2 Apr 2020 23:11:03 +0000 (01:11 +0200)] 
feat: add ability to focus on specific aspects

2 years agorefactor: pass aspect info into printUsage()
Greg Hurrell [Thu, 2 Apr 2020 22:58:00 +0000 (00:58 +0200)] 
refactor: pass aspect info into printUsage()

Because later on we're going to need that info at the callsite too, when
we validate that only legit aspects are being passed in.

2 years agofeat(fig): show usage information
Greg Hurrell [Thu, 2 Apr 2020 22:51:16 +0000 (00:51 +0200)] 
feat(fig): show usage information

2 years agoperf: avoid evaluating log.debug() arguments unless necessary
Greg Hurrell [Thu, 2 Apr 2020 22:12:54 +0000 (00:12 +0200)] 
perf: avoid evaluating log.debug() arguments unless necessary

In a fancy world, would do this with a Babel transform to make it
automatic and transparent. But we don't live in a fancy world.

2 years agochore(vim): don't mess with newlines at end of .json files
Greg Hurrell [Thu, 2 Apr 2020 17:44:48 +0000 (19:44 +0200)] 
chore(vim): don't mess with newlines at end of .json files

Because we are now formatting those with Prettier:


2 years agofix(zsh): unbreak `select-word-style bash`
Greg Hurrell [Thu, 2 Apr 2020 11:50:24 +0000 (13:50 +0200)] 
fix(zsh): unbreak `select-word-style bash`

An ordering issue, not unlike this one:


2 years agofeat(zsh): add `portool linkify`
Greg Hurrell [Thu, 2 Apr 2020 10:55:23 +0000 (12:55 +0200)] 
feat(zsh): add `portool linkify`

Because I occasionally need to do this, and I'd rather not have to
figure out how to do it every time.

2 years agofeat: add nicer stringification
Greg Hurrell [Wed, 1 Apr 2020 23:54:33 +0000 (01:54 +0200)] 
feat: add nicer stringification

For use in debug output, but also in tests.

2 years agorefactor: extract getOptions()
Greg Hurrell [Wed, 1 Apr 2020 22:22:23 +0000 (00:22 +0200)] 
refactor: extract getOptions()

To remove some clutter from main.ts, especially given that I expect to
probably add more options in the future.

Still not done: refactoring the mess that is all the `startAt` stuff.

2 years agofeat: add --start-at-task support
Greg Hurrell [Wed, 1 Apr 2020 22:06:15 +0000 (00:06 +0200)] 
feat: add --start-at-task support

This is very messy and could use a refactor, but it seems to work for

1. Given an exact match, starts at that task.
2. Given a fuzzy match of one task, prompts for confirmation to run that
   task; if you hit "y" it runs it, and if you hit "n" the run aborts.
3. Given a fuzzy match of more than one task, shows a menu for you to
   pick from. Rejects invalid choices, but you can always escape by
   hitting CTRL-C.

2 years agorefactor: prepare to implement chown etc
Greg Hurrell [Wed, 1 Apr 2020 17:37:38 +0000 (19:37 +0200)] 
refactor: prepare to implement chown etc

2 years agofeat: hand-roll stat implementation
Greg Hurrell [Tue, 31 Mar 2020 23:12:52 +0000 (01:12 +0200)] 
feat: hand-roll stat implementation

Due to noted issues:

- Can't stat root-owned files with restrictive perms, which means we
  can't manage them at all.
- Don't want to run as root.
- Don't want to fork a Node-powered helper process as root (ie. to
  continue using `fs.stat` API).
- Don't want to have to deal with platform issues, but what the hell, we
  are going to anyway...

2 years agotest: add some more tests for compare()
Greg Hurrell [Tue, 31 Mar 2020 18:59:01 +0000 (20:59 +0200)] 
test: add some more tests for compare()

2 years agofix: make sure we can always clear the terminal line
Greg Hurrell [Tue, 31 Mar 2020 18:50:33 +0000 (20:50 +0200)] 
fix: make sure we can always clear the terminal line

2 years agofeat: partially implement `compare()` function
Greg Hurrell [Tue, 31 Mar 2020 00:11:41 +0000 (02:11 +0200)] 
feat: partially implement `compare()` function

2 years agofeat: add log levels
Greg Hurrell [Tue, 31 Mar 2020 00:05:40 +0000 (02:05 +0200)] 
feat: add log levels

2 years agorefactor: define "Mode" union type
Greg Hurrell [Mon, 30 Mar 2020 23:40:35 +0000 (01:40 +0200)] 
refactor: define "Mode" union type

2 years agofeat: improve error reporting
Greg Hurrell [Mon, 30 Mar 2020 23:40:20 +0000 (01:40 +0200)] 
feat: improve error reporting

2 years agofeat: refuse to run as root
Greg Hurrell [Mon, 30 Mar 2020 23:40:20 +0000 (01:40 +0200)] 
feat: refuse to run as root

For safety.

2 years agodocs: improve accuracy of a comment
Greg Hurrell [Mon, 30 Mar 2020 23:39:49 +0000 (01:39 +0200)] 
docs: improve accuracy of a comment

2 years agorefactor: pass -k to sudo
Greg Hurrell [Mon, 30 Mar 2020 23:39:46 +0000 (01:39 +0200)] 
refactor: pass -k to sudo

Given that we always prompt, consistently, let's make sure we always use
the entered password.

2 years agofeat: add kind-of working sudo functionality
Greg Hurrell [Mon, 30 Mar 2020 23:24:29 +0000 (01:24 +0200)] 
feat: add kind-of working sudo functionality

2 years agorefactor: make launchd aspect partly functional
Greg Hurrell [Mon, 30 Mar 2020 18:50:02 +0000 (20:50 +0200)] 
refactor: make launchd aspect partly functional

Doesn't actually mutate anything (that's why it is labeled as
"refactor"), but it will soon.

2 years agochore: set gradle.stop.daemon.enabled=true
Greg Hurrell [Mon, 30 Mar 2020 07:45:30 +0000 (09:45 +0200)] 
chore: set gradle.stop.daemon.enabled=true

Via a recommendation on Slack. Suspected cache poisoning was causing
(somebody else to have) build problems. As this setting is going to
become the default in the future, it seems safe, and might prevent
problems, I am going to apply it.

2 years agofeat(zsh): set up Blade CLI on work machine
Greg Hurrell [Mon, 30 Mar 2020 07:34:54 +0000 (09:34 +0200)] 
feat(zsh): set up Blade CLI on work machine

As per:


> Installer Issues on macOS
> If you’re using macOS or Linux, you could experience an issue where
> the blade command is not available via command line. This is caused
> by the installer being unable to add JPM’s bin folder to your user
> path. JPM is a Java package manager used in Blade CLI.

2 years agofix(zsh): make host-specific Zsh config work on case-sensitive FS
Greg Hurrell [Mon, 30 Mar 2020 07:22:22 +0000 (09:22 +0200)] 
fix(zsh): make host-specific Zsh config work on case-sensitive FS

Not that I am running a case-sensitive FS, but if I ever do, this may

2 years agochore(zsh): update .irl.rb list
Greg Hurrell [Mon, 30 Mar 2020 07:19:53 +0000 (09:19 +0200)] 
chore(zsh): update .irl.rb list

Remove irrelevant entries.

2 years agorefactor: prepare to add launchd aspect
Greg Hurrell [Sun, 29 Mar 2020 22:37:48 +0000 (00:37 +0200)] 
refactor: prepare to add launchd aspect

Doesn't do anything useful yet, so labeling as "refactor".

2 years agofeat: print summaries and better errors
Greg Hurrell [Sun, 29 Mar 2020 20:59:13 +0000 (22:59 +0200)] 
feat: print summaries and better errors

2 years agofeat: get terminfo aspect fully working
Greg Hurrell [Sun, 29 Mar 2020 16:55:13 +0000 (18:55 +0200)] 
feat: get terminfo aspect fully working

Still lots of refactoring to do, as evidenced by the comments, but this
is the first "working" version.

2 years agofeat: make sure we always work from repo root
Greg Hurrell [Sun, 29 Mar 2020 12:46:22 +0000 (14:46 +0200)] 
feat: make sure we always work from repo root

2 years agorefactor: use mkdirSync for recursive directory creation
Greg Hurrell [Sun, 29 Mar 2020 12:28:08 +0000 (14:28 +0200)] 
refactor: use mkdirSync for recursive directory creation

As I figure it is probably good enough.

2 years agofeat: do everything except actually create directories
Greg Hurrell [Sat, 28 Mar 2020 22:56:38 +0000 (23:56 +0100)] 
feat: do everything except actually create directories

2 years agochore: get rid of "terminfo" role
Greg Hurrell [Sat, 28 Mar 2020 18:06:18 +0000 (19:06 +0100)] 
chore: get rid of "terminfo" role

Because I am real close now to being able to replace it with the
Fig-based system.

2 years agorefactor: simplify task callback calling convention
Greg Hurrell [Sat, 28 Mar 2020 18:04:23 +0000 (19:04 +0100)] 
refactor: simplify task callback calling convention

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.

2 years agofeat: implement variable propagation
Greg Hurrell [Sat, 28 Mar 2020 17:55:07 +0000 (18:55 +0100)] 
feat: implement variable propagation

Via horrible global state. But as implied in the comments, this is the
simplest way to have a "nice" DSL... ie:

    import {task} from '../../src/Fig';

    task('update terminfo files', ({command, path, variable}) => {
      for (const file of path.files('*.terminfo')) {
        command('tic', '-o', variable.string('terminfo_path'), file);

where the current aspect, variables etc are all implicit (inner calls
such as `command`, `path`, `variable` etc "know" about their context).

There might be other ways to do this, but they strike me as trickier to

One idea I'd like to leave the door open to is not passing the Fig
object into the task callback, which would mean the above would become:

    import {command, path, task, variable} from '../../src/Fig';

    task('update terminfo files', () => {
      for (const file of path.files('*.terminfo')) {
        command('tic', '-o', variable.string('terminfo_path'), file);

Which would be lighter weight (especially when there are a lot of
tasks), and would depend even more heavily on global state, because we
couldn't pass in special versions of `path`, `command` etc to the

2 years agofeat: add path.files for glob-based file selection
Greg Hurrell [Sat, 28 Mar 2020 17:18:01 +0000 (18:18 +0100)] 
feat: add path.files for glob-based file selection

2 years agofeat: add TaskRegistry.get()
Greg Hurrell [Sat, 28 Mar 2020 16:19:05 +0000 (17:19 +0100)] 
feat: add TaskRegistry.get()

2 years agorefactor: tighten up aspect typing
Greg Hurrell [Sat, 28 Mar 2020 15:40:36 +0000 (16:40 +0100)] 
refactor: tighten up aspect typing

2 years agofix: correct a code comment
Greg Hurrell [Sat, 28 Mar 2020 12:38:04 +0000 (13:38 +0100)] 
fix: correct a code comment

2 years agofeat: make path helpers take spread arguments
Greg Hurrell [Sat, 28 Mar 2020 12:37:26 +0000 (13:37 +0100)] 
feat: make path helpers take spread arguments

2 years agofeat: merge variables
Greg Hurrell [Sat, 28 Mar 2020 00:29:22 +0000 (01:29 +0100)] 
feat: merge variables

Precedence (from least to most) is:

1. Aspect variables (ie. effectively these are defaults).
2. Profile variables (eg. "personal", "work").
2. Platform variables (eg. "darwin", "linux").

Trying to be analagous to Ansible's precedence:

1. Role defaults
2. Inventory/Group vars
3. Playbook vars

Via: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html

2 years agorefactor: massage `isJSON()` to avoid nested conditionals
Greg Hurrell [Fri, 27 Mar 2020 18:17:10 +0000 (19:17 +0100)] 
refactor: massage `isJSON()` to avoid nested conditionals

2 years agofeat: accept any JSONValue as a variable
Greg Hurrell [Fri, 27 Mar 2020 18:10:43 +0000 (19:10 +0100)] 
feat: accept any JSONValue as a variable

2 years agofeat: log path info with validation errors
Greg Hurrell [Fri, 27 Mar 2020 17:01:46 +0000 (18:01 +0100)] 
feat: log path info with validation errors

2 years agofeat: make variable types more flexible
Greg Hurrell [Fri, 27 Mar 2020 00:54:15 +0000 (01:54 +0100)] 
feat: make variable types more flexible

2 years agofeat: read aspect configuration from disk
Greg Hurrell [Fri, 27 Mar 2020 00:01:59 +0000 (01:01 +0100)] 
feat: read aspect configuration from disk

2 years agofix: get type checking working again with new structure
Greg Hurrell [Thu, 26 Mar 2020 23:44:41 +0000 (00:44 +0100)] 
fix: get type checking working again with new structure

2 years agorefactor: extract genObjectValue() to reduce repetition
Greg Hurrell [Thu, 26 Mar 2020 20:19:00 +0000 (21:19 +0100)] 
refactor: extract genObjectValue() to reduce repetition

2 years agorefactor: start expanding Project schema
Greg Hurrell [Thu, 26 Mar 2020 20:12:29 +0000 (21:12 +0100)] 
refactor: start expanding Project schema

2 years agofeat: improve appearance of indentLine markers
Greg Hurrell [Thu, 26 Mar 2020 19:50:35 +0000 (20:50 +0100)] 
feat: improve appearance of indentLine markers

The unbroken line is looking too heavy to me nowadays (probably because
of spending time working in repos with tabs, which render without bars).

2 years agodocs: edit copy
Greg Hurrell [Thu, 26 Mar 2020 00:15:49 +0000 (01:15 +0100)] 
docs: edit copy

2 years agofeat: add platform detection
Greg Hurrell [Wed, 25 Mar 2020 23:07:08 +0000 (00:07 +0100)] 
feat: add platform detection

2 years agofeat: show exhaustive case-checking works
Greg Hurrell [Wed, 25 Mar 2020 20:18:03 +0000 (21:18 +0100)] 
feat: show exhaustive case-checking works

So we can "dynamically" `require` aspects with some degree of static

2 years agofeat: finish implementation of $ref handling
Greg Hurrell [Wed, 25 Mar 2020 20:02:54 +0000 (21:02 +0100)] 
feat: finish implementation of $ref handling

2 years agofix: make sure that src/types/ directory always exists
Greg Hurrell [Wed, 25 Mar 2020 18:17:44 +0000 (19:17 +0100)] 
fix: make sure that src/types/ directory always exists

2 years agochore: remove src/types/project.ts
Greg Hurrell [Wed, 25 Mar 2020 18:16:19 +0000 (19:16 +0100)] 
chore: remove src/types/project.ts

This file is supposed to be ignored.

2 years agorefactor: prepare to generate enum types
Greg Hurrell [Wed, 25 Mar 2020 18:15:08 +0000 (19:15 +0100)] 
refactor: prepare to generate enum types

2 years agostyle: add whitespace to readme to improve badge placement
Greg Hurrell [Wed, 25 Mar 2020 17:31:52 +0000 (18:31 +0100)] 
style: add whitespace to readme to improve badge placement

2 years agofeat: add ci status badge to readme
Greg Hurrell [Wed, 25 Mar 2020 17:30:32 +0000 (18:30 +0100)] 
feat: add ci status badge to readme

2 years agofix: skip unformattable file
Greg Hurrell [Wed, 25 Mar 2020 17:21:17 +0000 (18:21 +0100)] 
fix: skip unformattable file

Because it is not really JSON, but rather a template of a JSON file, and
it contains template syntax.

2 years agofix: correct horrific bug in "ci" script
Greg Hurrell [Wed, 25 Mar 2020 17:19:24 +0000 (18:19 +0100)] 
fix: correct horrific bug in "ci" script

2 years agofeat: set up CI
Greg Hurrell [Wed, 25 Mar 2020 17:14:31 +0000 (18:14 +0100)] 
feat: set up CI

2 years agorefactor: restructure typegen
Greg Hurrell [Wed, 25 Mar 2020 17:08:53 +0000 (18:08 +0100)] 
refactor: restructure typegen

Because it is going to grow...

2 years agofeat: improve console output by adding blank line
Greg Hurrell [Wed, 25 Mar 2020 16:59:26 +0000 (17:59 +0100)] 
feat: improve console output by adding blank line

2 years agofeat: integrate typegen.js in full build
Greg Hurrell [Wed, 25 Mar 2020 00:55:16 +0000 (01:55 +0100)] 
feat: integrate typegen.js in full build

2 years agorefactor: cleanup typegen.js with "assert"
Greg Hurrell [Wed, 25 Mar 2020 00:23:22 +0000 (01:23 +0100)] 
refactor: cleanup typegen.js with "assert"

Error messages won't be as good, but this makes it a lot more concise.

2 years agofeat: continue developing typegen.js
Greg Hurrell [Tue, 24 Mar 2020 20:26:07 +0000 (21:26 +0100)] 
feat: continue developing typegen.js