Releases: nwutils/create-desktop-shortcuts
Releases · nwutils/create-desktop-shortcuts
Retain environment variables in Windows shortcut paths
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.
- Special thanks to johnnyd710 for this PR
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)
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
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 thewindows.vbs
file would not be in the real file system. You can now make a copy of thewindows.vbs
file external to your package and pass in the location to it usingVBScriptPath
. This should only be done if usingpkg
. Copying of thewindows.vbs
should be done programatically so that it stays up-to-date with future releases ofcreate-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
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
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
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.
- Special thanks to ninopetrovic and av8ta for help on pointing out this issue.
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
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
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 withpowershell.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
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
- Badges point to the renamed
Code Quality:
- Refactored E2E tests
- Linting and Test coverage remains at 100%
- E2E tests all passing
Code Changes
Linux arguments support
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