Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/karaggeorge/mac-open-with
Open a file with an installed app on macOS
https://github.com/karaggeorge/mac-open-with
Last synced: 5 days ago
JSON representation
Open a file with an installed app on macOS
- Host: GitHub
- URL: https://github.com/karaggeorge/mac-open-with
- Owner: karaggeorge
- Created: 2019-09-04T13:55:38.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-14T17:12:19.000Z (about 5 years ago)
- Last Synced: 2024-11-02T02:50:16.399Z (12 days ago)
- Language: Swift
- Size: 28.3 KB
- Stars: 47
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# mac-open-with
> Open a file with an installed app on macOS
Requires macOS 10.12 or later. macOS 10.13 or earlier needs to download the [Swift runtime support libraries](https://download.developer.apple.com/Developer_Tools/Swift_5_Runtime_Support_for_Command_Line_Tools/Swift_5_Runtime_Support_for_Command_Line_Tools.dmg).
## Install
```
$ npm install mac-open-with
```## Usage
```js
const openWith = require('mac-open-with');const apps = openWith.getAppsThatOpenFile.sync('/some/file.mov');
// or
const apps = openWith.getAppsThatOpenType.sync('com.apple.quicktime-movie');
// or
const apps = openWith.getAppsThatOpenExtension.sync('mov');
// [
// { url: 'file:///Applications/iTunes.app/', isDefault: true, icon: '...' },
// { url: 'file:///Applications/Gifski.app/', isDefault: false, icon: '...' },
// { url: 'file:///Applications/Kap.app/', isDefault: false, icon: '...' },
// { url: 'file:///Applications/QuickTime%20Player.app/', isDefault: false, icon: '...' }
// ]openWith.open('/some/file.mov', apps[0]);
// true
```## API
### openWith
#### `.getAppsThatOpenFile(filePath: string): Promise`
Get a list of app URLs that can open the file type of the given file.
#### `.getAppsThatOpenFile.sync(filePath: string): App[]`
Synchronous version of the method above.
#### `.getAppsThatOpenType(fileType: string): Promise`
Get a list of app URLs that can open the given file type.
`fileType` has to be a [Uniform Type Identifier](https://en.wikipedia.org/wiki/Uniform_Type_Identifier)
#### `.getAppsThatOpenType.sync(fileType: string): App[]`
Synchronous version of the method above.
#### `.getAppsThatOpenExtension(extension: string): Promise`
Get a list of app URLs that can open the given file extension.
#### `.getAppsThatOpenExtension.sync(extension: string): App[]`
Synchronous version of the method above.
#### `.open(filePath: string, appUrl: string): boolean`
Open the given file with the given app URL. `appUrl` needs to be one of the URLs returned from `getAppsThatOpenFile` or `getAppsThatOpenType`.
Returns `true` if the file was successfully opened, `false` otherwise.
#### `App`
Object type returned by the following three methods.
##### `app.url`: `string`
The URL of the app.
##### `app.isDefault`: `boolean`
Whether this app is the default app for that file/content type/extension.
##### `app.icon`: `string`
The icon of the app in a `base64` encoded Data URL.