Skip to content

Releases: nwutils/create-desktop-shortcuts

Retain environment variables in Windows shortcut paths

06 Jan 18:57
299a4b1
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • File paths for Windows shortcuts now retain their input value, rather than resolving environment variables to hardcoded values.

Maintenance:

  • Updated dependencies
  • Fix some typos in code comments

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • OSX at ~44-63ms
    • Windows at ~134-381ms
    • Linux at ~30-37ms

Code Changes

API type definition (JSDocs)

27 Jun 02:53
711c0c5
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • Added in JSDoc Type Definitions for the API inputs.
    • Special thanks to AngelCMHxD for this PR and help figuring out the hardest part (importing types).
    • Special thanks to joshuatz for updating his JSDoc Cheatsheet with the importing types solution.

Maintenance:

  • Updated JSDoc comment documentation
  • Updated dependencies

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • OSX at ~85-176ms
    • Windows at ~176-340ms
    • Linux at ~34-44ms

Code Changes

Support for projects packaged with pkg

20 Jun 17:48
3f771af
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • Windows shortcuts rely on a VBS file. Previously if you used pkg to package your app, create-desktop-shortcuts would not work on Windows, because the windows.vbs file would not be in the real file system. You can now make a copy of the windows.vbs file external to your package and pass in the location to it using VBScriptPath. This should only be done if using pkg. Copying of the windows.vbs should be done programatically so that it stays up-to-date with future releases of create-desktop-shortcuts.
    • Special thanks to AngelCMHxD for the feature request and PR.

Maintenance:

  • Wrote new unit tests for VBScriptPath
  • Wrote new E2E tests so shortcuts on each OS are validated after creation.
  • Updated documentation
  • Updated dependencies

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • OSX at ~71-149ms
    • Windows at ~232-242ms
    • Linux at ~34-37ms

Code Changes

Fix double quotes bug in Windows options

18 Jun 14:46
e4182ca
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • Windows arguments, comments, and hotkeys can now accept double quotes (") in their values.
    • Special thanks to AngelCMHxD for catching this after the last release.

Maintenance:

  • Wrote new E2E test to ensure the shortcut properties produced by the VBS script match the desired inputs

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • OSX at ~68-100ms
    • Windows at ~173-224ms
    • Linux at ~32-41ms

Code Changes

Escape double quotes in Windows options

17 Jun 13:50
5375576
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • Windows arguments, comments, and hotkeys will now escape any double quotes (") passed in. This is because a VBScript is required on Windows to create shortcuts, and the VBS language uses the double quote as their escape key. This will fix issues like `arguments: '--thing="some text"' not working.
    • Special thanks to AngelCMHxD for reporting this issue.

Maintenance:

  • Updated dependencies
  • Wrote 3 new tests to ensure this bug fix remains fixed.

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • OSX at ~64-111ms
    • Windows at ~237-273ms
    • Linux at ~35-40ms

Code Changes

Wrap Linux filepath in quotes so spaces aren't seen as arguments

15 Jun 13:29
e0b9ab2
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • Linux filepaths are now always wrapped in double-quotes. This is so that filepaths with spaces are not seen as arguments by Linux.

Maintenance:

  • Updated dependencies
  • Updated documentation
    • Fix an example in a JSDoc block

Code Quality:

  • E2E Tests now log out how long they take to run.
    • This varies depending on OS and the shared utilization of the machines the VM's are running on at GitHub Action's servers
    • OSX at ~70-80ms
    • Windows at ~180-270ms
    • Linux at ~33-45ms
  • Linting and Test coverage remains at 100%
  • E2E tests all passing

Code Changes

Routine Maintenance

15 Jun 12:54
fa3fd0f
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • None, this is just a maintenance release

Maintenance:

  • Updated to ESLint 8
  • Updated dependencies
  • Updated documentation
    • Document Windows 7 Node 13.13.0 manual testing
    • Added instructions for how to run the repo locally for development
    • Documented implementation instructions for manually overriding shortcuts on Windows
    • Added Link to related library

Code Quality:

  • Linting, Unit Tests, and E2E tests no longer run on Node 14, now they run on Node 18
  • Linting and Test coverage remains at 100%
  • E2E tests all passing
    • E2E tests still run on 8.3.0

Code Changes

Improve default Windows outputPath

13 Jan 17:29
4c71b11
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • On Windows computers that store the desktop in a OneDrive folder, (or any any other oddball location), we now specifically ask Windows where the desktop is, instead of assuming it is at the root of the user profile. Though if we cannot get a response from Windows, we fall back on the assumed location. This only occurs if an outputPath is not specified. This may increase runtime by upwards of 300ms on platforms with powershell.exe, however results in a more accurate default location to place the shortcut.

Special thanks to @StoneyEagle for bringing this to my attention and with suggestions on solutions, and @sysrage for inspiring adding a note to encourage an async/ESM port of this library.

Maintenance:

  • Updated dependencies
  • Updated documentation
    • Document the changes to the default windows output path
    • Add a note about endorsing an ESM/async fork

Code Quality:

  • Added timer to manual test.
    • On Windows 7 - Node 13.13.0 - using powershell to lookup the default output path takes 330ms to execute the task. With an outputPath supplied it takes 65ms.
  • Linting and Test coverage remains at 100%
  • E2E tests all passing

Code Changes

Access PATH variables directly for filePaths

23 May 02:17
78dff24
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Bug Fixes:

  • Previously if no value was set for a comment on Windows, it would default to the output file's name (without extension). This was not needed, as it is perfectly fine for this field to be an empty string. This has been corrected. Now if you do not set a comment on Windows, there won't be one.

Enhancements:

  • You can now set your filePath to be equal to an executable name directly if it is available in the user's PATH. For example, if you set it to 'node' or 'python' or 'cmd' and the user can access those from PATH variables, it will work automatically. You no longer need to hard code the full file path, which is useful since those paths may vary depending on system.

Special thanks to @andy-chili-wang for bringing this to my attention, and @sysrage for the advice on implementation (#39).

Maintenance:

  • Made many improvements to linting, including stricter JSDoc block enforcement and adopting a newer parser. Special thanks to the folks at eslint-plugin-jsdoc for their consistently fast improvements and issue resolutions:
  • Updated the .gitAttributes to use a more modern way of enforcing line endings with Git
  • Updated dependencies
  • Updated documentation
    • Badges point to the renamed main branch
    • Updated comment about dependencies
    • Corrected a line on file extensions for Windows icons
    • Fixes typos/improve clarity of meaning
    • Document special path capabilites

Code Quality:

  • Refactored E2E tests
  • Linting and Test coverage remains at 100%
  • E2E tests all passing

Code Changes

Linux arguments support

14 Feb 01:10
462ea02
Compare
Choose a tag to compare

Breaking Changes:

  • NONE! Your code should work exactly the same without changing anything.

Enhancements:

  • You can now pass in arguments with your Linux shortcut, just like you can with Windows (to my knowledge this is not possible with OSX)

Special thanks to @unmellow for bringing this to my attention (#30).

Maintenance:

  • Updated dependencies
  • Updated documentation

Code Quality:

  • Linting and Test coverage remains at 100%
  • E2E tests all passing

Code Changes