]> git.wincent.com - wincent.git/commit
refactor(fig): use Path string-like type
authorGreg Hurrell <greg@hurrell.net>
Sun, 19 Apr 2020 12:01:32 +0000 (14:01 +0200)
committerGreg Hurrell <greg@hurrell.net>
Sun, 19 Apr 2020 12:01:32 +0000 (14:01 +0200)
commite3e4ae5d85067cb363650cd15efc7c0de5e21504
tree06bf9fc259b638df398adb95fafb1d84c1f3f4f2
parent99bf0d7c1b0866b8592fd175900682a73f723301
refactor(fig): use Path string-like type

I might regret doing this, but the idea here is to replace code that
looks like:

    import {join, resolve} from 'path';

    const file = resource('a');
    const somePath = resolve(join(file, '..', 'x'));

with:

    const file = resource('a');
    const somePath = file.join('..', 'x').resolve();

Other examples in tests along the lines of:

    file.basename
    file.dirname
    file.resolve
    file.join('x')

I bet there are remaining bugs though; as you can see, I had to pepper
the code base with `toString()` calls before passing these to Node APIs
like `path.join()` because it complains with:

    TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of
    type string. Received type object

Which is more annoying than anything else, to be honest, but it is what
it is... Sadly, type system here doesn't help us because these methods
take type "string", and my "Path" strings are that type...
aspects/dotfiles/index.ts
package.json
src/Compiler.ts
src/Fig/__tests__/resource-test.ts [new file with mode: 0644]
src/Fig/resource.ts
src/__tests__/stringify-test.ts
src/path/absolute.ts
src/path/expand.ts
src/path/simplify.ts
src/stringify.ts