This commit is contained in:
patrickkfkan 2023-06-10 22:52:27 +08:00
parent f3ecc76491
commit be7010c217
261 changed files with 25201 additions and 10034 deletions

4
.eslintignore Normal file
View File

@ -0,0 +1,4 @@
.git
.github
node_modules/
dist/

84
.eslintrc.yml Normal file
View File

@ -0,0 +1,84 @@
plugins:
[ '@typescript-eslint' ]
env:
commonjs: true
es2021: true
node: true
extends: [ eslint:recommended, 'plugin:@typescript-eslint/recommended' ]
parser: '@typescript-eslint/parser'
parserOptions:
ecmaVersion: latest
overrides:
-
files:
- '**/*.js'
rules:
max-len:
- error
-
code: 200
ignoreComments: true
ignoreTrailingComments: true
ignoreStrings: true
ignoreTemplateLiterals: true
ignoreRegExpLiterals: true
quotes: [error, single]
'@typescript-eslint/ban-types': 'off'
'@typescript-eslint/no-explicit-any': 'off'
no-template-curly-in-string: error
no-unreachable-loop: error
no-unused-private-class-members: 'off'
no-prototype-builtins: 'off'
no-async-promise-executor: 'off'
no-case-declarations: 'off'
no-return-assign: 'off'
no-floating-decimal: error
no-implied-eval: error
arrow-spacing: error
no-invalid-this: error
no-lone-blocks: 'off'
no-new-func: error
no-new-wrappers: error
no-new: error
no-void: error
no-octal-escape: error
no-self-compare: error
no-sequences: error
no-throw-literal: error
no-unmodified-loop-condition: error
no-useless-call: error
no-useless-concat: error
no-useless-escape: error
no-useless-return: error
no-else-return: error
no-lonely-if: error
no-undef-init: error
no-unneeded-ternary: error
no-var: error
no-multi-spaces: error
no-multiple-empty-lines: ["error", { "max": 2, "maxEOF": 0 }]
no-tabs: error
no-trailing-spaces: error
brace-style: ["error", "stroustrup"]
new-parens: error
space-infix-ops: error
template-curly-spacing: error
wrap-regex: error
capitalized-comments: error
prefer-template: error
keyword-spacing: ["error", { "before": true } ]
array-bracket-spacing: ["error", "always"]
arrow-parens: ["error", "always"]
comma-dangle: ["error", "never"]
comma-spacing: ["error", { "before": false, "after": true }]
computed-property-spacing: ["error", "never"]
func-call-spacing: ["error", "never"]
indent: ["error", 2, { "SwitchCase": 1 }]
key-spacing: ["error", { "beforeColon": false }]
semi: ["error", "always"]
operator-assignment: ["error", "always"]

3
.gitignore vendored
View File

@ -1 +1,2 @@
node_modules
node_modules/
dist/

4
.npmignore Normal file
View File

@ -0,0 +1,4 @@
**
!dist/**
!README.md

1091
README.md

File diff suppressed because it is too large Load Diff

1
docs/api/.nojekyll Normal file
View File

@ -0,0 +1 @@
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.

178
docs/api/README.md Normal file
View File

@ -0,0 +1,178 @@
bandcamp-fetch
# bandcamp-fetch
## Table of contents
### Namespaces
- [ReleasesByTag](modules/ReleasesByTag.md)
### Enumerations
- [AutocompleteItemType](enums/AutocompleteItemType.md)
- [CacheDataType](enums/CacheDataType.md)
- [ImageFormatFilter](enums/ImageFormatFilter.md)
- [SearchItemType](enums/SearchItemType.md)
### Classes
- [AlbumAPI](classes/AlbumAPI.md)
- [ArticleAPI](classes/ArticleAPI.md)
- [AutocompleteAPI](classes/AutocompleteAPI.md)
- [BandAPI](classes/BandAPI.md)
- [Cache](classes/Cache.md)
- [DiscoveryAPI](classes/DiscoveryAPI.md)
- [FanAPI](classes/FanAPI.md)
- [ImageAPI](classes/ImageAPI.md)
- [LimiterAlbumAPI](classes/LimiterAlbumAPI.md)
- [LimiterArticleAPI](classes/LimiterArticleAPI.md)
- [LimiterAutocompleteAPI](classes/LimiterAutocompleteAPI.md)
- [LimiterBandAPI](classes/LimiterBandAPI.md)
- [LimiterDiscoveryAPI](classes/LimiterDiscoveryAPI.md)
- [LimiterFanAPI](classes/LimiterFanAPI.md)
- [LimiterImageAPI](classes/LimiterImageAPI.md)
- [LimiterSearchAPI](classes/LimiterSearchAPI.md)
- [LimiterShowAPI](classes/LimiterShowAPI.md)
- [LimiterTagAPI](classes/LimiterTagAPI.md)
- [LimiterTrackAPI](classes/LimiterTrackAPI.md)
- [SearchAPI](classes/SearchAPI.md)
- [ShowAPI](classes/ShowAPI.md)
- [TagAPI](classes/TagAPI.md)
- [TrackAPI](classes/TrackAPI.md)
### Interfaces
- [Album](interfaces/Album.md)
- [AlbumAPIGetInfoParams](interfaces/AlbumAPIGetInfoParams.md)
- [AlbumHighlightsByTag](interfaces/AlbumHighlightsByTag.md)
- [AlbumRelease](interfaces/AlbumRelease.md)
- [Article](interfaces/Article.md)
- [ArticleAPIGetArticleParams](interfaces/ArticleAPIGetArticleParams.md)
- [ArticleAPIListParams](interfaces/ArticleAPIListParams.md)
- [ArticleCategory](interfaces/ArticleCategory.md)
- [ArticleCategorySection](interfaces/ArticleCategorySection.md)
- [ArticleList](interfaces/ArticleList.md)
- [ArticleListItem](interfaces/ArticleListItem.md)
- [ArticleSection](interfaces/ArticleSection.md)
- [Artist](interfaces/Artist.md)
- [AutoCompleteTag](interfaces/AutoCompleteTag.md)
- [AutocompleteAPIGetSuggestionsParams](interfaces/AutocompleteAPIGetSuggestionsParams.md)
- [AutocompleteItem](interfaces/AutocompleteItem.md)
- [AutocompleteLocation](interfaces/AutocompleteLocation.md)
- [BandAPIGetDiscographyParams](interfaces/BandAPIGetDiscographyParams.md)
- [BandAPIGetInfoParams](interfaces/BandAPIGetInfoParams.md)
- [BandAPIGetLabelArtistsParams](interfaces/BandAPIGetLabelArtistsParams.md)
- [DiscoverOptions](interfaces/DiscoverOptions.md)
- [DiscoverParams](interfaces/DiscoverParams.md)
- [DiscoverResult](interfaces/DiscoverResult.md)
- [Fan](interfaces/Fan.md)
- [FanAPIGetInfoParams](interfaces/FanAPIGetInfoParams.md)
- [FanAPIGetItemsParams](interfaces/FanAPIGetItemsParams.md)
- [FanContinuationItemsResult](interfaces/FanContinuationItemsResult.md)
- [FanItemsContinuation](interfaces/FanItemsContinuation.md)
- [FanPageItemsResult](interfaces/FanPageItemsResult.md)
- [ImageConstants](interfaces/ImageConstants.md)
- [ImageFormat](interfaces/ImageFormat.md)
- [Label](interfaces/Label.md)
- [MediaKind](interfaces/MediaKind.md)
- [NameValuePair](interfaces/NameValuePair.md)
- [ReleasesByTag](interfaces/ReleasesByTag-1.md)
- [SearchAPISearchParams](interfaces/SearchAPISearchParams.md)
- [SearchResultAlbum](interfaces/SearchResultAlbum.md)
- [SearchResultArtist](interfaces/SearchResultArtist.md)
- [SearchResultFan](interfaces/SearchResultFan.md)
- [SearchResultItem](interfaces/SearchResultItem.md)
- [SearchResultLabel](interfaces/SearchResultLabel.md)
- [SearchResultTrack](interfaces/SearchResultTrack.md)
- [SearchResults](interfaces/SearchResults.md)
- [Show](interfaces/Show.md)
- [ShowAPIGetShowParams](interfaces/ShowAPIGetShowParams.md)
- [ShowAPIListParams](interfaces/ShowAPIListParams.md)
- [Tag](interfaces/Tag.md)
- [TagAPIGetAlbumHighlightsParams](interfaces/TagAPIGetAlbumHighlightsParams.md)
- [TagAPIGetReleasesParams](interfaces/TagAPIGetReleasesParams.md)
- [TagList](interfaces/TagList.md)
- [Track](interfaces/Track.md)
- [TrackAPIGetInfoParams](interfaces/TrackAPIGetInfoParams.md)
- [UserKind](interfaces/UserKind.md)
### Type Aliases
- [ArticleMediaItem](README.md#articlemediaitem)
- [LabelArtist](README.md#labelartist)
- [SearchResultAny](README.md#searchresultany)
### Variables
- [default](README.md#default)
## Type Aliases
### ArticleMediaItem
Ƭ **ArticleMediaItem**: [`Album`](interfaces/Album.md) \| [`Track`](interfaces/Track.md) & { `featuredTrackPosition`: `number` ; `mediaItemRef?`: `string` }
#### Defined in
lib/types/Article.ts:51
___
### LabelArtist
Ƭ **LabelArtist**: `Omit`<[`Artist`](interfaces/Artist.md), ``"type"``\>
#### Defined in
lib/types/Label.ts:9
___
### SearchResultAny
Ƭ **SearchResultAny**: [`SearchResultArtist`](interfaces/SearchResultArtist.md) \| [`SearchResultLabel`](interfaces/SearchResultLabel.md) \| [`SearchResultAlbum`](interfaces/SearchResultAlbum.md) \| [`SearchResultTrack`](interfaces/SearchResultTrack.md) \| [`SearchResultFan`](interfaces/SearchResultFan.md)
#### Defined in
lib/types/Search.ts:47
## Variables
### default
**default**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `album` | typeof [`AlbumAPI`](classes/AlbumAPI.md) |
| `article` | typeof [`ArticleAPI`](classes/ArticleAPI.md) |
| `autocomplete` | typeof [`AutocompleteAPI`](classes/AutocompleteAPI.md) |
| `band` | typeof [`BandAPI`](classes/BandAPI.md) |
| `cache` | typeof [`Cache`](classes/Cache.md) |
| `discovery` | typeof [`DiscoveryAPI`](classes/DiscoveryAPI.md) |
| `fan` | typeof [`FanAPI`](classes/FanAPI.md) |
| `image` | typeof [`ImageAPI`](classes/ImageAPI.md) |
| `limiter` | { `album`: typeof [`LimiterAlbumAPI`](classes/LimiterAlbumAPI.md) = LimiterAlbumAPI; `article`: typeof [`LimiterArticleAPI`](classes/LimiterArticleAPI.md) = LimiterArticleAPI; `autocomplete`: typeof [`LimiterAutocompleteAPI`](classes/LimiterAutocompleteAPI.md) = LimiterAutocompleteAPI; `band`: typeof [`LimiterBandAPI`](classes/LimiterBandAPI.md) = LimiterBandAPI; `discovery`: typeof [`LimiterDiscoveryAPI`](classes/LimiterDiscoveryAPI.md) = LimiterDiscoveryAPI; `fan`: typeof [`LimiterFanAPI`](classes/LimiterFanAPI.md) = LimiterFanAPI; `image`: typeof [`LimiterImageAPI`](classes/LimiterImageAPI.md) = LimiterImageAPI; `search`: typeof [`LimiterSearchAPI`](classes/LimiterSearchAPI.md) = LimiterSearchAPI; `show`: typeof [`LimiterShowAPI`](classes/LimiterShowAPI.md) = LimiterShowAPI; `tag`: typeof [`LimiterTagAPI`](classes/LimiterTagAPI.md) = LimiterTagAPI; `track`: typeof [`LimiterTrackAPI`](classes/LimiterTrackAPI.md) = LimiterTrackAPI; `updateSettings`: (`options?`: `ConstructorOptions`) => `void` } |
| `limiter.album` | typeof [`LimiterAlbumAPI`](classes/LimiterAlbumAPI.md) |
| `limiter.article` | typeof [`LimiterArticleAPI`](classes/LimiterArticleAPI.md) |
| `limiter.autocomplete` | typeof [`LimiterAutocompleteAPI`](classes/LimiterAutocompleteAPI.md) |
| `limiter.band` | typeof [`LimiterBandAPI`](classes/LimiterBandAPI.md) |
| `limiter.discovery` | typeof [`LimiterDiscoveryAPI`](classes/LimiterDiscoveryAPI.md) |
| `limiter.fan` | typeof [`LimiterFanAPI`](classes/LimiterFanAPI.md) |
| `limiter.image` | typeof [`LimiterImageAPI`](classes/LimiterImageAPI.md) |
| `limiter.search` | typeof [`LimiterSearchAPI`](classes/LimiterSearchAPI.md) |
| `limiter.show` | typeof [`LimiterShowAPI`](classes/LimiterShowAPI.md) |
| `limiter.tag` | typeof [`LimiterTagAPI`](classes/LimiterTagAPI.md) |
| `limiter.track` | typeof [`LimiterTrackAPI`](classes/LimiterTrackAPI.md) |
| `limiter.updateSettings` | (`options?`: `ConstructorOptions`) => `void` |
| `search` | typeof [`SearchAPI`](classes/SearchAPI.md) |
| `show` | typeof [`ShowAPI`](classes/ShowAPI.md) |
| `tag` | typeof [`TagAPI`](classes/TagAPI.md) |
| `track` | typeof [`TrackAPI`](classes/TrackAPI.md) |
#### Defined in
index.ts:82

View File

@ -0,0 +1,45 @@
[bandcamp-fetch](../README.md) / AlbumAPI
# Class: AlbumAPI
## Hierarchy
- **`AlbumAPI`**
↳ [`LimiterAlbumAPI`](LimiterAlbumAPI.md)
## Table of contents
### Constructors
- [constructor](AlbumAPI.md#constructor)
### Methods
- [getInfo](AlbumAPI.md#getinfo)
## Constructors
### constructor
**new AlbumAPI**()
## Methods
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Album`](../interfaces/Album.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AlbumAPIGetInfoParams`](../interfaces/AlbumAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Album`](../interfaces/Album.md)\>
#### Defined in
lib/album/AlbumAPI.ts:16

View File

@ -0,0 +1,81 @@
[bandcamp-fetch](../README.md) / ArticleAPI
# Class: ArticleAPI
## Hierarchy
- **`ArticleAPI`**
↳ [`LimiterArticleAPI`](LimiterArticleAPI.md)
## Table of contents
### Constructors
- [constructor](ArticleAPI.md#constructor)
### Methods
- [getArticle](ArticleAPI.md#getarticle)
- [getCategories](ArticleAPI.md#getcategories)
- [list](ArticleAPI.md#list)
## Constructors
### constructor
**new ArticleAPI**()
## Methods
### getArticle
`Static` **getArticle**(`params`): `Promise`<[`Article`](../interfaces/Article.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`ArticleAPIGetArticleParams`](../interfaces/ArticleAPIGetArticleParams.md) |
#### Returns
`Promise`<[`Article`](../interfaces/Article.md)\>
#### Defined in
lib/article/ArticleAPI.ts:32
___
### getCategories
`Static` **getCategories**(): `Promise`<[`ArticleCategorySection`](../interfaces/ArticleCategorySection.md)[]\>
#### Returns
`Promise`<[`ArticleCategorySection`](../interfaces/ArticleCategorySection.md)[]\>
#### Defined in
lib/article/ArticleAPI.ts:27
___
### list
`Static` **list**(`params?`): `Promise`<[`ArticleList`](../interfaces/ArticleList.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`ArticleAPIListParams`](../interfaces/ArticleAPIListParams.md) |
#### Returns
`Promise`<[`ArticleList`](../interfaces/ArticleList.md)\>
#### Defined in
lib/article/ArticleAPI.ts:44

View File

@ -0,0 +1,77 @@
[bandcamp-fetch](../README.md) / AutocompleteAPI
# Class: AutocompleteAPI
## Hierarchy
- **`AutocompleteAPI`**
↳ [`LimiterAutocompleteAPI`](LimiterAutocompleteAPI.md)
## Table of contents
### Constructors
- [constructor](AutocompleteAPI.md#constructor)
### Methods
- [getSuggestions](AutocompleteAPI.md#getsuggestions)
## Constructors
### constructor
**new AutocompleteAPI**()
## Methods
### getSuggestions
`Static` **getSuggestions**(`params`): `Promise`<[`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) & { `itemType`: [`Location`](../enums/AutocompleteItemType.md#location) } |
#### Returns
`Promise`<[`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:20
`Static` **getSuggestions**(`params`): `Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) & { `itemType`: [`Tag`](../enums/AutocompleteItemType.md#tag) } |
#### Returns
`Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[]\>
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:21
`Static` **getSuggestions**(`params`): `Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[] \| [`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) |
#### Returns
`Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[] \| [`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:22

View File

@ -0,0 +1,87 @@
[bandcamp-fetch](../README.md) / BandAPI
# Class: BandAPI
## Hierarchy
- **`BandAPI`**
↳ [`LimiterBandAPI`](LimiterBandAPI.md)
## Table of contents
### Constructors
- [constructor](BandAPI.md#constructor)
### Methods
- [getDiscography](BandAPI.md#getdiscography)
- [getInfo](BandAPI.md#getinfo)
- [getLabelArtists](BandAPI.md#getlabelartists)
## Constructors
### constructor
**new BandAPI**()
## Methods
### getDiscography
`Static` **getDiscography**(`params`): `Promise`<([`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md))[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetDiscographyParams`](../interfaces/BandAPIGetDiscographyParams.md) |
#### Returns
`Promise`<([`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md))[]\>
#### Defined in
lib/band/BandAPI.ts:32
___
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Label`](../interfaces/Label.md) \| [`Artist`](../interfaces/Artist.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetInfoParams`](../interfaces/BandAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Label`](../interfaces/Label.md) \| [`Artist`](../interfaces/Artist.md)\>
#### Defined in
lib/band/BandAPI.ts:43
___
### getLabelArtists
`Static` **getLabelArtists**(`params`): `Promise`<[`LabelArtist`](../README.md#labelartist)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetLabelArtistsParams`](../interfaces/BandAPIGetLabelArtistsParams.md) |
#### Returns
`Promise`<[`LabelArtist`](../README.md#labelartist)[]\>
#### Defined in
lib/band/BandAPI.ts:86

82
docs/api/classes/Cache.md Normal file
View File

@ -0,0 +1,82 @@
[bandcamp-fetch](../README.md) / Cache
# Class: Cache
## Table of contents
### Constructors
- [constructor](Cache.md#constructor)
### Methods
- [clear](Cache.md#clear)
- [setMaxPages](Cache.md#setmaxpages)
- [setTTL](Cache.md#setttl)
## Constructors
### constructor
**new Cache**()
## Methods
### clear
`Static` **clear**(`type?`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type?` | [`CacheDataType`](../enums/CacheDataType.md) |
#### Returns
`void`
#### Defined in
index.ts:69
___
### setMaxPages
`Static` **setMaxPages**(`maxPages`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `maxPages` | `number` |
#### Returns
`void`
#### Defined in
index.ts:77
___
### setTTL
`Static` **setTTL**(`type`, `ttl`): `void`
#### Parameters
| Name | Type |
| :------ | :------ |
| `type` | [`CacheDataType`](../enums/CacheDataType.md) |
| `ttl` | `number` |
#### Returns
`void`
#### Defined in
index.ts:73

View File

@ -0,0 +1,81 @@
[bandcamp-fetch](../README.md) / DiscoveryAPI
# Class: DiscoveryAPI
## Hierarchy
- **`DiscoveryAPI`**
↳ [`LimiterDiscoveryAPI`](LimiterDiscoveryAPI.md)
## Table of contents
### Constructors
- [constructor](DiscoveryAPI.md#constructor)
### Methods
- [discover](DiscoveryAPI.md#discover)
- [getAvailableOptions](DiscoveryAPI.md#getavailableoptions)
- [sanitizeDiscoverParams](DiscoveryAPI.md#sanitizediscoverparams)
## Constructors
### constructor
**new DiscoveryAPI**()
## Methods
### discover
`Static` **discover**(`params?`): `Promise`<[`DiscoverResult`](../interfaces/DiscoverResult.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`DiscoverParams`](../interfaces/DiscoverParams.md) |
#### Returns
`Promise`<[`DiscoverResult`](../interfaces/DiscoverResult.md)\>
#### Defined in
lib/discovery/DiscoveryAPI.ts:76
___
### getAvailableOptions
`Static` **getAvailableOptions**(): `Promise`<[`DiscoverOptions`](../interfaces/DiscoverOptions.md)\>
#### Returns
`Promise`<[`DiscoverOptions`](../interfaces/DiscoverOptions.md)\>
#### Defined in
lib/discovery/DiscoveryAPI.ts:24
___
### sanitizeDiscoverParams
`Static` **sanitizeDiscoverParams**(`params?`): `Promise`<[`DiscoverParams`](../interfaces/DiscoverParams.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`DiscoverParams`](../interfaces/DiscoverParams.md) |
#### Returns
`Promise`<[`DiscoverParams`](../interfaces/DiscoverParams.md)\>
#### Defined in
lib/discovery/DiscoveryAPI.ts:31

129
docs/api/classes/FanAPI.md Normal file
View File

@ -0,0 +1,129 @@
[bandcamp-fetch](../README.md) / FanAPI
# Class: FanAPI
## Hierarchy
- **`FanAPI`**
↳ [`LimiterFanAPI`](LimiterFanAPI.md)
## Table of contents
### Constructors
- [constructor](FanAPI.md#constructor)
### Methods
- [getCollection](FanAPI.md#getcollection)
- [getFollowingArtistsAndLabels](FanAPI.md#getfollowingartistsandlabels)
- [getFollowingGenres](FanAPI.md#getfollowinggenres)
- [getInfo](FanAPI.md#getinfo)
- [getWishlist](FanAPI.md#getwishlist)
## Constructors
### constructor
**new FanAPI**()
## Methods
### getCollection
`Static` **getCollection**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Defined in
lib/fan/FanAPI.ts:52
___
### getFollowingArtistsAndLabels
`Static` **getFollowingArtistsAndLabels**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\>\>
#### Defined in
lib/fan/FanAPI.ts:72
___
### getFollowingGenres
`Static` **getFollowingGenres**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`Tag`](../interfaces/Tag.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`Tag`](../interfaces/Tag.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`Tag`](../interfaces/Tag.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`Tag`](../interfaces/Tag.md)\>\>
#### Defined in
lib/fan/FanAPI.ts:82
___
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Fan`](../interfaces/Fan.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetInfoParams`](../interfaces/FanAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Fan`](../interfaces/Fan.md)\>
#### Defined in
lib/fan/FanAPI.ts:41
___
### getWishlist
`Static` **getWishlist**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Defined in
lib/fan/FanAPI.ts:62

View File

@ -0,0 +1,67 @@
[bandcamp-fetch](../README.md) / ImageAPI
# Class: ImageAPI
## Hierarchy
- **`ImageAPI`**
↳ [`LimiterImageAPI`](LimiterImageAPI.md)
## Table of contents
### Constructors
- [constructor](ImageAPI.md#constructor)
### Methods
- [getFormat](ImageAPI.md#getformat)
- [getFormats](ImageAPI.md#getformats)
## Constructors
### constructor
**new ImageAPI**()
## Methods
### getFormat
`Static` **getFormat**(`target?`, `fallbackId?`): `Promise`<``null`` \| [`ImageFormat`](../interfaces/ImageFormat.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `target?` | `string` \| `number` \| [`ImageFormat`](../interfaces/ImageFormat.md) |
| `fallbackId?` | `number` |
#### Returns
`Promise`<``null`` \| [`ImageFormat`](../interfaces/ImageFormat.md)\>
#### Defined in
lib/image/ImageAPI.ts:27
___
### getFormats
`Static` **getFormats**(`filter?`): `Promise`<[`ImageFormat`](../interfaces/ImageFormat.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `filter?` | [`ImageFormatFilter`](../enums/ImageFormatFilter.md) |
#### Returns
`Promise`<[`ImageFormat`](../interfaces/ImageFormat.md)[]\>
#### Defined in
lib/image/ImageAPI.ts:47

View File

@ -0,0 +1,53 @@
[bandcamp-fetch](../README.md) / LimiterAlbumAPI
# Class: LimiterAlbumAPI
## Hierarchy
- [`AlbumAPI`](AlbumAPI.md)
**`LimiterAlbumAPI`**
## Table of contents
### Constructors
- [constructor](LimiterAlbumAPI.md#constructor)
### Methods
- [getInfo](LimiterAlbumAPI.md#getinfo)
## Constructors
### constructor
**new LimiterAlbumAPI**()
#### Inherited from
[AlbumAPI](AlbumAPI.md).[constructor](AlbumAPI.md#constructor)
## Methods
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Album`](../interfaces/Album.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AlbumAPIGetInfoParams`](../interfaces/AlbumAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Album`](../interfaces/Album.md)\>
#### Overrides
[AlbumAPI](AlbumAPI.md).[getInfo](AlbumAPI.md#getinfo)
#### Defined in
lib/album/AlbumAPI.ts:30

View File

@ -0,0 +1,97 @@
[bandcamp-fetch](../README.md) / LimiterArticleAPI
# Class: LimiterArticleAPI
## Hierarchy
- [`ArticleAPI`](ArticleAPI.md)
**`LimiterArticleAPI`**
## Table of contents
### Constructors
- [constructor](LimiterArticleAPI.md#constructor)
### Methods
- [getArticle](LimiterArticleAPI.md#getarticle)
- [getCategories](LimiterArticleAPI.md#getcategories)
- [list](LimiterArticleAPI.md#list)
## Constructors
### constructor
**new LimiterArticleAPI**()
#### Inherited from
[ArticleAPI](ArticleAPI.md).[constructor](ArticleAPI.md#constructor)
## Methods
### getArticle
`Static` **getArticle**(`params`): `Promise`<[`Article`](../interfaces/Article.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`ArticleAPIGetArticleParams`](../interfaces/ArticleAPIGetArticleParams.md) |
#### Returns
`Promise`<[`Article`](../interfaces/Article.md)\>
#### Overrides
[ArticleAPI](ArticleAPI.md).[getArticle](ArticleAPI.md#getarticle)
#### Defined in
lib/article/ArticleAPI.ts:63
___
### getCategories
`Static` **getCategories**(): `Promise`<[`ArticleCategorySection`](../interfaces/ArticleCategorySection.md)[]\>
#### Returns
`Promise`<[`ArticleCategorySection`](../interfaces/ArticleCategorySection.md)[]\>
#### Overrides
[ArticleAPI](ArticleAPI.md).[getCategories](ArticleAPI.md#getcategories)
#### Defined in
lib/article/ArticleAPI.ts:59
___
### list
`Static` **list**(`params?`): `Promise`<[`ArticleList`](../interfaces/ArticleList.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`ArticleAPIListParams`](../interfaces/ArticleAPIListParams.md) |
#### Returns
`Promise`<[`ArticleList`](../interfaces/ArticleList.md)\>
#### Inherited from
[ArticleAPI](ArticleAPI.md).[list](ArticleAPI.md#list)
#### Defined in
lib/article/ArticleAPI.ts:44

View File

@ -0,0 +1,93 @@
[bandcamp-fetch](../README.md) / LimiterAutocompleteAPI
# Class: LimiterAutocompleteAPI
## Hierarchy
- [`AutocompleteAPI`](AutocompleteAPI.md)
**`LimiterAutocompleteAPI`**
## Table of contents
### Constructors
- [constructor](LimiterAutocompleteAPI.md#constructor)
### Methods
- [getSuggestions](LimiterAutocompleteAPI.md#getsuggestions)
## Constructors
### constructor
**new LimiterAutocompleteAPI**()
#### Inherited from
[AutocompleteAPI](AutocompleteAPI.md).[constructor](AutocompleteAPI.md#constructor)
## Methods
### getSuggestions
`Static` **getSuggestions**(`params`): `Promise`<[`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) & { `itemType`: [`Location`](../enums/AutocompleteItemType.md#location) } |
#### Returns
`Promise`<[`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Overrides
[AutocompleteAPI](AutocompleteAPI.md).[getSuggestions](AutocompleteAPI.md#getsuggestions)
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:55
`Static` **getSuggestions**(`params`): `Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) & { `itemType`: [`Tag`](../enums/AutocompleteItemType.md#tag) } |
#### Returns
`Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[]\>
#### Overrides
[AutocompleteAPI](AutocompleteAPI.md).[getSuggestions](AutocompleteAPI.md#getsuggestions)
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:56
`Static` **getSuggestions**(`params`): `Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[] \| [`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`AutocompleteAPIGetSuggestionsParams`](../interfaces/AutocompleteAPIGetSuggestionsParams.md) |
#### Returns
`Promise`<[`AutoCompleteTag`](../interfaces/AutoCompleteTag.md)[] \| [`AutocompleteLocation`](../interfaces/AutocompleteLocation.md)[]\>
#### Overrides
[AutocompleteAPI](AutocompleteAPI.md).[getSuggestions](AutocompleteAPI.md#getsuggestions)
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:57

View File

@ -0,0 +1,103 @@
[bandcamp-fetch](../README.md) / LimiterBandAPI
# Class: LimiterBandAPI
## Hierarchy
- [`BandAPI`](BandAPI.md)
**`LimiterBandAPI`**
## Table of contents
### Constructors
- [constructor](LimiterBandAPI.md#constructor)
### Methods
- [getDiscography](LimiterBandAPI.md#getdiscography)
- [getInfo](LimiterBandAPI.md#getinfo)
- [getLabelArtists](LimiterBandAPI.md#getlabelartists)
## Constructors
### constructor
**new LimiterBandAPI**()
#### Inherited from
[BandAPI](BandAPI.md).[constructor](BandAPI.md#constructor)
## Methods
### getDiscography
`Static` **getDiscography**(`params`): `Promise`<([`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md))[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetDiscographyParams`](../interfaces/BandAPIGetDiscographyParams.md) |
#### Returns
`Promise`<([`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md))[]\>
#### Overrides
[BandAPI](BandAPI.md).[getDiscography](BandAPI.md#getdiscography)
#### Defined in
lib/band/BandAPI.ts:126
___
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Label`](../interfaces/Label.md) \| [`Artist`](../interfaces/Artist.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetInfoParams`](../interfaces/BandAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Label`](../interfaces/Label.md) \| [`Artist`](../interfaces/Artist.md)\>
#### Overrides
[BandAPI](BandAPI.md).[getInfo](BandAPI.md#getinfo)
#### Defined in
lib/band/BandAPI.ts:130
___
### getLabelArtists
`Static` **getLabelArtists**(`params`): `Promise`<[`LabelArtist`](../README.md#labelartist)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`BandAPIGetLabelArtistsParams`](../interfaces/BandAPIGetLabelArtistsParams.md) |
#### Returns
`Promise`<[`LabelArtist`](../README.md#labelartist)[]\>
#### Overrides
[BandAPI](BandAPI.md).[getLabelArtists](BandAPI.md#getlabelartists)
#### Defined in
lib/band/BandAPI.ts:134

View File

@ -0,0 +1,97 @@
[bandcamp-fetch](../README.md) / LimiterDiscoveryAPI
# Class: LimiterDiscoveryAPI
## Hierarchy
- [`DiscoveryAPI`](DiscoveryAPI.md)
**`LimiterDiscoveryAPI`**
## Table of contents
### Constructors
- [constructor](LimiterDiscoveryAPI.md#constructor)
### Methods
- [discover](LimiterDiscoveryAPI.md#discover)
- [getAvailableOptions](LimiterDiscoveryAPI.md#getavailableoptions)
- [sanitizeDiscoverParams](LimiterDiscoveryAPI.md#sanitizediscoverparams)
## Constructors
### constructor
**new LimiterDiscoveryAPI**()
#### Inherited from
[DiscoveryAPI](DiscoveryAPI.md).[constructor](DiscoveryAPI.md#constructor)
## Methods
### discover
`Static` **discover**(`params`): `Promise`<[`DiscoverResult`](../interfaces/DiscoverResult.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`DiscoverParams`](../interfaces/DiscoverParams.md) |
#### Returns
`Promise`<[`DiscoverResult`](../interfaces/DiscoverResult.md)\>
#### Overrides
[DiscoveryAPI](DiscoveryAPI.md).[discover](DiscoveryAPI.md#discover)
#### Defined in
lib/discovery/DiscoveryAPI.ts:139
___
### getAvailableOptions
`Static` **getAvailableOptions**(): `Promise`<[`DiscoverOptions`](../interfaces/DiscoverOptions.md)\>
#### Returns
`Promise`<[`DiscoverOptions`](../interfaces/DiscoverOptions.md)\>
#### Overrides
[DiscoveryAPI](DiscoveryAPI.md).[getAvailableOptions](DiscoveryAPI.md#getavailableoptions)
#### Defined in
lib/discovery/DiscoveryAPI.ts:131
___
### sanitizeDiscoverParams
`Static` **sanitizeDiscoverParams**(`params`): `Promise`<[`DiscoverParams`](../interfaces/DiscoverParams.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`DiscoverParams`](../interfaces/DiscoverParams.md) |
#### Returns
`Promise`<[`DiscoverParams`](../interfaces/DiscoverParams.md)\>
#### Overrides
[DiscoveryAPI](DiscoveryAPI.md).[sanitizeDiscoverParams](DiscoveryAPI.md#sanitizediscoverparams)
#### Defined in
lib/discovery/DiscoveryAPI.ts:135

View File

@ -0,0 +1,153 @@
[bandcamp-fetch](../README.md) / LimiterFanAPI
# Class: LimiterFanAPI
## Hierarchy
- [`FanAPI`](FanAPI.md)
**`LimiterFanAPI`**
## Table of contents
### Constructors
- [constructor](LimiterFanAPI.md#constructor)
### Methods
- [getCollection](LimiterFanAPI.md#getcollection)
- [getFollowingArtistsAndLabels](LimiterFanAPI.md#getfollowingartistsandlabels)
- [getFollowingGenres](LimiterFanAPI.md#getfollowinggenres)
- [getInfo](LimiterFanAPI.md#getinfo)
- [getWishlist](LimiterFanAPI.md#getwishlist)
## Constructors
### constructor
**new LimiterFanAPI**()
#### Inherited from
[FanAPI](FanAPI.md).[constructor](FanAPI.md#constructor)
## Methods
### getCollection
`Static` **getCollection**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Overrides
[FanAPI](FanAPI.md).[getCollection](FanAPI.md#getcollection)
#### Defined in
lib/fan/FanAPI.ts:136
___
### getFollowingArtistsAndLabels
`Static` **getFollowingArtistsAndLabels**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`UserKind`](../interfaces/UserKind.md)\>\>
#### Overrides
[FanAPI](FanAPI.md).[getFollowingArtistsAndLabels](FanAPI.md#getfollowingartistsandlabels)
#### Defined in
lib/fan/FanAPI.ts:144
___
### getFollowingGenres
`Static` **getFollowingGenres**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`Tag`](../interfaces/Tag.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`Tag`](../interfaces/Tag.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<[`Tag`](../interfaces/Tag.md)\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<[`Tag`](../interfaces/Tag.md)\>\>
#### Overrides
[FanAPI](FanAPI.md).[getFollowingGenres](FanAPI.md#getfollowinggenres)
#### Defined in
lib/fan/FanAPI.ts:148
___
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Fan`](../interfaces/Fan.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetInfoParams`](../interfaces/FanAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Fan`](../interfaces/Fan.md)\>
#### Overrides
[FanAPI](FanAPI.md).[getInfo](FanAPI.md#getinfo)
#### Defined in
lib/fan/FanAPI.ts:132
___
### getWishlist
`Static` **getWishlist**(`params`): `Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`FanAPIGetItemsParams`](../interfaces/FanAPIGetItemsParams.md) |
#### Returns
`Promise`<[`FanPageItemsResult`](../interfaces/FanPageItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\> \| [`FanContinuationItemsResult`](../interfaces/FanContinuationItemsResult.md)<`NonNullable`<``null`` \| [`Track`](../interfaces/Track.md) \| [`Album`](../interfaces/Album.md)\>\>\>
#### Overrides
[FanAPI](FanAPI.md).[getWishlist](FanAPI.md#getwishlist)
#### Defined in
lib/fan/FanAPI.ts:140

View File

@ -0,0 +1,79 @@
[bandcamp-fetch](../README.md) / LimiterImageAPI
# Class: LimiterImageAPI
## Hierarchy
- [`ImageAPI`](ImageAPI.md)
**`LimiterImageAPI`**
## Table of contents
### Constructors
- [constructor](LimiterImageAPI.md#constructor)
### Methods
- [getFormat](LimiterImageAPI.md#getformat)
- [getFormats](LimiterImageAPI.md#getformats)
## Constructors
### constructor
**new LimiterImageAPI**()
#### Inherited from
[ImageAPI](ImageAPI.md).[constructor](ImageAPI.md#constructor)
## Methods
### getFormat
`Static` **getFormat**(`target?`, `fallbackId?`): `Promise`<``null`` \| [`ImageFormat`](../interfaces/ImageFormat.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `target?` | `string` \| `number` \| [`ImageFormat`](../interfaces/ImageFormat.md) |
| `fallbackId?` | `number` |
#### Returns
`Promise`<``null`` \| [`ImageFormat`](../interfaces/ImageFormat.md)\>
#### Overrides
[ImageAPI](ImageAPI.md).[getFormat](ImageAPI.md#getformat)
#### Defined in
lib/image/ImageAPI.ts:66
___
### getFormats
`Static` **getFormats**(`filter?`): `Promise`<[`ImageFormat`](../interfaces/ImageFormat.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `filter?` | [`ImageFormatFilter`](../enums/ImageFormatFilter.md) |
#### Returns
`Promise`<[`ImageFormat`](../interfaces/ImageFormat.md)[]\>
#### Overrides
[ImageAPI](ImageAPI.md).[getFormats](ImageAPI.md#getformats)
#### Defined in
lib/image/ImageAPI.ts:62

View File

@ -0,0 +1,153 @@
[bandcamp-fetch](../README.md) / LimiterSearchAPI
# Class: LimiterSearchAPI
## Hierarchy
- [`SearchAPI`](SearchAPI.md)
**`LimiterSearchAPI`**
## Table of contents
### Constructors
- [constructor](LimiterSearchAPI.md#constructor)
### Methods
- [albums](LimiterSearchAPI.md#albums)
- [all](LimiterSearchAPI.md#all)
- [artistsAndLabels](LimiterSearchAPI.md#artistsandlabels)
- [fans](LimiterSearchAPI.md#fans)
- [tracks](LimiterSearchAPI.md#tracks)
## Constructors
### constructor
**new LimiterSearchAPI**()
#### Inherited from
[SearchAPI](SearchAPI.md).[constructor](SearchAPI.md#constructor)
## Methods
### albums
`Static` **albums**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAlbum`](../interfaces/SearchResultAlbum.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAlbum`](../interfaces/SearchResultAlbum.md)\>\>
#### Overrides
[SearchAPI](SearchAPI.md).[albums](SearchAPI.md#albums)
#### Defined in
lib/search/SearchAPI.ts:95
___
### all
`Static` **all**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAny`](../README.md#searchresultany)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAny`](../README.md#searchresultany)\>\>
#### Overrides
[SearchAPI](SearchAPI.md).[all](SearchAPI.md#all)
#### Defined in
lib/search/SearchAPI.ts:87
___
### artistsAndLabels
`Static` **artistsAndLabels**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultArtist`](../interfaces/SearchResultArtist.md) \| [`SearchResultLabel`](../interfaces/SearchResultLabel.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultArtist`](../interfaces/SearchResultArtist.md) \| [`SearchResultLabel`](../interfaces/SearchResultLabel.md)\>\>
#### Overrides
[SearchAPI](SearchAPI.md).[artistsAndLabels](SearchAPI.md#artistsandlabels)
#### Defined in
lib/search/SearchAPI.ts:91
___
### fans
`Static` **fans**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultFan`](../interfaces/SearchResultFan.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultFan`](../interfaces/SearchResultFan.md)\>\>
#### Overrides
[SearchAPI](SearchAPI.md).[fans](SearchAPI.md#fans)
#### Defined in
lib/search/SearchAPI.ts:103
___
### tracks
`Static` **tracks**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultTrack`](../interfaces/SearchResultTrack.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultTrack`](../interfaces/SearchResultTrack.md)\>\>
#### Overrides
[SearchAPI](SearchAPI.md).[tracks](SearchAPI.md#tracks)
#### Defined in
lib/search/SearchAPI.ts:99

View File

@ -0,0 +1,78 @@
[bandcamp-fetch](../README.md) / LimiterShowAPI
# Class: LimiterShowAPI
## Hierarchy
- [`ShowAPI`](ShowAPI.md)
**`LimiterShowAPI`**
## Table of contents
### Constructors
- [constructor](LimiterShowAPI.md#constructor)
### Methods
- [getShow](LimiterShowAPI.md#getshow)
- [list](LimiterShowAPI.md#list)
## Constructors
### constructor
**new LimiterShowAPI**()
#### Inherited from
[ShowAPI](ShowAPI.md).[constructor](ShowAPI.md#constructor)
## Methods
### getShow
`Static` **getShow**(`params`): `Promise`<[`Show`](../interfaces/Show.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`ShowAPIGetShowParams`](../interfaces/ShowAPIGetShowParams.md) |
#### Returns
`Promise`<[`Show`](../interfaces/Show.md)\>
#### Overrides
[ShowAPI](ShowAPI.md).[getShow](ShowAPI.md#getshow)
#### Defined in
lib/show/ShowAPI.ts:49
___
### list
`Static` **list**(`params?`): `Promise`<[`Show`](../interfaces/Show.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`ShowAPIListParams`](../interfaces/ShowAPIListParams.md) |
#### Returns
`Promise`<[`Show`](../interfaces/Show.md)[]\>
#### Overrides
[ShowAPI](ShowAPI.md).[list](ShowAPI.md#list)
#### Defined in
lib/show/ShowAPI.ts:53

View File

@ -0,0 +1,147 @@
[bandcamp-fetch](../README.md) / LimiterTagAPI
# Class: LimiterTagAPI
## Hierarchy
- [`TagAPI`](TagAPI.md)
**`LimiterTagAPI`**
## Table of contents
### Constructors
- [constructor](LimiterTagAPI.md#constructor)
### Methods
- [getAlbumHighlights](LimiterTagAPI.md#getalbumhighlights)
- [getInfo](LimiterTagAPI.md#getinfo)
- [getReleases](LimiterTagAPI.md#getreleases)
- [getReleasesAvailableFilters](LimiterTagAPI.md#getreleasesavailablefilters)
- [list](LimiterTagAPI.md#list)
## Constructors
### constructor
**new LimiterTagAPI**()
#### Inherited from
[TagAPI](TagAPI.md).[constructor](TagAPI.md#constructor)
## Methods
### getAlbumHighlights
`Static` **getAlbumHighlights**(`params`): `Promise`<[`AlbumHighlightsByTag`](../interfaces/AlbumHighlightsByTag.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TagAPIGetAlbumHighlightsParams`](../interfaces/TagAPIGetAlbumHighlightsParams.md) |
#### Returns
`Promise`<[`AlbumHighlightsByTag`](../interfaces/AlbumHighlightsByTag.md)[]\>
#### Overrides
[TagAPI](TagAPI.md).[getAlbumHighlights](TagAPI.md#getalbumhighlights)
#### Defined in
lib/tag/TagAPI.ts:151
___
### getInfo
`Static` **getInfo**(`tagUrl`): `Promise`<[`Tag`](../interfaces/Tag.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `tagUrl` | `string` |
#### Returns
`Promise`<[`Tag`](../interfaces/Tag.md)\>
#### Overrides
[TagAPI](TagAPI.md).[getInfo](TagAPI.md#getinfo)
#### Defined in
lib/tag/TagAPI.ts:147
___
### getReleases
`Static` **getReleases**(`params`): `Promise`<[`ReleasesByTag`](../interfaces/ReleasesByTag-1.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TagAPIGetReleasesParams`](../interfaces/TagAPIGetReleasesParams.md) |
#### Returns
`Promise`<[`ReleasesByTag`](../interfaces/ReleasesByTag-1.md)\>
#### Overrides
[TagAPI](TagAPI.md).[getReleases](TagAPI.md#getreleases)
#### Defined in
lib/tag/TagAPI.ts:159
___
### getReleasesAvailableFilters
`Static` **getReleasesAvailableFilters**(`tagUrl`): `Promise`<[`Filter`](../interfaces/ReleasesByTag.Filter.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `tagUrl` | `string` |
#### Returns
`Promise`<[`Filter`](../interfaces/ReleasesByTag.Filter.md)[]\>
#### Overrides
[TagAPI](TagAPI.md).[getReleasesAvailableFilters](TagAPI.md#getreleasesavailablefilters)
#### Defined in
lib/tag/TagAPI.ts:155
___
### list
`Static` **list**(): `Promise`<[`TagList`](../interfaces/TagList.md)\>
#### Returns
`Promise`<[`TagList`](../interfaces/TagList.md)\>
#### Overrides
[TagAPI](TagAPI.md).[list](TagAPI.md#list)
#### Defined in
lib/tag/TagAPI.ts:143

View File

@ -0,0 +1,53 @@
[bandcamp-fetch](../README.md) / LimiterTrackAPI
# Class: LimiterTrackAPI
## Hierarchy
- [`TrackAPI`](TrackAPI.md)
**`LimiterTrackAPI`**
## Table of contents
### Constructors
- [constructor](LimiterTrackAPI.md#constructor)
### Methods
- [getInfo](LimiterTrackAPI.md#getinfo)
## Constructors
### constructor
**new LimiterTrackAPI**()
#### Inherited from
[TrackAPI](TrackAPI.md).[constructor](TrackAPI.md#constructor)
## Methods
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Track`](../interfaces/Track.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TrackAPIGetInfoParams`](../interfaces/TrackAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Track`](../interfaces/Track.md)\>
#### Overrides
[TrackAPI](TrackAPI.md).[getInfo](TrackAPI.md#getinfo)
#### Defined in
lib/track/TrackAPI.ts:31

View File

@ -0,0 +1,129 @@
[bandcamp-fetch](../README.md) / SearchAPI
# Class: SearchAPI
## Hierarchy
- **`SearchAPI`**
↳ [`LimiterSearchAPI`](LimiterSearchAPI.md)
## Table of contents
### Constructors
- [constructor](SearchAPI.md#constructor)
### Methods
- [albums](SearchAPI.md#albums)
- [all](SearchAPI.md#all)
- [artistsAndLabels](SearchAPI.md#artistsandlabels)
- [fans](SearchAPI.md#fans)
- [tracks](SearchAPI.md#tracks)
## Constructors
### constructor
**new SearchAPI**()
## Methods
### albums
`Static` **albums**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAlbum`](../interfaces/SearchResultAlbum.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAlbum`](../interfaces/SearchResultAlbum.md)\>\>
#### Defined in
lib/search/SearchAPI.ts:35
___
### all
`Static` **all**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAny`](../README.md#searchresultany)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultAny`](../README.md#searchresultany)\>\>
#### Defined in
lib/search/SearchAPI.ts:27
___
### artistsAndLabels
`Static` **artistsAndLabels**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultArtist`](../interfaces/SearchResultArtist.md) \| [`SearchResultLabel`](../interfaces/SearchResultLabel.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultArtist`](../interfaces/SearchResultArtist.md) \| [`SearchResultLabel`](../interfaces/SearchResultLabel.md)\>\>
#### Defined in
lib/search/SearchAPI.ts:31
___
### fans
`Static` **fans**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultFan`](../interfaces/SearchResultFan.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultFan`](../interfaces/SearchResultFan.md)\>\>
#### Defined in
lib/search/SearchAPI.ts:43
___
### tracks
`Static` **tracks**(`params`): `Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultTrack`](../interfaces/SearchResultTrack.md)\>\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`SearchAPISearchParams`](../interfaces/SearchAPISearchParams.md) |
#### Returns
`Promise`<[`SearchResults`](../interfaces/SearchResults.md)<[`SearchResultTrack`](../interfaces/SearchResultTrack.md)\>\>
#### Defined in
lib/search/SearchAPI.ts:39

View File

@ -0,0 +1,66 @@
[bandcamp-fetch](../README.md) / ShowAPI
# Class: ShowAPI
## Hierarchy
- **`ShowAPI`**
↳ [`LimiterShowAPI`](LimiterShowAPI.md)
## Table of contents
### Constructors
- [constructor](ShowAPI.md#constructor)
### Methods
- [getShow](ShowAPI.md#getshow)
- [list](ShowAPI.md#list)
## Constructors
### constructor
**new ShowAPI**()
## Methods
### getShow
`Static` **getShow**(`params`): `Promise`<[`Show`](../interfaces/Show.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`ShowAPIGetShowParams`](../interfaces/ShowAPIGetShowParams.md) |
#### Returns
`Promise`<[`Show`](../interfaces/Show.md)\>
#### Defined in
lib/show/ShowAPI.ts:23
___
### list
`Static` **list**(`params?`): `Promise`<[`Show`](../interfaces/Show.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params?` | [`ShowAPIListParams`](../interfaces/ShowAPIListParams.md) |
#### Returns
`Promise`<[`Show`](../interfaces/Show.md)[]\>
#### Defined in
lib/show/ShowAPI.ts:36

123
docs/api/classes/TagAPI.md Normal file
View File

@ -0,0 +1,123 @@
[bandcamp-fetch](../README.md) / TagAPI
# Class: TagAPI
## Hierarchy
- **`TagAPI`**
↳ [`LimiterTagAPI`](LimiterTagAPI.md)
## Table of contents
### Constructors
- [constructor](TagAPI.md#constructor)
### Methods
- [getAlbumHighlights](TagAPI.md#getalbumhighlights)
- [getInfo](TagAPI.md#getinfo)
- [getReleases](TagAPI.md#getreleases)
- [getReleasesAvailableFilters](TagAPI.md#getreleasesavailablefilters)
- [list](TagAPI.md#list)
## Constructors
### constructor
**new TagAPI**()
## Methods
### getAlbumHighlights
`Static` **getAlbumHighlights**(`params`): `Promise`<[`AlbumHighlightsByTag`](../interfaces/AlbumHighlightsByTag.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TagAPIGetAlbumHighlightsParams`](../interfaces/TagAPIGetAlbumHighlightsParams.md) |
#### Returns
`Promise`<[`AlbumHighlightsByTag`](../interfaces/AlbumHighlightsByTag.md)[]\>
#### Defined in
lib/tag/TagAPI.ts:38
___
### getInfo
`Static` **getInfo**(`tagUrl`): `Promise`<[`Tag`](../interfaces/Tag.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `tagUrl` | `string` |
#### Returns
`Promise`<[`Tag`](../interfaces/Tag.md)\>
#### Defined in
lib/tag/TagAPI.ts:33
___
### getReleases
`Static` **getReleases**(`params`): `Promise`<[`ReleasesByTag`](../interfaces/ReleasesByTag-1.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TagAPIGetReleasesParams`](../interfaces/TagAPIGetReleasesParams.md) |
#### Returns
`Promise`<[`ReleasesByTag`](../interfaces/ReleasesByTag-1.md)\>
#### Defined in
lib/tag/TagAPI.ts:55
___
### getReleasesAvailableFilters
`Static` **getReleasesAvailableFilters**(`tagUrl`): `Promise`<[`Filter`](../interfaces/ReleasesByTag.Filter.md)[]\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `tagUrl` | `string` |
#### Returns
`Promise`<[`Filter`](../interfaces/ReleasesByTag.Filter.md)[]\>
#### Defined in
lib/tag/TagAPI.ts:49
___
### list
`Static` **list**(): `Promise`<[`TagList`](../interfaces/TagList.md)\>
#### Returns
`Promise`<[`TagList`](../interfaces/TagList.md)\>
#### Defined in
lib/tag/TagAPI.ts:28

View File

@ -0,0 +1,45 @@
[bandcamp-fetch](../README.md) / TrackAPI
# Class: TrackAPI
## Hierarchy
- **`TrackAPI`**
↳ [`LimiterTrackAPI`](LimiterTrackAPI.md)
## Table of contents
### Constructors
- [constructor](TrackAPI.md#constructor)
### Methods
- [getInfo](TrackAPI.md#getinfo)
## Constructors
### constructor
**new TrackAPI**()
## Methods
### getInfo
`Static` **getInfo**(`params`): `Promise`<[`Track`](../interfaces/Track.md)\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `params` | [`TrackAPIGetInfoParams`](../interfaces/TrackAPIGetInfoParams.md) |
#### Returns
`Promise`<[`Track`](../interfaces/Track.md)\>
#### Defined in
lib/track/TrackAPI.ts:16

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / AutocompleteItemType
# Enumeration: AutocompleteItemType
## Table of contents
### Enumeration Members
- [Location](AutocompleteItemType.md#location)
- [Tag](AutocompleteItemType.md#tag)
## Enumeration Members
### Location
**Location** = ``"Location"``
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:9
___
### Tag
**Tag** = ``"Tag"``
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:8

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / CacheDataType
# Enumeration: CacheDataType
## Table of contents
### Enumeration Members
- [Constants](CacheDataType.md#constants)
- [Page](CacheDataType.md#page)
## Enumeration Members
### Constants
**Constants** = ``"Constants"``
#### Defined in
lib/utils/Cache.ts:5
___
### Page
**Page** = ``"Page"``
#### Defined in
lib/utils/Cache.ts:4

View File

@ -0,0 +1,34 @@
[bandcamp-fetch](../README.md) / ImageFormatFilter
# Enumeration: ImageFormatFilter
## Table of contents
### Enumeration Members
- [Album](ImageFormatFilter.md#album)
- [Bio](ImageFormatFilter.md#bio)
## Enumeration Members
### Album
**Album** = ``"album"``
Album image formats
#### Defined in
lib/image/ImageAPI.ts:10
___
### Bio
**Bio** = ``"bio"``
Artist / Profile image formats
#### Defined in
lib/image/ImageAPI.ts:12

View File

@ -0,0 +1,63 @@
[bandcamp-fetch](../README.md) / SearchItemType
# Enumeration: SearchItemType
## Table of contents
### Enumeration Members
- [Albums](SearchItemType.md#albums)
- [All](SearchItemType.md#all)
- [ArtistsAndLabels](SearchItemType.md#artistsandlabels)
- [Fans](SearchItemType.md#fans)
- [Tracks](SearchItemType.md#tracks)
## Enumeration Members
### Albums
**Albums** = ``"Albums"``
#### Defined in
lib/search/SearchAPI.ts:13
___
### All
**All** = ``"All"``
#### Defined in
lib/search/SearchAPI.ts:11
___
### ArtistsAndLabels
**ArtistsAndLabels** = ``"ArtistsAndLabels"``
#### Defined in
lib/search/SearchAPI.ts:12
___
### Fans
**Fans** = ``"Fans"``
#### Defined in
lib/search/SearchAPI.ts:15
___
### Tracks
**Tracks** = ``"Tracks"``
#### Defined in
lib/search/SearchAPI.ts:14

View File

@ -0,0 +1,240 @@
[bandcamp-fetch](../README.md) / Album
# Interface: Album
## Hierarchy
- [`MediaKind`](MediaKind.md)
**`Album`**
## Table of contents
### Properties
- [artist](Album.md#artist)
- [description](Album.md#description)
- [featuredTrack](Album.md#featuredtrack)
- [genre](Album.md#genre)
- [imageUrl](Album.md#imageurl)
- [keywords](Album.md#keywords)
- [label](Album.md#label)
- [location](Album.md#location)
- [name](Album.md#name)
- [numTracks](Album.md#numtracks)
- [publisher](Album.md#publisher)
- [raw](Album.md#raw)
- [releaseDate](Album.md#releasedate)
- [releases](Album.md#releases)
- [tracks](Album.md#tracks)
- [type](Album.md#type)
- [url](Album.md#url)
## Properties
### artist
`Optional` **artist**: `Omit`<[`Artist`](Artist.md), ``"type"``\>
#### Inherited from
[MediaKind](MediaKind.md).[artist](MediaKind.md#artist)
#### Defined in
lib/types/MediaKind.ts:10
___
### description
`Optional` **description**: `string`
#### Defined in
lib/types/Album.ts:8
___
### featuredTrack
`Optional` **featuredTrack**: `Omit`<[`Track`](Track.md), ``"type"``\>
#### Defined in
lib/types/Album.ts:11
___
### genre
`Optional` **genre**: `string`
#### Defined in
lib/types/Album.ts:9
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[imageUrl](MediaKind.md#imageurl)
#### Defined in
lib/types/MediaKind.ts:8
___
### keywords
`Optional` **keywords**: `string`[]
#### Defined in
lib/types/Album.ts:7
___
### label
`Optional` **label**: `Omit`<[`Label`](Label.md), ``"type"``\>
#### Inherited from
[MediaKind](MediaKind.md).[label](MediaKind.md#label)
#### Defined in
lib/types/MediaKind.ts:11
___
### location
`Optional` **location**: `string`
#### Defined in
lib/types/Album.ts:10
___
### name
**name**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[name](MediaKind.md#name)
#### Defined in
lib/types/MediaKind.ts:6
___
### numTracks
`Optional` **numTracks**: `number`
#### Defined in
lib/types/Album.ts:6
___
### publisher
`Optional` **publisher**: [`UserKind`](UserKind.md)
#### Inherited from
[MediaKind](MediaKind.md).[publisher](MediaKind.md#publisher)
#### Defined in
lib/types/MediaKind.ts:12
___
### raw
`Optional` **raw**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `basic` | `string` |
| `extra` | `string` |
#### Inherited from
[MediaKind](MediaKind.md).[raw](MediaKind.md#raw)
#### Defined in
lib/types/MediaKind.ts:13
___
### releaseDate
`Optional` **releaseDate**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[releaseDate](MediaKind.md#releasedate)
#### Defined in
lib/types/MediaKind.ts:9
___
### releases
`Optional` **releases**: [`AlbumRelease`](AlbumRelease.md)[]
#### Defined in
lib/types/Album.ts:12
___
### tracks
`Optional` **tracks**: `Omit`<[`Track`](Track.md), ``"type"``\>[]
#### Defined in
lib/types/Album.ts:13
___
### type
**type**: ``"album"``
#### Defined in
lib/types/Album.ts:5
___
### url
`Optional` **url**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[url](MediaKind.md#url)
#### Defined in
lib/types/MediaKind.ts:7

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / AlbumAPIGetInfoParams
# Interface: AlbumAPIGetInfoParams
## Table of contents
### Properties
- [albumImageFormat](AlbumAPIGetInfoParams.md#albumimageformat)
- [albumUrl](AlbumAPIGetInfoParams.md#albumurl)
- [artistImageFormat](AlbumAPIGetInfoParams.md#artistimageformat)
- [includeRawData](AlbumAPIGetInfoParams.md#includerawdata)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/album/AlbumAPI.ts:10
___
### albumUrl
**albumUrl**: `string`
#### Defined in
lib/album/AlbumAPI.ts:9
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/album/AlbumAPI.ts:11
___
### includeRawData
`Optional` **includeRawData**: `boolean`
#### Defined in
lib/album/AlbumAPI.ts:12

View File

@ -0,0 +1,41 @@
[bandcamp-fetch](../README.md) / AlbumHighlightsByTag
# Interface: AlbumHighlightsByTag
## Table of contents
### Properties
- [items](AlbumHighlightsByTag.md#items)
- [name](AlbumHighlightsByTag.md#name)
- [title](AlbumHighlightsByTag.md#title)
## Properties
### items
**items**: [`Album`](Album.md)[]
#### Defined in
lib/types/Tag.ts:23
___
### name
**name**: `string`
#### Defined in
lib/types/Tag.ts:21
___
### title
**title**: `string`
#### Defined in
lib/types/Tag.ts:22

View File

@ -0,0 +1,63 @@
[bandcamp-fetch](../README.md) / AlbumRelease
# Interface: AlbumRelease
## Table of contents
### Properties
- [description](AlbumRelease.md#description)
- [format](AlbumRelease.md#format)
- [imageUrl](AlbumRelease.md#imageurl)
- [name](AlbumRelease.md#name)
- [url](AlbumRelease.md#url)
## Properties
### description
`Optional` **description**: `string`
#### Defined in
lib/types/Album.ts:21
___
### format
**format**: `string`
#### Defined in
lib/types/Album.ts:18
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/Album.ts:20
___
### name
**name**: `string`
#### Defined in
lib/types/Album.ts:17
___
### url
`Optional` **url**: `string`
#### Defined in
lib/types/Album.ts:19

View File

@ -0,0 +1,152 @@
[bandcamp-fetch](../README.md) / Article
# Interface: Article
## Table of contents
### Properties
- [author](Article.md#author)
- [category](Article.md#category)
- [date](Article.md#date)
- [description](Article.md#description)
- [genre](Article.md#genre)
- [imageUrl](Article.md#imageurl)
- [mediaItems](Article.md#mediaitems)
- [raw](Article.md#raw)
- [sections](Article.md#sections)
- [title](Article.md#title)
- [url](Article.md#url)
## Properties
### author
**author**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `url` | `string` |
#### Defined in
lib/types/Article.ts:16
___
### category
**category**: [`ArticleCategory`](ArticleCategory.md)
#### Defined in
lib/types/Article.ts:10
___
### date
**date**: `string`
#### Defined in
lib/types/Article.ts:9
___
### description
**description**: `string`
#### Defined in
lib/types/Article.ts:6
___
### genre
`Optional` **genre**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `readMoreUrl?` | `string` |
| `url?` | `string` |
#### Defined in
lib/types/Article.ts:11
___
### imageUrl
**imageUrl**: `string`
#### Defined in
lib/types/Article.ts:8
___
### mediaItems
**mediaItems**: [`ArticleMediaItem`](../README.md#articlemediaitem)[]
#### Defined in
lib/types/Article.ts:20
___
### raw
`Optional` **raw**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `basic` | `any` |
| `body` | `string` |
| `mediaItems` | `any` |
#### Defined in
lib/types/Article.ts:22
___
### sections
**sections**: [`ArticleSection`](ArticleSection.md)[]
#### Defined in
lib/types/Article.ts:21
___
### title
**title**: `string`
#### Defined in
lib/types/Article.ts:5
___
### url
**url**: `string`
#### Defined in
lib/types/Article.ts:7

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / ArticleAPIGetArticleParams
# Interface: ArticleAPIGetArticleParams
## Table of contents
### Properties
- [albumImageFormat](ArticleAPIGetArticleParams.md#albumimageformat)
- [articleUrl](ArticleAPIGetArticleParams.md#articleurl)
- [artistImageFormat](ArticleAPIGetArticleParams.md#artistimageformat)
- [includeRawData](ArticleAPIGetArticleParams.md#includerawdata)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/article/ArticleAPI.ts:14
___
### articleUrl
**articleUrl**: `string`
#### Defined in
lib/article/ArticleAPI.ts:13
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/article/ArticleAPI.ts:15
___
### includeRawData
`Optional` **includeRawData**: `boolean`
#### Defined in
lib/article/ArticleAPI.ts:16

View File

@ -0,0 +1,41 @@
[bandcamp-fetch](../README.md) / ArticleAPIListParams
# Interface: ArticleAPIListParams
## Table of contents
### Properties
- [categoryUrl](ArticleAPIListParams.md#categoryurl)
- [imageFormat](ArticleAPIListParams.md#imageformat)
- [page](ArticleAPIListParams.md#page)
## Properties
### categoryUrl
`Optional` **categoryUrl**: `string`
#### Defined in
lib/article/ArticleAPI.ts:20
___
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/article/ArticleAPI.ts:21
___
### page
`Optional` **page**: `number`
#### Defined in
lib/article/ArticleAPI.ts:22

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / ArticleCategory
# Interface: ArticleCategory
## Table of contents
### Properties
- [name](ArticleCategory.md#name)
- [url](ArticleCategory.md#url)
## Properties
### name
**name**: `string`
#### Defined in
lib/types/Article.ts:30
___
### url
`Optional` **url**: `string`
#### Defined in
lib/types/Article.ts:31

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / ArticleCategorySection
# Interface: ArticleCategorySection
## Table of contents
### Properties
- [categories](ArticleCategorySection.md#categories)
- [name](ArticleCategorySection.md#name)
- [sections](ArticleCategorySection.md#sections)
- [title](ArticleCategorySection.md#title)
## Properties
### categories
`Optional` **categories**: [`ArticleCategory`](ArticleCategory.md)[]
#### Defined in
lib/types/Article.ts:38
___
### name
**name**: `string`
#### Defined in
lib/types/Article.ts:35
___
### sections
`Optional` **sections**: [`ArticleCategorySection`](ArticleCategorySection.md)[]
#### Defined in
lib/types/Article.ts:37
___
### title
`Optional` **title**: `string`
#### Defined in
lib/types/Article.ts:36

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / ArticleList
# Interface: ArticleList
## Table of contents
### Properties
- [articles](ArticleList.md#articles)
- [end](ArticleList.md#end)
- [start](ArticleList.md#start)
- [total](ArticleList.md#total)
## Properties
### articles
**articles**: [`ArticleListItem`](ArticleListItem.md)[]
#### Defined in
lib/types/Article.ts:57
___
### end
**end**: `number`
#### Defined in
lib/types/Article.ts:60
___
### start
**start**: `number`
#### Defined in
lib/types/Article.ts:59
___
### total
**total**: `number`
#### Defined in
lib/types/Article.ts:58

View File

@ -0,0 +1,63 @@
[bandcamp-fetch](../README.md) / ArticleListItem
# Interface: ArticleListItem
## Table of contents
### Properties
- [category](ArticleListItem.md#category)
- [date](ArticleListItem.md#date)
- [imageUrl](ArticleListItem.md#imageurl)
- [title](ArticleListItem.md#title)
- [url](ArticleListItem.md#url)
## Properties
### category
`Optional` **category**: [`ArticleCategory`](ArticleCategory.md)
#### Defined in
lib/types/Article.ts:67
___
### date
**date**: `string`
#### Defined in
lib/types/Article.ts:66
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/Article.ts:68
___
### title
**title**: `string`
#### Defined in
lib/types/Article.ts:65
___
### url
**url**: `string`
#### Defined in
lib/types/Article.ts:64

View File

@ -0,0 +1,59 @@
[bandcamp-fetch](../README.md) / ArticleSection
# Interface: ArticleSection
## Table of contents
### Properties
- [heading](ArticleSection.md#heading)
- [html](ArticleSection.md#html)
- [mediaItemRef](ArticleSection.md#mediaitemref)
- [text](ArticleSection.md#text)
## Properties
### heading
`Optional` **heading**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `html` | `string` |
| `text` | `string` |
#### Defined in
lib/types/Article.ts:42
___
### html
**html**: `string`
#### Defined in
lib/types/Article.ts:46
___
### mediaItemRef
`Optional` **mediaItemRef**: `string`
#### Defined in
lib/types/Article.ts:48
___
### text
**text**: `string`
#### Defined in
lib/types/Article.ts:47

View File

@ -0,0 +1,122 @@
[bandcamp-fetch](../README.md) / Artist
# Interface: Artist
## Hierarchy
- [`UserKind`](UserKind.md)
**`Artist`**
## Table of contents
### Properties
- [description](Artist.md#description)
- [genre](Artist.md#genre)
- [imageUrl](Artist.md#imageurl)
- [label](Artist.md#label)
- [location](Artist.md#location)
- [name](Artist.md#name)
- [type](Artist.md#type)
- [url](Artist.md#url)
## Properties
### description
`Optional` **description**: `string`
#### Inherited from
[UserKind](UserKind.md).[description](UserKind.md#description)
#### Defined in
lib/types/UserKind.ts:3
___
### genre
`Optional` **genre**: `string`
#### Defined in
lib/types/Artist.ts:7
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[UserKind](UserKind.md).[imageUrl](UserKind.md#imageurl)
#### Defined in
lib/types/UserKind.ts:5
___
### label
`Optional` **label**: [`Label`](Label.md)
#### Defined in
lib/types/Artist.ts:6
___
### location
`Optional` **location**: `string`
#### Inherited from
[UserKind](UserKind.md).[location](UserKind.md#location)
#### Defined in
lib/types/UserKind.ts:6
___
### name
**name**: `string`
#### Inherited from
[UserKind](UserKind.md).[name](UserKind.md#name)
#### Defined in
lib/types/UserKind.ts:2
___
### type
**type**: ``"artist"``
#### Defined in
lib/types/Artist.ts:5
___
### url
`Optional` **url**: `string`
#### Inherited from
[UserKind](UserKind.md).[url](UserKind.md#url)
#### Defined in
lib/types/UserKind.ts:4

View File

@ -0,0 +1,66 @@
[bandcamp-fetch](../README.md) / AutoCompleteTag
# Interface: AutoCompleteTag
## Hierarchy
- [`AutocompleteItem`](AutocompleteItem.md)
**`AutoCompleteTag`**
## Table of contents
### Properties
- [count](AutoCompleteTag.md#count)
- [name](AutoCompleteTag.md#name)
- [type](AutoCompleteTag.md#type)
- [value](AutoCompleteTag.md#value)
## Properties
### count
**count**: `number`
#### Defined in
lib/types/Autocomplete.ts:8
___
### name
**name**: `string`
#### Inherited from
[AutocompleteItem](AutocompleteItem.md).[name](AutocompleteItem.md#name)
#### Defined in
lib/types/Autocomplete.ts:3
___
### type
**type**: ``"tag"``
#### Overrides
[AutocompleteItem](AutocompleteItem.md).[type](AutocompleteItem.md#type)
#### Defined in
lib/types/Autocomplete.ts:7
___
### value
**value**: ``"string"``
#### Defined in
lib/types/Autocomplete.ts:9

View File

@ -0,0 +1,41 @@
[bandcamp-fetch](../README.md) / AutocompleteAPIGetSuggestionsParams
# Interface: AutocompleteAPIGetSuggestionsParams
## Table of contents
### Properties
- [itemType](AutocompleteAPIGetSuggestionsParams.md#itemtype)
- [limit](AutocompleteAPIGetSuggestionsParams.md#limit)
- [query](AutocompleteAPIGetSuggestionsParams.md#query)
## Properties
### itemType
**itemType**: [`AutocompleteItemType`](../enums/AutocompleteItemType.md)
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:14
___
### limit
`Optional` **limit**: `number`
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:15
___
### query
**query**: `string`
#### Defined in
lib/autocomplete/AutocompleteAPI.ts:13

View File

@ -0,0 +1,38 @@
[bandcamp-fetch](../README.md) / AutocompleteItem
# Interface: AutocompleteItem
## Hierarchy
- **`AutocompleteItem`**
↳ [`AutoCompleteTag`](AutoCompleteTag.md)
↳ [`AutocompleteLocation`](AutocompleteLocation.md)
## Table of contents
### Properties
- [name](AutocompleteItem.md#name)
- [type](AutocompleteItem.md#type)
## Properties
### name
**name**: `string`
#### Defined in
lib/types/Autocomplete.ts:3
___
### type
**type**: ``"location"`` \| ``"tag"``
#### Defined in
lib/types/Autocomplete.ts:2

View File

@ -0,0 +1,66 @@
[bandcamp-fetch](../README.md) / AutocompleteLocation
# Interface: AutocompleteLocation
## Hierarchy
- [`AutocompleteItem`](AutocompleteItem.md)
**`AutocompleteLocation`**
## Table of contents
### Properties
- [fullName](AutocompleteLocation.md#fullname)
- [name](AutocompleteLocation.md#name)
- [type](AutocompleteLocation.md#type)
- [value](AutocompleteLocation.md#value)
## Properties
### fullName
**fullName**: `string`
#### Defined in
lib/types/Autocomplete.ts:14
___
### name
**name**: `string`
#### Inherited from
[AutocompleteItem](AutocompleteItem.md).[name](AutocompleteItem.md#name)
#### Defined in
lib/types/Autocomplete.ts:3
___
### type
**type**: ``"location"``
#### Overrides
[AutocompleteItem](AutocompleteItem.md).[type](AutocompleteItem.md#type)
#### Defined in
lib/types/Autocomplete.ts:13
___
### value
**value**: `number`
#### Defined in
lib/types/Autocomplete.ts:15

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / BandAPIGetDiscographyParams
# Interface: BandAPIGetDiscographyParams
## Table of contents
### Properties
- [bandUrl](BandAPIGetDiscographyParams.md#bandurl)
- [imageFormat](BandAPIGetDiscographyParams.md#imageformat)
## Properties
### bandUrl
**bandUrl**: `string`
#### Defined in
lib/band/BandAPI.ts:15
___
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/band/BandAPI.ts:16

View File

@ -0,0 +1,41 @@
[bandcamp-fetch](../README.md) / BandAPIGetInfoParams
# Interface: BandAPIGetInfoParams
## Table of contents
### Properties
- [bandUrl](BandAPIGetInfoParams.md#bandurl)
- [imageFormat](BandAPIGetInfoParams.md#imageformat)
- [labelId](BandAPIGetInfoParams.md#labelid)
## Properties
### bandUrl
**bandUrl**: `string`
#### Defined in
lib/band/BandAPI.ts:20
___
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/band/BandAPI.ts:21
___
### labelId
`Optional` **labelId**: `number`
#### Defined in
lib/band/BandAPI.ts:22

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / BandAPIGetLabelArtistsParams
# Interface: BandAPIGetLabelArtistsParams
## Table of contents
### Properties
- [imageFormat](BandAPIGetLabelArtistsParams.md#imageformat)
- [labelUrl](BandAPIGetLabelArtistsParams.md#labelurl)
## Properties
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/band/BandAPI.ts:27
___
### labelUrl
**labelUrl**: `string`
#### Defined in
lib/band/BandAPI.ts:26

View File

@ -0,0 +1,91 @@
[bandcamp-fetch](../README.md) / DiscoverOptions
# Interface: DiscoverOptions
Options and list of values for each option that can be used to formulate [DiscoverParams](DiscoverParams.md).
**`See`**
DiscoveryAPI.getAvailableOptions
## Table of contents
### Properties
- [artistRecommendationTypes](DiscoverOptions.md#artistrecommendationtypes)
- [formats](DiscoverOptions.md#formats)
- [genres](DiscoverOptions.md#genres)
- [locations](DiscoverOptions.md#locations)
- [sortBys](DiscoverOptions.md#sortbys)
- [subgenres](DiscoverOptions.md#subgenres)
- [times](DiscoverOptions.md#times)
## Properties
### artistRecommendationTypes
**artistRecommendationTypes**: [`NameValuePair`](NameValuePair.md)<`string`\>[]
#### Defined in
lib/types/Discovery.ts:17
___
### formats
**formats**: [`NameValuePair`](NameValuePair.md)<`string`\>[]
#### Defined in
lib/types/Discovery.ts:16
___
### genres
**genres**: [`NameValuePair`](NameValuePair.md)<`string`\>[]
#### Defined in
lib/types/Discovery.ts:11
___
### locations
**locations**: [`NameValuePair`](NameValuePair.md)<`string`\>[]
#### Defined in
lib/types/Discovery.ts:15
___
### sortBys
**sortBys**: [`NameValuePair`](NameValuePair.md)<`string`\>[]
#### Defined in
lib/types/Discovery.ts:12
___
### subgenres
**subgenres**: `Record`<`string`, [`NameValuePair`](NameValuePair.md)<`string`\>[]\>
#### Defined in
lib/types/Discovery.ts:14
___
### times
**times**: [`NameValuePair`](NameValuePair.md)<`number`\> & { `title`: `string` }[]
#### Defined in
lib/types/Discovery.ts:13

View File

@ -0,0 +1,128 @@
[bandcamp-fetch](../README.md) / DiscoverParams
# Interface: DiscoverParams
Params used in discovery requests.
**`See`**
DiscoveryAPI.discover
## Table of contents
### Properties
- [albumImageFormat](DiscoverParams.md#albumimageformat)
- [artistImageFormat](DiscoverParams.md#artistimageformat)
- [artistRecommendationType](DiscoverParams.md#artistrecommendationtype)
- [format](DiscoverParams.md#format)
- [genre](DiscoverParams.md#genre)
- [location](DiscoverParams.md#location)
- [page](DiscoverParams.md#page)
- [sortBy](DiscoverParams.md#sortby)
- [subgenre](DiscoverParams.md#subgenre)
- [time](DiscoverParams.md#time)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
Value indicating the image format to adopt when constructing image URLs of discovered albums.
#### Defined in
lib/types/Discovery.ts:37
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
Value indicating the image format to adopt when constructing image URLs of album artists.
#### Defined in
lib/types/Discovery.ts:41
___
### artistRecommendationType
`Optional` **artistRecommendationType**: `string`
#### Defined in
lib/types/Discovery.ts:33
___
### format
`Optional` **format**: `string`
#### Defined in
lib/types/Discovery.ts:32
___
### genre
`Optional` **genre**: `string`
#### Defined in
lib/types/Discovery.ts:26
___
### location
`Optional` **location**: `string`
#### Defined in
lib/types/Discovery.ts:31
___
### page
`Optional` **page**: `number`
#### Defined in
lib/types/Discovery.ts:28
___
### sortBy
`Optional` **sortBy**: `string`
#### Defined in
lib/types/Discovery.ts:27
___
### subgenre
`Optional` **subgenre**: `string`
#### Defined in
lib/types/Discovery.ts:30
___
### time
`Optional` **time**: `number`
#### Defined in
lib/types/Discovery.ts:29

View File

@ -0,0 +1,49 @@
[bandcamp-fetch](../README.md) / DiscoverResult
# Interface: DiscoverResult
Results returned by [discover](../classes/DiscoveryAPI.md#discover).
## Table of contents
### Properties
- [items](DiscoverResult.md#items)
- [params](DiscoverResult.md#params)
- [total](DiscoverResult.md#total)
## Properties
### items
**items**: [`Album`](Album.md)[]
List of discovered albums.
#### Defined in
lib/types/Discovery.ts:51
___
### params
**params**: [`DiscoverParams`](DiscoverParams.md)
Sanitized params used in the discovery request.
#### Defined in
lib/types/Discovery.ts:59
___
### total
**total**: `number`
Total number of albums discovered.
#### Defined in
lib/types/Discovery.ts:55

166
docs/api/interfaces/Fan.md Normal file
View File

@ -0,0 +1,166 @@
[bandcamp-fetch](../README.md) / Fan
# Interface: Fan
## Hierarchy
- [`UserKind`](UserKind.md)
**`Fan`**
## Table of contents
### Properties
- [collectionItemCount](Fan.md#collectionitemcount)
- [description](Fan.md#description)
- [followingArtistsAndLabelsCount](Fan.md#followingartistsandlabelscount)
- [followingGenresCount](Fan.md#followinggenrescount)
- [imageUrl](Fan.md#imageurl)
- [location](Fan.md#location)
- [name](Fan.md#name)
- [type](Fan.md#type)
- [url](Fan.md#url)
- [username](Fan.md#username)
- [websiteUrl](Fan.md#websiteurl)
- [wishlistItemCount](Fan.md#wishlistitemcount)
## Properties
### collectionItemCount
**collectionItemCount**: `number`
#### Defined in
lib/types/Fan.ts:10
___
### description
`Optional` **description**: `string`
#### Inherited from
[UserKind](UserKind.md).[description](UserKind.md#description)
#### Defined in
lib/types/UserKind.ts:3
___
### followingArtistsAndLabelsCount
**followingArtistsAndLabelsCount**: `number`
#### Defined in
lib/types/Fan.ts:8
___
### followingGenresCount
**followingGenresCount**: `number`
#### Defined in
lib/types/Fan.ts:7
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[UserKind](UserKind.md).[imageUrl](UserKind.md#imageurl)
#### Defined in
lib/types/UserKind.ts:5
___
### location
`Optional` **location**: `string`
#### Inherited from
[UserKind](UserKind.md).[location](UserKind.md#location)
#### Defined in
lib/types/UserKind.ts:6
___
### name
**name**: `string`
#### Inherited from
[UserKind](UserKind.md).[name](UserKind.md#name)
#### Defined in
lib/types/UserKind.ts:2
___
### type
**type**: ``"fan"``
#### Defined in
lib/types/Fan.ts:4
___
### url
`Optional` **url**: `string`
#### Inherited from
[UserKind](UserKind.md).[url](UserKind.md#url)
#### Defined in
lib/types/UserKind.ts:4
___
### username
**username**: `string`
#### Defined in
lib/types/Fan.ts:5
___
### websiteUrl
**websiteUrl**: `string`
#### Defined in
lib/types/Fan.ts:6
___
### wishlistItemCount
**wishlistItemCount**: `number`
#### Defined in
lib/types/Fan.ts:9

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / FanAPIGetInfoParams
# Interface: FanAPIGetInfoParams
## Table of contents
### Properties
- [imageFormat](FanAPIGetInfoParams.md#imageformat)
- [username](FanAPIGetInfoParams.md#username)
## Properties
### imageFormat
**imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/fan/FanAPI.ts:21
___
### username
**username**: `string`
#### Defined in
lib/fan/FanAPI.ts:20

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / FanAPIGetItemsParams
# Interface: FanAPIGetItemsParams
## Table of contents
### Properties
- [imageFormat](FanAPIGetItemsParams.md#imageformat)
- [target](FanAPIGetItemsParams.md#target)
## Properties
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/fan/FanAPI.ts:26
___
### target
**target**: `string` \| [`FanItemsContinuation`](FanItemsContinuation.md)
#### Defined in
lib/fan/FanAPI.ts:25

View File

@ -0,0 +1,36 @@
[bandcamp-fetch](../README.md) / FanContinuationItemsResult
# Interface: FanContinuationItemsResult<T\>
## Type parameters
| Name |
| :------ |
| `T` |
## Table of contents
### Properties
- [continuation](FanContinuationItemsResult.md#continuation)
- [items](FanContinuationItemsResult.md#items)
## Properties
### continuation
**continuation**: ``null`` \| [`FanItemsContinuation`](FanItemsContinuation.md)
#### Defined in
lib/fan/FanItemsBaseParser.ts:22
___
### items
**items**: `T`[]
#### Defined in
lib/fan/FanItemsBaseParser.ts:21

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / FanItemsContinuation
# Interface: FanItemsContinuation
## Table of contents
### Properties
- [fanId](FanItemsContinuation.md#fanid)
- [token](FanItemsContinuation.md#token)
## Properties
### fanId
**fanId**: `number`
#### Defined in
lib/types/Fan.ts:14
___
### token
**token**: `string`
#### Defined in
lib/types/Fan.ts:15

View File

@ -0,0 +1,47 @@
[bandcamp-fetch](../README.md) / FanPageItemsResult
# Interface: FanPageItemsResult<T\>
## Type parameters
| Name |
| :------ |
| `T` |
## Table of contents
### Properties
- [continuation](FanPageItemsResult.md#continuation)
- [items](FanPageItemsResult.md#items)
- [total](FanPageItemsResult.md#total)
## Properties
### continuation
**continuation**: ``null`` \| [`FanItemsContinuation`](FanItemsContinuation.md)
#### Defined in
lib/fan/FanItemsBaseParser.ts:17
___
### items
**items**: `T`[]
#### Defined in
lib/fan/FanItemsBaseParser.ts:15
___
### total
**total**: `number`
#### Defined in
lib/fan/FanItemsBaseParser.ts:16

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / ImageConstants
# Interface: ImageConstants
## Table of contents
### Properties
- [baseUrl](ImageConstants.md#baseurl)
- [formats](ImageConstants.md#formats)
## Properties
### baseUrl
**baseUrl**: `string`
#### Defined in
lib/types/Image.ts:10
___
### formats
**formats**: [`ImageFormat`](ImageFormat.md)[]
#### Defined in
lib/types/Image.ts:11

View File

@ -0,0 +1,63 @@
[bandcamp-fetch](../README.md) / ImageFormat
# Interface: ImageFormat
## Table of contents
### Properties
- [fileFormat](ImageFormat.md#fileformat)
- [height](ImageFormat.md#height)
- [id](ImageFormat.md#id)
- [name](ImageFormat.md#name)
- [width](ImageFormat.md#width)
## Properties
### fileFormat
**fileFormat**: `string`
#### Defined in
lib/types/Image.ts:6
___
### height
**height**: `number`
#### Defined in
lib/types/Image.ts:5
___
### id
**id**: `number`
#### Defined in
lib/types/Image.ts:2
___
### name
**name**: `string`
#### Defined in
lib/types/Image.ts:3
___
### width
**width**: `number`
#### Defined in
lib/types/Image.ts:4

View File

@ -0,0 +1,111 @@
[bandcamp-fetch](../README.md) / Label
# Interface: Label
## Hierarchy
- [`UserKind`](UserKind.md)
**`Label`**
## Table of contents
### Properties
- [description](Label.md#description)
- [imageUrl](Label.md#imageurl)
- [labelId](Label.md#labelid)
- [location](Label.md#location)
- [name](Label.md#name)
- [type](Label.md#type)
- [url](Label.md#url)
## Properties
### description
`Optional` **description**: `string`
#### Inherited from
[UserKind](UserKind.md).[description](UserKind.md#description)
#### Defined in
lib/types/UserKind.ts:3
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[UserKind](UserKind.md).[imageUrl](UserKind.md#imageurl)
#### Defined in
lib/types/UserKind.ts:5
___
### labelId
`Optional` **labelId**: `number`
#### Defined in
lib/types/Label.ts:6
___
### location
`Optional` **location**: `string`
#### Inherited from
[UserKind](UserKind.md).[location](UserKind.md#location)
#### Defined in
lib/types/UserKind.ts:6
___
### name
**name**: `string`
#### Inherited from
[UserKind](UserKind.md).[name](UserKind.md#name)
#### Defined in
lib/types/UserKind.ts:2
___
### type
**type**: ``"label"``
#### Defined in
lib/types/Label.ts:5
___
### url
`Optional` **url**: `string`
#### Inherited from
[UserKind](UserKind.md).[url](UserKind.md#url)
#### Defined in
lib/types/UserKind.ts:4

View File

@ -0,0 +1,111 @@
[bandcamp-fetch](../README.md) / MediaKind
# Interface: MediaKind
## Hierarchy
- **`MediaKind`**
↳ [`Album`](Album.md)
↳ [`Track`](Track.md)
## Table of contents
### Properties
- [artist](MediaKind.md#artist)
- [imageUrl](MediaKind.md#imageurl)
- [label](MediaKind.md#label)
- [name](MediaKind.md#name)
- [publisher](MediaKind.md#publisher)
- [raw](MediaKind.md#raw)
- [releaseDate](MediaKind.md#releasedate)
- [url](MediaKind.md#url)
## Properties
### artist
`Optional` **artist**: `Omit`<[`Artist`](Artist.md), ``"type"``\>
#### Defined in
lib/types/MediaKind.ts:10
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/MediaKind.ts:8
___
### label
`Optional` **label**: `Omit`<[`Label`](Label.md), ``"type"``\>
#### Defined in
lib/types/MediaKind.ts:11
___
### name
**name**: `string`
#### Defined in
lib/types/MediaKind.ts:6
___
### publisher
`Optional` **publisher**: [`UserKind`](UserKind.md)
#### Defined in
lib/types/MediaKind.ts:12
___
### raw
`Optional` **raw**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `basic` | `string` |
| `extra` | `string` |
#### Defined in
lib/types/MediaKind.ts:13
___
### releaseDate
`Optional` **releaseDate**: `string`
#### Defined in
lib/types/MediaKind.ts:9
___
### url
`Optional` **url**: `string`
#### Defined in
lib/types/MediaKind.ts:7

View File

@ -0,0 +1,42 @@
[bandcamp-fetch](../README.md) / NameValuePair
# Interface: NameValuePair<T\>
## Type parameters
| Name |
| :------ |
| `T` |
## Hierarchy
- **`NameValuePair`**
↳ [`FilterOption`](ReleasesByTag.FilterOption.md)
## Table of contents
### Properties
- [name](NameValuePair.md#name)
- [value](NameValuePair.md#value)
## Properties
### name
**name**: `string`
#### Defined in
lib/utils/NameValuePair.ts:2
___
### value
**value**: `T`
#### Defined in
lib/utils/NameValuePair.ts:3

View File

@ -0,0 +1,41 @@
[bandcamp-fetch](../README.md) / ReleasesByTag
# Interface: ReleasesByTag
## Table of contents
### Properties
- [filters](ReleasesByTag-1.md#filters)
- [hasMore](ReleasesByTag-1.md#hasmore)
- [items](ReleasesByTag-1.md#items)
## Properties
### filters
**filters**: `Record`<`string`, `string` \| `number` \| (`string` \| `number`)[]\>
#### Defined in
lib/types/Tag.ts:47
___
### hasMore
**hasMore**: `boolean`
#### Defined in
lib/types/Tag.ts:46
___
### items
**items**: ([`Track`](Track.md) \| [`Album`](Album.md))[]
#### Defined in
lib/types/Tag.ts:45

View File

@ -0,0 +1,32 @@
[bandcamp-fetch](../README.md) / [ReleasesByTag](../modules/ReleasesByTag.md) / Filter
# Interface: Filter
[ReleasesByTag](../modules/ReleasesByTag.md).Filter
## Table of contents
### Properties
- [name](ReleasesByTag.Filter.md#name)
- [options](ReleasesByTag.Filter.md#options)
## Properties
### name
**name**: `string`
#### Defined in
lib/types/Tag.ts:39
___
### options
**options**: [`FilterOption`](ReleasesByTag.FilterOption.md)[]
#### Defined in
lib/types/Tag.ts:40

View File

@ -0,0 +1,68 @@
[bandcamp-fetch](../README.md) / [ReleasesByTag](../modules/ReleasesByTag.md) / FilterOption
# Interface: FilterOption
[ReleasesByTag](../modules/ReleasesByTag.md).FilterOption
## Hierarchy
- [`NameValuePair`](NameValuePair.md)<`string` \| `number`\>
**`FilterOption`**
## Table of contents
### Properties
- [default](ReleasesByTag.FilterOption.md#default)
- [name](ReleasesByTag.FilterOption.md#name)
- [selected](ReleasesByTag.FilterOption.md#selected)
- [value](ReleasesByTag.FilterOption.md#value)
## Properties
### default
`Optional` **default**: `boolean`
#### Defined in
lib/types/Tag.ts:34
___
### name
**name**: `string`
#### Inherited from
[NameValuePair](NameValuePair.md).[name](NameValuePair.md#name)
#### Defined in
lib/utils/NameValuePair.ts:2
___
### selected
`Optional` **selected**: `boolean`
#### Defined in
lib/types/Tag.ts:35
___
### value
**value**: `string` \| `number`
#### Inherited from
[NameValuePair](NameValuePair.md).[value](NameValuePair.md#value)
#### Defined in
lib/utils/NameValuePair.ts:3

View File

@ -0,0 +1,9 @@
[bandcamp-fetch](../README.md) / [ReleasesByTag](../modules/ReleasesByTag.md) / FilterValueNames
# Interface: FilterValueNames
[ReleasesByTag](../modules/ReleasesByTag.md).FilterValueNames
## Indexable
▪ [k: `string`]: `Record`<`string`, `string` \| `number`\>

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / SearchAPISearchParams
# Interface: SearchAPISearchParams
## Table of contents
### Properties
- [albumImageFormat](SearchAPISearchParams.md#albumimageformat)
- [artistImageFormat](SearchAPISearchParams.md#artistimageformat)
- [page](SearchAPISearchParams.md#page)
- [query](SearchAPISearchParams.md#query)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/search/SearchAPI.ts:21
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/search/SearchAPI.ts:22
___
### page
`Optional` **page**: `number`
#### Defined in
lib/search/SearchAPI.ts:20
___
### query
**query**: `string`
#### Defined in
lib/search/SearchAPI.ts:19

View File

@ -0,0 +1,129 @@
[bandcamp-fetch](../README.md) / SearchResultAlbum
# Interface: SearchResultAlbum
## Hierarchy
- [`SearchResultItem`](SearchResultItem.md)
**`SearchResultAlbum`**
## Table of contents
### Properties
- [artist](SearchResultAlbum.md#artist)
- [duration](SearchResultAlbum.md#duration)
- [imageUrl](SearchResultAlbum.md#imageurl)
- [name](SearchResultAlbum.md#name)
- [numTracks](SearchResultAlbum.md#numtracks)
- [releaseDate](SearchResultAlbum.md#releasedate)
- [tags](SearchResultAlbum.md#tags)
- [type](SearchResultAlbum.md#type)
- [url](SearchResultAlbum.md#url)
## Properties
### artist
`Optional` **artist**: `string`
#### Defined in
lib/types/Search.ts:27
___
### duration
`Optional` **duration**: `number`
#### Defined in
lib/types/Search.ts:29
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[imageUrl](SearchResultItem.md#imageurl)
#### Defined in
lib/types/Search.ts:10
___
### name
**name**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[name](SearchResultItem.md#name)
#### Defined in
lib/types/Search.ts:8
___
### numTracks
`Optional` **numTracks**: `number`
#### Defined in
lib/types/Search.ts:28
___
### releaseDate
`Optional` **releaseDate**: `string`
#### Defined in
lib/types/Search.ts:30
___
### tags
`Optional` **tags**: `string`
#### Defined in
lib/types/Search.ts:31
___
### type
**type**: ``"album"``
#### Overrides
[SearchResultItem](SearchResultItem.md).[type](SearchResultItem.md#type)
#### Defined in
lib/types/Search.ts:26
___
### url
**url**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[url](SearchResultItem.md#url)
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,107 @@
[bandcamp-fetch](../README.md) / SearchResultArtist
# Interface: SearchResultArtist
## Hierarchy
- [`SearchResultItem`](SearchResultItem.md)
**`SearchResultArtist`**
## Table of contents
### Properties
- [genre](SearchResultArtist.md#genre)
- [imageUrl](SearchResultArtist.md#imageurl)
- [location](SearchResultArtist.md#location)
- [name](SearchResultArtist.md#name)
- [tags](SearchResultArtist.md#tags)
- [type](SearchResultArtist.md#type)
- [url](SearchResultArtist.md#url)
## Properties
### genre
`Optional` **genre**: `string`
#### Defined in
lib/types/Search.ts:16
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[imageUrl](SearchResultItem.md#imageurl)
#### Defined in
lib/types/Search.ts:10
___
### location
`Optional` **location**: `string`
#### Defined in
lib/types/Search.ts:15
___
### name
**name**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[name](SearchResultItem.md#name)
#### Defined in
lib/types/Search.ts:8
___
### tags
`Optional` **tags**: `string`
#### Defined in
lib/types/Search.ts:17
___
### type
**type**: ``"artist"``
#### Overrides
[SearchResultItem](SearchResultItem.md).[type](SearchResultItem.md#type)
#### Defined in
lib/types/Search.ts:14
___
### url
**url**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[url](SearchResultItem.md#url)
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,85 @@
[bandcamp-fetch](../README.md) / SearchResultFan
# Interface: SearchResultFan
## Hierarchy
- [`SearchResultItem`](SearchResultItem.md)
**`SearchResultFan`**
## Table of contents
### Properties
- [genre](SearchResultFan.md#genre)
- [imageUrl](SearchResultFan.md#imageurl)
- [name](SearchResultFan.md#name)
- [type](SearchResultFan.md#type)
- [url](SearchResultFan.md#url)
## Properties
### genre
`Optional` **genre**: `string`
#### Defined in
lib/types/Search.ts:44
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[imageUrl](SearchResultItem.md#imageurl)
#### Defined in
lib/types/Search.ts:10
___
### name
**name**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[name](SearchResultItem.md#name)
#### Defined in
lib/types/Search.ts:8
___
### type
**type**: ``"fan"``
#### Overrides
[SearchResultItem](SearchResultItem.md).[type](SearchResultItem.md#type)
#### Defined in
lib/types/Search.ts:43
___
### url
**url**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[url](SearchResultItem.md#url)
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,66 @@
[bandcamp-fetch](../README.md) / SearchResultItem
# Interface: SearchResultItem
## Hierarchy
- **`SearchResultItem`**
↳ [`SearchResultArtist`](SearchResultArtist.md)
↳ [`SearchResultLabel`](SearchResultLabel.md)
↳ [`SearchResultAlbum`](SearchResultAlbum.md)
↳ [`SearchResultTrack`](SearchResultTrack.md)
↳ [`SearchResultFan`](SearchResultFan.md)
## Table of contents
### Properties
- [imageUrl](SearchResultItem.md#imageurl)
- [name](SearchResultItem.md#name)
- [type](SearchResultItem.md#type)
- [url](SearchResultItem.md#url)
## Properties
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/Search.ts:10
___
### name
**name**: `string`
#### Defined in
lib/types/Search.ts:8
___
### type
**type**: ``"track"`` \| ``"label"`` \| ``"artist"`` \| ``"album"`` \| ``"fan"``
#### Defined in
lib/types/Search.ts:7
___
### url
**url**: `string`
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,85 @@
[bandcamp-fetch](../README.md) / SearchResultLabel
# Interface: SearchResultLabel
## Hierarchy
- [`SearchResultItem`](SearchResultItem.md)
**`SearchResultLabel`**
## Table of contents
### Properties
- [imageUrl](SearchResultLabel.md#imageurl)
- [location](SearchResultLabel.md#location)
- [name](SearchResultLabel.md#name)
- [type](SearchResultLabel.md#type)
- [url](SearchResultLabel.md#url)
## Properties
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[imageUrl](SearchResultItem.md#imageurl)
#### Defined in
lib/types/Search.ts:10
___
### location
`Optional` **location**: `string`
#### Defined in
lib/types/Search.ts:22
___
### name
**name**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[name](SearchResultItem.md#name)
#### Defined in
lib/types/Search.ts:8
___
### type
**type**: ``"label"``
#### Overrides
[SearchResultItem](SearchResultItem.md).[type](SearchResultItem.md#type)
#### Defined in
lib/types/Search.ts:21
___
### url
**url**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[url](SearchResultItem.md#url)
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,118 @@
[bandcamp-fetch](../README.md) / SearchResultTrack
# Interface: SearchResultTrack
## Hierarchy
- [`SearchResultItem`](SearchResultItem.md)
**`SearchResultTrack`**
## Table of contents
### Properties
- [album](SearchResultTrack.md#album)
- [artist](SearchResultTrack.md#artist)
- [imageUrl](SearchResultTrack.md#imageurl)
- [name](SearchResultTrack.md#name)
- [releaseDate](SearchResultTrack.md#releasedate)
- [tags](SearchResultTrack.md#tags)
- [type](SearchResultTrack.md#type)
- [url](SearchResultTrack.md#url)
## Properties
### album
`Optional` **album**: `string`
#### Defined in
lib/types/Search.ts:37
___
### artist
`Optional` **artist**: `string`
#### Defined in
lib/types/Search.ts:36
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[imageUrl](SearchResultItem.md#imageurl)
#### Defined in
lib/types/Search.ts:10
___
### name
**name**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[name](SearchResultItem.md#name)
#### Defined in
lib/types/Search.ts:8
___
### releaseDate
`Optional` **releaseDate**: `string`
#### Defined in
lib/types/Search.ts:38
___
### tags
`Optional` **tags**: `string`
#### Defined in
lib/types/Search.ts:39
___
### type
**type**: ``"track"``
#### Overrides
[SearchResultItem](SearchResultItem.md).[type](SearchResultItem.md#type)
#### Defined in
lib/types/Search.ts:35
___
### url
**url**: `string`
#### Inherited from
[SearchResultItem](SearchResultItem.md).[url](SearchResultItem.md#url)
#### Defined in
lib/types/Search.ts:9

View File

@ -0,0 +1,36 @@
[bandcamp-fetch](../README.md) / SearchResults
# Interface: SearchResults<T\>
## Type parameters
| Name | Type |
| :------ | :------ |
| `T` | extends [`SearchResultItem`](SearchResultItem.md) |
## Table of contents
### Properties
- [items](SearchResults.md#items)
- [totalPages](SearchResults.md#totalpages)
## Properties
### items
**items**: `T`[]
#### Defined in
lib/types/Search.ts:2
___
### totalPages
**totalPages**: `number`
#### Defined in
lib/types/Search.ts:3

158
docs/api/interfaces/Show.md Normal file
View File

@ -0,0 +1,158 @@
[bandcamp-fetch](../README.md) / Show
# Interface: Show
## Table of contents
### Properties
- [description](Show.md#description)
- [duration](Show.md#duration)
- [imageCaption](Show.md#imagecaption)
- [imageUrl](Show.md#imageurl)
- [name](Show.md#name)
- [publishedDate](Show.md#publisheddate)
- [screenImageUrl](Show.md#screenimageurl)
- [shortDescription](Show.md#shortdescription)
- [streamUrl](Show.md#streamurl)
- [subtitle](Show.md#subtitle)
- [tracks](Show.md#tracks)
- [type](Show.md#type)
- [url](Show.md#url)
## Properties
### description
**description**: `string`
#### Defined in
lib/types/Show.ts:8
___
### duration
`Optional` **duration**: `number`
#### Defined in
lib/types/Show.ts:10
___
### imageCaption
**imageCaption**: `string`
#### Defined in
lib/types/Show.ts:16
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/Show.ts:18
___
### name
**name**: `string`
#### Defined in
lib/types/Show.ts:5
___
### publishedDate
**publishedDate**: `string`
#### Defined in
lib/types/Show.ts:7
___
### screenImageUrl
**screenImageUrl**: `string`
#### Defined in
lib/types/Show.ts:19
___
### shortDescription
`Optional` **shortDescription**: `string`
#### Defined in
lib/types/Show.ts:9
___
### streamUrl
`Optional` **streamUrl**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `mp3-128?` | `string` |
| `opus-lo?` | `string` |
#### Defined in
lib/types/Show.ts:11
___
### subtitle
**subtitle**: `string`
#### Defined in
lib/types/Show.ts:17
___
### tracks
`Optional` **tracks**: `Omit`<[`Track`](Track.md), ``"type"``\>[]
#### Defined in
lib/types/Show.ts:15
___
### type
**type**: ``"show"``
#### Defined in
lib/types/Show.ts:4
___
### url
**url**: `string`
#### Defined in
lib/types/Show.ts:6

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / ShowAPIGetShowParams
# Interface: ShowAPIGetShowParams
## Table of contents
### Properties
- [albumImageFormat](ShowAPIGetShowParams.md#albumimageformat)
- [artistImageFormat](ShowAPIGetShowParams.md#artistimageformat)
- [showImageFormat](ShowAPIGetShowParams.md#showimageformat)
- [showUrl](ShowAPIGetShowParams.md#showurl)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/show/ShowAPI.ts:12
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/show/ShowAPI.ts:13
___
### showImageFormat
`Optional` **showImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/show/ShowAPI.ts:14
___
### showUrl
**showUrl**: `string`
#### Defined in
lib/show/ShowAPI.ts:11

View File

@ -0,0 +1,19 @@
[bandcamp-fetch](../README.md) / ShowAPIListParams
# Interface: ShowAPIListParams
## Table of contents
### Properties
- [imageFormat](ShowAPIListParams.md#imageformat)
## Properties
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/show/ShowAPI.ts:18

View File

@ -0,0 +1,85 @@
[bandcamp-fetch](../README.md) / Tag
# Interface: Tag
## Table of contents
### Properties
- [imageUrls](Tag.md#imageurls)
- [isLocation](Tag.md#islocation)
- [name](Tag.md#name)
- [related](Tag.md#related)
- [type](Tag.md#type)
- [url](Tag.md#url)
- [value](Tag.md#value)
## Properties
### imageUrls
`Optional` **imageUrls**: `string`[]
#### Defined in
lib/types/Tag.ts:12
___
### isLocation
`Optional` **isLocation**: `boolean`
#### Defined in
lib/types/Tag.ts:11
___
### name
**name**: `string`
#### Defined in
lib/types/Tag.ts:7
___
### related
`Optional` **related**: [`Tag`](Tag.md)[]
#### Defined in
lib/types/Tag.ts:10
___
### type
**type**: `string`
#### Defined in
lib/types/Tag.ts:6
___
### url
**url**: `string`
#### Defined in
lib/types/Tag.ts:8
___
### value
`Optional` **value**: `string`
#### Defined in
lib/types/Tag.ts:9

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / TagAPIGetAlbumHighlightsParams
# Interface: TagAPIGetAlbumHighlightsParams
## Table of contents
### Properties
- [imageFormat](TagAPIGetAlbumHighlightsParams.md#imageformat)
- [tagUrl](TagAPIGetAlbumHighlightsParams.md#tagurl)
## Properties
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/tag/TagAPI.ts:15
___
### tagUrl
**tagUrl**: `string`
#### Defined in
lib/tag/TagAPI.ts:14

View File

@ -0,0 +1,63 @@
[bandcamp-fetch](../README.md) / TagAPIGetReleasesParams
# Interface: TagAPIGetReleasesParams
## Table of contents
### Properties
- [filters](TagAPIGetReleasesParams.md#filters)
- [imageFormat](TagAPIGetReleasesParams.md#imageformat)
- [page](TagAPIGetReleasesParams.md#page)
- [tagUrl](TagAPIGetReleasesParams.md#tagurl)
- [useHardcodedDefaultFilters](TagAPIGetReleasesParams.md#usehardcodeddefaultfilters)
## Properties
### filters
`Optional` **filters**: `Record`<`string`, `string` \| `number` \| (`string` \| `number`)[]\>
#### Defined in
lib/tag/TagAPI.ts:22
___
### imageFormat
`Optional` **imageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/tag/TagAPI.ts:20
___
### page
`Optional` **page**: `number`
#### Defined in
lib/tag/TagAPI.ts:23
___
### tagUrl
**tagUrl**: `string`
#### Defined in
lib/tag/TagAPI.ts:19
___
### useHardcodedDefaultFilters
`Optional` **useHardcodedDefaultFilters**: `boolean`
#### Defined in
lib/tag/TagAPI.ts:21

View File

@ -0,0 +1,30 @@
[bandcamp-fetch](../README.md) / TagList
# Interface: TagList
## Table of contents
### Properties
- [locations](TagList.md#locations)
- [tags](TagList.md#tags)
## Properties
### locations
**locations**: `Omit`<[`Tag`](Tag.md), ``"type"``\>[]
#### Defined in
lib/types/Tag.ts:17
___
### tags
**tags**: `Omit`<[`Tag`](Tag.md), ``"type"``\>[]
#### Defined in
lib/types/Tag.ts:16

View File

@ -0,0 +1,207 @@
[bandcamp-fetch](../README.md) / Track
# Interface: Track
## Hierarchy
- [`MediaKind`](MediaKind.md)
**`Track`**
## Table of contents
### Properties
- [album](Track.md#album)
- [artist](Track.md#artist)
- [duration](Track.md#duration)
- [imageUrl](Track.md#imageurl)
- [label](Track.md#label)
- [name](Track.md#name)
- [position](Track.md#position)
- [publisher](Track.md#publisher)
- [raw](Track.md#raw)
- [releaseDate](Track.md#releasedate)
- [seekPosition](Track.md#seekposition)
- [streamUrl](Track.md#streamurl)
- [type](Track.md#type)
- [url](Track.md#url)
## Properties
### album
`Optional` **album**: `Omit`<[`Album`](Album.md), ``"type"``\>
#### Defined in
lib/types/Track.ts:9
___
### artist
`Optional` **artist**: `Omit`<[`Artist`](Artist.md), ``"type"``\>
#### Inherited from
[MediaKind](MediaKind.md).[artist](MediaKind.md#artist)
#### Defined in
lib/types/MediaKind.ts:10
___
### duration
`Optional` **duration**: `number`
#### Defined in
lib/types/Track.ts:6
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[imageUrl](MediaKind.md#imageurl)
#### Defined in
lib/types/MediaKind.ts:8
___
### label
`Optional` **label**: `Omit`<[`Label`](Label.md), ``"type"``\>
#### Inherited from
[MediaKind](MediaKind.md).[label](MediaKind.md#label)
#### Defined in
lib/types/MediaKind.ts:11
___
### name
**name**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[name](MediaKind.md#name)
#### Defined in
lib/types/MediaKind.ts:6
___
### position
`Optional` **position**: `number`
#### Defined in
lib/types/Track.ts:10
___
### publisher
`Optional` **publisher**: [`UserKind`](UserKind.md)
#### Inherited from
[MediaKind](MediaKind.md).[publisher](MediaKind.md#publisher)
#### Defined in
lib/types/MediaKind.ts:12
___
### raw
`Optional` **raw**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `basic` | `string` |
| `extra` | `string` |
#### Inherited from
[MediaKind](MediaKind.md).[raw](MediaKind.md#raw)
#### Defined in
lib/types/MediaKind.ts:13
___
### releaseDate
`Optional` **releaseDate**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[releaseDate](MediaKind.md#releasedate)
#### Defined in
lib/types/MediaKind.ts:9
___
### seekPosition
`Optional` **seekPosition**: `number`
#### Defined in
lib/types/Track.ts:7
___
### streamUrl
`Optional` **streamUrl**: `string`
#### Defined in
lib/types/Track.ts:8
___
### type
**type**: ``"track"``
#### Defined in
lib/types/Track.ts:5
___
### url
`Optional` **url**: `string`
#### Inherited from
[MediaKind](MediaKind.md).[url](MediaKind.md#url)
#### Defined in
lib/types/MediaKind.ts:7

View File

@ -0,0 +1,52 @@
[bandcamp-fetch](../README.md) / TrackAPIGetInfoParams
# Interface: TrackAPIGetInfoParams
## Table of contents
### Properties
- [albumImageFormat](TrackAPIGetInfoParams.md#albumimageformat)
- [artistImageFormat](TrackAPIGetInfoParams.md#artistimageformat)
- [includeRawData](TrackAPIGetInfoParams.md#includerawdata)
- [trackUrl](TrackAPIGetInfoParams.md#trackurl)
## Properties
### albumImageFormat
`Optional` **albumImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/track/TrackAPI.ts:10
___
### artistImageFormat
`Optional` **artistImageFormat**: `string` \| `number` \| [`ImageFormat`](ImageFormat.md)
#### Defined in
lib/track/TrackAPI.ts:11
___
### includeRawData
`Optional` **includeRawData**: `boolean`
#### Defined in
lib/track/TrackAPI.ts:12
___
### trackUrl
**trackUrl**: `string`
#### Defined in
lib/track/TrackAPI.ts:9

View File

@ -0,0 +1,73 @@
[bandcamp-fetch](../README.md) / UserKind
# Interface: UserKind
## Hierarchy
- **`UserKind`**
↳ [`Artist`](Artist.md)
↳ [`Fan`](Fan.md)
↳ [`Label`](Label.md)
## Table of contents
### Properties
- [description](UserKind.md#description)
- [imageUrl](UserKind.md#imageurl)
- [location](UserKind.md#location)
- [name](UserKind.md#name)
- [url](UserKind.md#url)
## Properties
### description
`Optional` **description**: `string`
#### Defined in
lib/types/UserKind.ts:3
___
### imageUrl
`Optional` **imageUrl**: `string`
#### Defined in
lib/types/UserKind.ts:5
___
### location
`Optional` **location**: `string`
#### Defined in
lib/types/UserKind.ts:6
___
### name
**name**: `string`
#### Defined in
lib/types/UserKind.ts:2
___
### url
`Optional` **url**: `string`
#### Defined in
lib/types/UserKind.ts:4

View File

@ -0,0 +1,11 @@
[bandcamp-fetch](../README.md) / ReleasesByTag
# Namespace: ReleasesByTag
## Table of contents
### Interfaces
- [Filter](../interfaces/ReleasesByTag.Filter.md)
- [FilterOption](../interfaces/ReleasesByTag.FilterOption.md)
- [FilterValueNames](../interfaces/ReleasesByTag.FilterValueNames.md)

15
examples/album/getInfo.ts Normal file
View File

@ -0,0 +1,15 @@
import bcfetch from '../../';
import util from 'util';
const albumUrl = 'https://musique.coeurdepirate.com/album/blonde';
const params = {
albumUrl,
albumImageFormat: 'art_app_large',
artistImageFormat: 'bio_featured',
includeRawData: false
};
bcfetch.album.getInfo(params).then((results) => {
console.log(util.inspect(results, false, null, false));
});

View File

@ -0,0 +1,139 @@
{
type: 'album',
name: 'Blonde',
url: 'https://musique.coeurdepirate.com/album/blonde',
numTracks: 12,
keywords: [
'Pop',
'amour',
'coeur de pirate',
'french',
'french pop',
'grosse boîte',
'montreal',
'piano pop',
'Montréal'
],
description: "Après avoir immortalisé tout un pan de son adolescence dans les chansons pop douces-amères d'un premier album homonyme, Coeur de pirate s'attaque aux différentes étapes de la relation amoureuse, d'où le titre de l'album, en référence avant tout, à la copine, à l'amoureuse. L'album a été enregistré à l'été 2011 à l'Hotel2Tango sous la gouverne d'Howard Bilerman, coréalisateur avec Béatrice Martin.",
releaseDate: '07 Nov 2011 00:00:00 GMT',
artist: { name: 'Cœur de pirate', url: 'https://musique.coeurdepirate.com' },
releases: [
{
name: 'Blonde',
format: 'DigitalFormat',
description: 'Includes high-quality download in MP3, FLAC and more. Paying supporters also get unlimited streaming via the free Bandcamp app.',
url: 'https://musique.coeurdepirate.com/album/blonde',
imageUrl: 'https://f4.bcbits.com/img/a1328452291_10.jpg'
},
{
name: 'Blonde - CD',
format: 'CDFormat',
description: "Blonde - Édition régulière comprend le téléchargement gratuit de l'album digital. Veuillez allouer 3 jours ouvrables pour que la version physique vous soit postée.\n" +
'Pour les commandes hors-Canada, vous devez compter de 2 à 4 semaines pour recevoir votre achat.',
url: 'https://musique.coeurdepirate.com/album/blonde#p3309945537',
imageUrl: 'https://f4.bcbits.com/img/0000167149_10.jpg'
},
{
name: 'Blonde - Vinyle',
format: 'VinylFormat',
description: "L'édition vinyle de Blonde comprend les 12 pistes de l'édition régulière, ainsi qu'une affichette 12x24 po. L'achat comprend le téléchargement gratuit de l'album en version régulière.\n" +
'Veuillez allouer 3 jours ouvrables pour que la version physique vous soit postée.',
url: 'https://musique.coeurdepirate.com/album/blonde#p3172983276',
imageUrl: 'https://f4.bcbits.com/img/0012274631_10.jpg'
}
],
tracks: [
{
name: 'Lève les voiles',
duration: 72.7333,
streamUrl: 'https://t4.bcbits.com/stream/4ec5267c795d34d71d84b8d9e6373477/mp3-128/4183427253?p=0&ts=1686494439&t=c40a4ae91db5c33dec570cefcb3ee628460fc173&token=1686494439_3862d4be07dc3bd6df2c7bbc017668e590ae471a',
position: 1,
url: 'https://musique.coeurdepirate.com/track/l-ve-les-voiles'
},
{
name: 'Adieu',
duration: 147.627,
streamUrl: 'https://t4.bcbits.com/stream/bdf4f2f59952f78effcbbf3ff63300db/mp3-128/3647767496?p=0&ts=1686494439&t=6c5367a11a820055e9f97be27b2535567654e837&token=1686494439_d8163e215b039890eda6b11922a36135a31997e9',
position: 2,
url: 'https://musique.coeurdepirate.com/track/adieu'
},
{
name: 'Danse et danse',
duration: 190.413,
streamUrl: 'https://t4.bcbits.com/stream/8d4d755d9f351caf16529342096c3de6/mp3-128/1276790164?p=0&ts=1686494439&t=76ad61376be3f286c67bd63dfb507534256fbe41&token=1686494439_07b36ea15c7b74034371696f4947da6781f6442b',
position: 3,
url: 'https://musique.coeurdepirate.com/track/danse-et-danse'
},
{
name: 'Golden Baby',
duration: 187.027,
streamUrl: 'https://t4.bcbits.com/stream/af5533da023515d8c6c28dd834b7872f/mp3-128/365646139?p=0&ts=1686494439&t=fd353706d770e332bcb1b34d12499243cae8f6d7&token=1686494439_57c8461c94d9bc2935b311ffc1767afa480ef7b2',
position: 4,
url: 'https://musique.coeurdepirate.com/track/golden-baby'
},
{
name: 'Ava',
duration: 196.88,
streamUrl: 'https://t4.bcbits.com/stream/5133f1cab7fa8da200f1392690aca50e/mp3-128/1796143680?p=0&ts=1686494439&t=4661d282acdddb40ed2a445802d556d01e0782a5&token=1686494439_c10e7cfd27302d58958eece4387cebe78e324d9d',
position: 5,
url: 'https://musique.coeurdepirate.com/track/ava'
},
{
name: "Loin d'ici",
duration: 163.827,
streamUrl: 'https://t4.bcbits.com/stream/8a3166238fe996999f457459c592f7c7/mp3-128/260996437?p=0&ts=1686494439&t=4cb28deb9a7f6df51f53c8e85270f8d028d58306&token=1686494439_25e96b731cd8c63e0f955b12fa94074aecbacde0',
position: 6,
url: 'https://musique.coeurdepirate.com/track/loin-dici'
},
{
name: 'Les amours dévouées',
duration: 147.947,
streamUrl: 'https://t4.bcbits.com/stream/a62a0cd6f5b871e7559627b34f996552/mp3-128/4086570201?p=0&ts=1686494439&t=8052657686a94df097cddaa34f1887a958befd6e&token=1686494439_c59b379ffe5096d7f913648f650a179a1b8defa5',
position: 7,
url: 'https://musique.coeurdepirate.com/track/les-amours-d-vou-es'
},
{
name: 'Place de la République',
duration: 251.227,
streamUrl: 'https://t4.bcbits.com/stream/f7f5df6de9007b9415e120d8083cd973/mp3-128/1239774913?p=0&ts=1686494439&t=48d400f3e678c8aae520cdcc3b15a317435c772c&token=1686494439_a2060a56ed2da98c8595e9cab36280a0cc4d2b35',
position: 8,
url: 'https://musique.coeurdepirate.com/track/place-de-la-r-publique'
},
{
name: 'Cap Diamant',
duration: 163.293,
streamUrl: 'https://t4.bcbits.com/stream/732fc4dbcd8ca3cc2cc477d773f99206/mp3-128/3259278294?p=0&ts=1686494439&t=ab5c55198ebfffc9ea45d522bb0e2eefef1c6cbb&token=1686494439_8fae510052febbd9ac978da5c63a52d69ecc5d1a',
position: 9,
url: 'https://musique.coeurdepirate.com/track/cap-diamant'
},
{
name: 'Verseau',
duration: 233.813,
streamUrl: 'https://t4.bcbits.com/stream/a4e97e8b436b8e2ad1a2c598f5cd0a48/mp3-128/496320675?p=0&ts=1686494439&t=fc280ca1b1c88421a2c099bf43c2602adb575d5f&token=1686494439_d783594d927a7687f84879030b37b603731f8bef',
position: 10,
url: 'https://musique.coeurdepirate.com/track/verseau'
},
{
name: 'Saint-Laurent',
duration: 194.787,
streamUrl: 'https://t4.bcbits.com/stream/5f87e431eaaf515564c006de4c888e91/mp3-128/2437695881?p=0&ts=1686494439&t=09ea0d9aa5ed5bedabf7d5875cb222ef34c95e22&token=1686494439_2b0a5f58681ce104a96f9821374f0dcc058d6f91',
position: 11,
url: 'https://musique.coeurdepirate.com/track/saint-laurent'
},
{
name: 'La petite mort',
duration: 229.627,
streamUrl: 'https://t4.bcbits.com/stream/b257ccb8aca3ea864cbb2774e9d8d2be/mp3-128/525064765?p=0&ts=1686494439&t=9a65c09b642c93569cc88b445d5cc81f59317d54&token=1686494439_60776d9b721bf9e1f1eb994e3ac01fc5703e11a6',
position: 12,
url: 'https://musique.coeurdepirate.com/track/la-petite-mort'
}
],
imageUrl: 'https://f4.bcbits.com/img/a1328452291_16.jpg',
label: { name: 'Bravo musique', url: 'https://bravomusique.bandcamp.com' },
publisher: {
name: 'Cœur de pirate',
url: 'https://musique.coeurdepirate.com',
description: 'Plus dune décennie sest écoulée depuis que Béatrice Martin sest incrustée dans le paysage sous le pseudonyme désormais coutumier de Cœur de pirate. Armée dun talent digne de lorfèvrerie, dune poésie tantôt raffinée, tantôt subversive, et dune aura insaisissable, elle séduit comme elle surprend, jaillissant là où on ne lattend pas.',
imageUrl: 'https://f4.bcbits.com/img/0026415167_28.jpg'
}
}

View File

@ -0,0 +1,13 @@
import bcfetch from '../../';
import util from 'util';
const articleUrl = 'https://daily.bandcamp.com/best-ambient/best-new-ambient-march-2018';
const params = {
articleUrl,
includeRawData: false
};
bcfetch.article.getArticle(params).then((results) => {
console.log(util.inspect(results, false, null, false));
});

View File

@ -0,0 +1,531 @@
{
title: 'The Best New Ambient Music on Bandcamp, March 2018',
description: 'Music for snow days, reissued 80s Japanese ambient, and themes of loss and emptiness in this months roundup.',
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-march-2018',
imageUrl: 'https://f4.bcbits.com/img/0017912164_0',
date: '2018-03-27T11:03:30Z',
category: {
name: 'Best Ambient',
url: 'https://daily.bandcamp.com/best-ambient'
},
author: {
name: 'Aurora Mitchell',
url: 'https://daily.bandcamp.com/contributors/aurora-mitchell'
},
mediaItems: [
{
type: 'album',
name: 'Aarde',
url: 'https://somta.bandcamp.com/album/aarde',
imageUrl: 'https://f4.bcbits.com/img/a2731445950_9.jpg',
featuredTrackPosition: 3,
artist: {
name: 'somta',
url: 'https://somta.bandcamp.com',
imageUrl: 'https://f4.bcbits.com/img/8414332_21.jpg',
location: 'Leeds, UK'
},
tracks: [
{
position: 1,
name: 'Aiolus',
duration: 42,
streamUrl: 'https://t4.bcbits.com/stream/bba2dc752e4f02070f3b40b72abfdfda/mp3-128/3588455251?p=0&ts=1686494469&t=4c30836b93e0647a9d41e699ec5d4d0ec21d291f&token=1686494469_77788f76c09c251b1ca1d8226f33da4db5c0d62b'
},
{
position: 2,
name: 'Sophia',
duration: 343.521,
streamUrl: 'https://t4.bcbits.com/stream/5e904efaf5962cc83f8ed35cc49b6850/mp3-128/2347995441?p=0&ts=1686494469&t=80f5f80cd380ba2dfc3e2c355c4733c22c60285b&token=1686494469_88be89941db3ed862dc22a598e8da8450fb95461'
},
{
position: 3,
name: 'Khiōn',
duration: 226.396,
streamUrl: 'https://t4.bcbits.com/stream/4dcfdbfcecdccde6260a12fe37bb4277/mp3-128/2272710569?p=0&ts=1686494469&t=ebb8260be7b9f5ca6a4fa33e0c5c3fea088bc6f4&token=1686494469_f2f3a59541e0c435a90730d5daf90e1b226e189c'
},
{
position: 4,
name: 'Noos',
duration: 388.5,
streamUrl: 'https://t4.bcbits.com/stream/503e4b6e9d762fd172e36c33a0a5de57/mp3-128/3685166023?p=0&ts=1686494469&t=8dfc1dd298e0899efe99b0694028a037777231a3&token=1686494469_18f33172533b36be8ab49007b204826cbad32604'
},
{
position: 5,
name: 'Trogo',
duration: 410.083,
streamUrl: 'https://t4.bcbits.com/stream/599b32fbe8b66002676cdaf77d3b6b06/mp3-128/717296085?p=0&ts=1686494469&t=3ac93eb20dccbd099c514b09193f62f35289a656&token=1686494469_74a168335a1dba38ca2456bfe96a6fbaa11a0e48'
},
{
position: 6,
name: 'Tuptō',
duration: 254.029,
streamUrl: 'https://t4.bcbits.com/stream/507d08c0c8edb321660d6305d1b13c5f/mp3-128/3228890418?p=0&ts=1686494469&t=20765b465460baabb7fb5f063a5e2e61411f0891&token=1686494469_194a3741374113c29e5a7c4f688b1f3302039f69'
},
{
position: 7,
name: 'Onos',
duration: 98.2833,
streamUrl: 'https://t4.bcbits.com/stream/a0b6e9b5d2434bbcd74d6e99ddc2965e/mp3-128/3097234822?p=0&ts=1686494469&t=53f8d1e94b49b70a19f6f0d470d78a665f94b078&token=1686494469_8628ba327d43c9a6432b79d2c88f174c29464dc1'
},
{
position: 8,
name: 'Skia',
duration: 140.104,
streamUrl: 'https://t4.bcbits.com/stream/f5c6320bf16ef3fb8ed3a54121898866/mp3-128/2952107736?p=0&ts=1686494469&t=eb20c42b9078123b5ea4f7398bf0e16827f578ba&token=1686494469_eada5fc8f44f55debd00feccce7b257c4da78468'
},
{
position: 9,
name: 'Hulē',
duration: 183.999,
streamUrl: 'https://t4.bcbits.com/stream/a61bb342e975ab95117826eb15dbea76/mp3-128/743360394?p=0&ts=1686494469&t=da576e28e5a2ad0d88f4e186b70491ea953b75c4&token=1686494469_be9ac67c90ec1917b5fe2b783fa100c78988ee8e'
},
{
position: 10,
name: 'Ganos',
duration: 423,
streamUrl: 'https://t4.bcbits.com/stream/2a200eed7fd2b130b64dcf0bdc6783c5/mp3-128/3511494308?p=0&ts=1686494469&t=517172cefc9896d3f0d87239cb9172f6da680eea&token=1686494469_2ce30398f836684dd5e8904bc1f3094df8eef6b4'
},
{
position: 11,
name: 'Polos',
duration: 414,
streamUrl: 'https://t4.bcbits.com/stream/87ba803b563488675ee32fd7f281a70a/mp3-128/3723435045?p=0&ts=1686494469&t=ddb36efb550990c965c7ddd3e2923650c8a86419&token=1686494469_83eb7200eff6bc86988448a947fb1340779825d5'
},
{
position: 12,
name: 'Zophos',
duration: 91.0833,
streamUrl: 'https://t4.bcbits.com/stream/9ae9dc4469ca3b328ef96b7775589eaa/mp3-128/1373210950?p=0&ts=1686494469&t=792f3cf1f2863ebc9d705a55ba08e818cb916300&token=1686494469_0bb5698f995810fa807f94e90d8f90df8a77f20f'
},
{
position: 13,
name: 'Kruos',
duration: 308.729,
streamUrl: 'https://t4.bcbits.com/stream/85ac0ff689dcd7112a431d096d9d11c0/mp3-128/3200879908?p=0&ts=1686494469&t=1394347027f64bc621373d331f980a05be09130c&token=1686494469_c43330bffd8b3c5691311032239744f88d146e45'
},
{
position: 14,
name: 'Phōs',
duration: 188.271,
streamUrl: 'https://t4.bcbits.com/stream/bcdde2e8a7d8adb0d140804b9fbef632/mp3-128/575691204?p=0&ts=1686494469&t=f3e9a6a314330c6a48faf35a07c943bc63c238e0&token=1686494469_906a97ed39bbe922bd362d98fabb637b8dece387'
},
{
position: 15,
name: 'Arktos',
duration: 188,
streamUrl: 'https://t4.bcbits.com/stream/d0016651f3368112bed9367294db5c45/mp3-128/2863705519?p=0&ts=1686494469&t=9bead25252fe5040997b5ea5d65a6df35244113c&token=1686494469_44f899dfb8b868d53dbf72aedd8a798f3a34532a'
}
],
mediaItemRef: 't2272710569'
},
{
type: 'album',
name: 'music for snow days',
url: 'https://maevescave.bandcamp.com/album/music-for-snow-days',
imageUrl: 'https://f4.bcbits.com/img/a2627798194_9.jpg',
featuredTrackPosition: 1,
artist: {
name: 'Maeve Clark',
url: 'https://maevescave.bandcamp.com',
imageUrl: 'https://f4.bcbits.com/img/13825272_21.jpg',
location: 'Toronto, Ontario'
},
tracks: [
{
position: 1,
name: 'glacial drift',
duration: 165.517,
streamUrl: 'https://t4.bcbits.com/stream/8fe55af7408165869c29c1dacd3438ef/mp3-128/1986717137?p=0&ts=1686494469&t=c150ddb2c88a744ab803314f0591b900ddf58a80&token=1686494469_0346045914293050a7d03c82687bb6bd874121cb'
},
{
position: 2,
name: 'frosted panes',
duration: 128,
streamUrl: 'https://t4.bcbits.com/stream/0c79a983698347a100b5927208b7de6b/mp3-128/1139371646?p=0&ts=1686494469&t=114c24fa5caa2d8323d30d25ca874a161ed78631&token=1686494469_6ef3d6745a089262935561558f0ba88f34c64674'
},
{
position: 3,
name: 'under the glass',
duration: 180,
streamUrl: 'https://t4.bcbits.com/stream/8fbcc9f3bdf66b067fa92f479840289f/mp3-128/2086342140?p=0&ts=1686494469&t=53779590c57e93e5494cdfce3eb9ff013a46f950&token=1686494469_6f210bbd22ebeda088a3e4e37958c2b6fd585df4'
},
{
position: 4,
name: 'alpine train track',
duration: 188.723,
streamUrl: 'https://t4.bcbits.com/stream/c3fe330ef0d7081bcfdb1861746ce799/mp3-128/3789770489?p=0&ts=1686494469&t=b515cb118bbed7f57ea5b4feb92a1fbbf1897afa&token=1686494469_09276bcdecd18f5360fab6b803e16ddd6cf5df71'
}
],
mediaItemRef: 'a454040844'
},
{
type: 'album',
name: 'Music for Nine Post Cards',
url: 'https://hiroshiyoshimura.bandcamp.com/album/music-for-nine-post-cards',
imageUrl: 'https://f4.bcbits.com/img/a1329705853_9.jpg',
featuredTrackPosition: 1,
artist: {
name: 'Hiroshi Yoshimura',
url: 'https://hiroshiyoshimura.bandcamp.com',
imageUrl: 'https://f4.bcbits.com/img/19000214_21.jpg',
location: 'Japan'
},
tracks: [
{
position: 1,
name: 'Water Copy',
duration: 371.867,
streamUrl: 'https://t4.bcbits.com/stream/9ccc3a98463b14603e64163f367e40c5/mp3-128/2862079336?p=0&ts=1686494469&t=247725407c0985176b6ab1d420f58b06485d6849&token=1686494469_d7914006db3be86449698350e257a455cc2ce633'
},
{
position: 2,
name: 'Clouds',
duration: 354.693,
streamUrl: 'https://t4.bcbits.com/stream/0479a3b6fb0905034221425f3bcada0a/mp3-128/1445700587?p=0&ts=1686494469&t=3462e4949519316b0fc974d0b53beade7d98927e&token=1686494469_60abd162e3259379c049ab927c536e11e3428fc9'
},
{
position: 3,
name: 'Blink',
duration: 282.013,
streamUrl: 'https://t4.bcbits.com/stream/0dbe234ebedd6ddd469b09a05ef317c0/mp3-128/3323651202?p=0&ts=1686494469&t=03c0d5c852c7f8b876a567fd44fbfb0a820941bb&token=1686494469_ab301249f6c56b2f019296cec689eb687f4cd868'
},
{
position: 4,
name: 'Dance PM',
duration: 392.32,
streamUrl: 'https://t4.bcbits.com/stream/07aae56284ad785d1bd1a5b8373dae6a/mp3-128/1063072521?p=0&ts=1686494469&t=3e70f5181ea2644cb33179b0f28b847ca3cd8617&token=1686494469_5935030d334069bee032ddd321c6b0ced1a54adb'
},
{
position: 5,
name: 'Ice Copy',
duration: 175.773,
streamUrl: 'https://t4.bcbits.com/stream/f496d40c5475e90e3ddd5fb07373211c/mp3-128/2066333379?p=0&ts=1686494469&t=2e05a942326035faa5bf50eabc05f4e412569ca5&token=1686494469_dd950cd64561bf84eb73beaa35f1f54ca37aaae3'
},
{
position: 6,
name: 'Soto Wa Ame - Rain Out Of Window',
duration: 276.707,
streamUrl: 'https://t4.bcbits.com/stream/7279637e86f60e8f24815a41908cfe7b/mp3-128/3414351773?p=0&ts=1686494469&t=c1c1d72dff8389abbde5f411f1217ce926e8532f&token=1686494469_01a8f3ba252a4d879629edf7bfdce2f5822bd7ca'
},
{
position: 7,
name: 'View From My Window',
duration: 375.6,
streamUrl: 'https://t4.bcbits.com/stream/2caffd8268ef49a7d174ee3f8ce67ae9/mp3-128/546874861?p=0&ts=1686494469&t=f05f09347103a6dffc6b114f515da9884e8ebd06&token=1686494469_b4dcebc70554558118c35627181a717f16f84074'
},
{
position: 8,
name: 'Urban Snow',
duration: 285.773,
streamUrl: 'https://t4.bcbits.com/stream/9c2fa2599479ac941b7a2cd2a646c458/mp3-128/2047145341?p=0&ts=1686494469&t=b67de3dcb90706c5d992c42a33301e5a16e05a3b&token=1686494469_c8bfcf63410a4582b5af799e431a679834f81a3a'
},
{
position: 9,
name: 'Dream',
duration: 334.96,
streamUrl: 'https://t4.bcbits.com/stream/59654dbc1a3856016056ecb713de2279/mp3-128/1844238301?p=0&ts=1686494469&t=844e9664d0044c0412d128b1ca45d97fc9070425&token=1686494469_0754f7473ae8598c4d9fe15477faa05790100b41'
}
],
mediaItemRef: 'a3834281211'
},
{
type: 'album',
name: 'The Greys',
url: 'https://ilurecords.bandcamp.com/album/the-greys',
imageUrl: 'https://f4.bcbits.com/img/a2451461387_9.jpg',
featuredTrackPosition: 1,
artist: {
name: 'I Low You Records',
url: 'https://ilurecords.bandcamp.com',
imageUrl: 'https://f4.bcbits.com/img/27921075_21.jpg',
location: 'Tokyo, Japan'
},
tracks: [
{
position: 1,
name: "Don't Remember a Thing",
duration: 71.1318,
streamUrl: 'https://t4.bcbits.com/stream/9a1d8da36f4c48850e47ad5766fad27c/mp3-128/1849746451?p=0&ts=1686494469&t=c51b2be9a8c6ff4d71e8580d47640e8580c8333a&token=1686494469_131f825d3dd5502e8696bb3e88433cd1d85e17f7'
},
{
position: 2,
name: 'Analog Man',
duration: 45.2042,
streamUrl: 'https://t4.bcbits.com/stream/57c460c29443951cd10cd0d908b0a394/mp3-128/1737948375?p=0&ts=1686494469&t=d7f577fd3271931a8b277128a47b4127bf6ecfa6&token=1686494469_d79b412385c0ccfa30d796fb330e123ba0ffe0f9'
},
{
position: 3,
name: 'Coughing Death',
duration: 136.558,
streamUrl: 'https://t4.bcbits.com/stream/054ff3c71138117e95d9d2f442c7ba2f/mp3-128/3268827724?p=0&ts=1686494469&t=af77f20881b42660862df7834c152af8f3c33cde&token=1686494469_85f5c1600a76430b32ac6635ed805db1be3bdde9'
},
{
position: 4,
name: "Don't Go in the Woods Alone",
duration: 48.7698,
streamUrl: 'https://t4.bcbits.com/stream/b67e617c74892efde0bd9579d364e473/mp3-128/3557485835?p=0&ts=1686494469&t=3805312a8c17cb9b1659f8c0bf9d7681c22bad19&token=1686494469_b0498f1d085d73feabaada451288dc589b17ce60'
},
{
position: 5,
name: 'Fairy_Fungi',
duration: 148.588,
streamUrl: 'https://t4.bcbits.com/stream/bb6759be8fe535515d3d1e8a92cd8bcf/mp3-128/1079329015?p=0&ts=1686494469&t=b9c813180eb88d3cb8187041236b6a30b46f4e66&token=1686494469_94b1389dc7ffc7195e8f3428d6d1b1323aad9ba6'
},
{
position: 6,
name: 'Gray Ghosts',
duration: 56.1875,
streamUrl: 'https://t4.bcbits.com/stream/f949c20042a6d42671f587f761095503/mp3-128/2836999478?p=0&ts=1686494469&t=d60fe5ae1717abd3c0cf12e4d0d60804e6098b3e&token=1686494469_d6bd0423d7f1004ed16d4026533edac1fe438936'
},
{
position: 7,
name: 'Lost',
duration: 31.1641,
streamUrl: 'https://t4.bcbits.com/stream/4f2bbf6289460c0d1108f79b9dc49c11/mp3-128/1187225203?p=0&ts=1686494469&t=7cd8ee65f00865bf49b55ae0a6799dd9ec12693d&token=1686494469_8f4990594169a7396c95dc91665d754bc780b39b'
},
{
position: 8,
name: 'Melted Snow',
duration: 116.221,
streamUrl: 'https://t4.bcbits.com/stream/4ec3e010ad2a46e6b8b29f1f3b66f545/mp3-128/2296333718?p=0&ts=1686494469&t=00dd56f218b4e01ea0b7a71dc4d1e4812c4cf481&token=1686494469_d2970813e4227db7576cf00787e78bce1a58530d'
},
{
position: 9,
name: 'UUmox (vers. II)',
duration: 106.548,
streamUrl: 'https://t4.bcbits.com/stream/41d8070603d9957a54c47aac4b5efdf2/mp3-128/1800262023?p=0&ts=1686494469&t=3bc0a31a7c5e2cd81536e9f4d5f4d2b5ea14b05f&token=1686494469_835a7c5a4e3bea433240f8cf515f1bef87c6effa'
},
{
position: 10,
name: 'White Ghosts',
duration: 93.9719,
streamUrl: 'https://t4.bcbits.com/stream/b2ae77e2ff74d6bac0873c0acf3622a7/mp3-128/1335292332?p=0&ts=1686494469&t=f51d7010e2027c345cb34c4f728ec6bf478f9268&token=1686494469_f3c2c35634cba7d42278fe2ff223ab077f0cb3d5'
},
{
position: 11,
name: 'Warp Day',
duration: 33.8125,
streamUrl: 'https://t4.bcbits.com/stream/7d70e3b721d731c859ad39461a8d6351/mp3-128/180645096?p=0&ts=1686494469&t=28a909bd3c67747bba2fe88d3d5219489a99b2d0&token=1686494469_124c813bdb31fcf0782ad1b85c021403bad801af'
},
{
position: 12,
name: 'Old M.m.',
duration: 152.208,
streamUrl: 'https://t4.bcbits.com/stream/61015621f32f12a4afe23f2619c6d9b0/mp3-128/2286068125?p=0&ts=1686494469&t=f29ad18b5c77681a5cd1ce965e54734459577eae&token=1686494469_629ebbafd491171ea77a436b4229170918c6fdee'
},
{
position: 13,
name: 'You Can be Lonely',
duration: 101.327,
streamUrl: 'https://t4.bcbits.com/stream/d9d5dd4f031f0a48f97bac056f405253/mp3-128/2325111113?p=0&ts=1686494469&t=663b4e21f6f6ea0667f33ce32bbf6798521ca9af&token=1686494469_32ed355733efff7b55f211c6dc0dfd4171d48633'
},
{
position: 14,
name: 'Eyelid Smiles',
duration: 57.1423,
streamUrl: 'https://t4.bcbits.com/stream/2268e0c0f289573fb4d9741543f6245f/mp3-128/2054627365?p=0&ts=1686494469&t=0b8a62a754d0a324e40642b0d5712c27318002bf&token=1686494469_8b7619e12043c63f17a42973554fee9d7711c97f'
},
{
position: 15,
name: 'Saying Goodbye',
duration: 70.6005,
streamUrl: 'https://t4.bcbits.com/stream/088e77b99529ab2048218c3da8bf842b/mp3-128/82283410?p=0&ts=1686494469&t=cde84d30f6576eb5b9e9b6a69c36f2b8bb10faac&token=1686494469_8dcada60aa5a2b253fbd9b89c96263f37a1f03f4'
},
{
position: 16,
name: 'How is Your Day Going',
duration: 49.0354,
streamUrl: 'https://t4.bcbits.com/stream/18d8fc3015352bd76b5478f36dc9d23b/mp3-128/3760493673?p=0&ts=1686494469&t=e3bb914cbad1c94c4bdeb0be52579532321462dc&token=1686494469_0c5ad65622cbba936454e74d2af9fa9cd93b2fcb'
},
{
position: 17,
name: 'Granular Loop',
duration: 66.7917,
streamUrl: 'https://t4.bcbits.com/stream/53db5fe0b0f85c17afb2d730c8ad993f/mp3-128/1780688429?p=0&ts=1686494469&t=cddad73eeebda5ad687a661ed1367a6605b643d5&token=1686494469_5b97d1cc7a0b6bb9f9730278504e7fd2a78e26c9'
},
{
position: 18,
name: 'Shadow Faces',
duration: 90.4234,
streamUrl: 'https://t4.bcbits.com/stream/4fcd1b502498b33194683f099565e754/mp3-128/4275310931?p=0&ts=1686494469&t=8671f6e953dfac8f564327827d49675c83fb50ed&token=1686494469_2988cd8f938534c8efb9479c88cefc4583ab7c6b'
},
{
position: 19,
name: 'The Greys',
duration: 67.9607,
streamUrl: 'https://t4.bcbits.com/stream/199e8a672421d7429b2fb1673917c0b1/mp3-128/3364736689?p=0&ts=1686494469&t=655629cbbac3fba5cd9679ae64ed6eacc920d3d0&token=1686494469_3c8d96181bbe6e1e7cb49dc27cd0f0074fb59206'
},
{
position: 20,
name: 'Fragmented Loop',
duration: 24.0135,
streamUrl: 'https://t4.bcbits.com/stream/d0345a94b9fc6ceb4f895fd5fc6fc1b6/mp3-128/3121980470?p=0&ts=1686494469&t=eaa3c0f652c7e0306b62e162ed5a22b2d5d50ec4&token=1686494469_9e2a0b88ef6d1ec4602094dc01ea9b2d47cd5fe5'
},
{
position: 21,
name: 'Who Goes There',
duration: 33.0828,
streamUrl: 'https://t4.bcbits.com/stream/e65fbe773c8a05cce5fe657dc28b76c8/mp3-128/411868333?p=0&ts=1686494469&t=97e3760eb5e7a8dc94f6d78252627d60211abcee&token=1686494469_92a2a676f64b2cd07823de147337676fb6efba1d'
},
{
position: 22,
name: 'Two Lost Years',
duration: 568.698,
streamUrl: 'https://t4.bcbits.com/stream/7467ea7fd5fb544c20b50a561928f9da/mp3-128/2821042097?p=0&ts=1686494469&t=e9d8a8357150fac7f785fb81c2005cea12771379&token=1686494469_2477aa0993251a029fc68fea5fc87e56ef3f1dcf'
},
{
position: 23,
name: 'What is Song',
duration: 21.6526,
streamUrl: 'https://t4.bcbits.com/stream/4772122bb7d1c83daf16300738af3553/mp3-128/617262569?p=0&ts=1686494469&t=87ec12526f8f99605c80110c46ef9f184247c7f0&token=1686494469_bfe5c340e47cd4a975c6f1cfb257bd5f87dffd9c'
}
],
mediaItemRef: 'a612750820'
},
{
type: 'album',
name: 'Cold Ubiquity',
url: 'https://lahautdanslocean.bandcamp.com/album/cold-ubiquity',
imageUrl: 'https://f4.bcbits.com/img/a837598593_9.jpg',
featuredTrackPosition: 1,
artist: {
name: "Là-haut Dans L'Océan",
url: 'https://lahautdanslocean.bandcamp.com',
imageUrl: 'https://f4.bcbits.com/img/12384834_21.jpg',
location: 'Grenoble, France'
},
tracks: [
{
position: 1,
name: "Tentation d'Ubiquité",
duration: 523.234,
streamUrl: 'https://t4.bcbits.com/stream/dd36a520ba2cb3a40b9e8e8abe85503a/mp3-128/130351574?p=0&ts=1686494469&t=ba0dfbf29f69e5323a4425a2d0a81972cc1dc470&token=1686494469_377617898452ab4c50c1746b25bd774ae344cdb2'
},
{
position: 2,
name: 'Ambifidus',
duration: 243.438,
streamUrl: 'https://t4.bcbits.com/stream/86de9fd0403b65068f193ef61188472b/mp3-128/1707109576?p=0&ts=1686494469&t=c3dd92c5b6925f8f14c5fe82165859d5b7eb4b84&token=1686494469_55ad5f7e5d68c09daeabbbb6ddd856519b61992b'
},
{
position: 3,
name: 'Snow Bird',
duration: 248.527,
streamUrl: 'https://t4.bcbits.com/stream/e2af6f01452e374ddf48e7c46bb41489/mp3-128/136062705?p=0&ts=1686494469&t=962314a2d76dea9e6040bd0e2a48a04034213fe9&token=1686494469_a7b0fa47ba164f904f3768d69202210914ef6dfe'
},
{
position: 4,
name: 'Fake Seagulls and Fulfillment',
duration: 292.912,
streamUrl: 'https://t4.bcbits.com/stream/3ed2e54d7285d00da313befb72ed4c7d/mp3-128/573634003?p=0&ts=1686494469&t=d0bc4b1129b1dcd736ff40effd09dc6972cc844a&token=1686494469_dbc4ddc1eedd6ee0067c1fa2d4cf6fe324a24b24'
},
{
position: 5,
name: 'Birds Coalition For My Apartment Cat',
duration: 340,
streamUrl: 'https://t4.bcbits.com/stream/6508dd8760542d30418021b7802ecb9c/mp3-128/1466403206?p=0&ts=1686494469&t=0eba2c47435a732ddb1f31f91f1f3fc0ebaca293&token=1686494469_ceb7e7aa3d18452bbe6f0fe97541e02d596ba384'
},
{
position: 6,
name: 'My Heart Play On The Lake',
duration: 429.978,
streamUrl: 'https://t4.bcbits.com/stream/6e3eb7b756bdf444930ffa576717fe5f/mp3-128/2764710200?p=0&ts=1686494469&t=539adf2da96047bb007694c64e67c29b7066fb3a&token=1686494469_d8ca058e1e1ba84a38ff5a400e1b28b097f5a1e6'
},
{
position: 7,
name: 'Riley Net Data',
duration: 232.441,
streamUrl: 'https://t4.bcbits.com/stream/ae9892a7be6390f426f787cf5ef0140b/mp3-128/3158881070?p=0&ts=1686494469&t=2ecff9ec2af57a6e638d6dcb082e5b801bde231c&token=1686494469_64ec175b72c368f2f24d823a851c84d57f9e5086'
},
{
position: 8,
name: 'Deepor Radiator Swamp',
duration: 327.733,
streamUrl: 'https://t4.bcbits.com/stream/c3a49f2d6b0c8d6bff69367956f0c5f6/mp3-128/3414841372?p=0&ts=1686494469&t=2046c3f04d880ec28ecd7b9ee1e41b752f7ffa90&token=1686494469_5a9c4fa8f4eb18f222897ed068705abc6e94ccd4'
},
{
position: 9,
name: 'Far Cold Away',
duration: 98.5972,
streamUrl: 'https://t4.bcbits.com/stream/57d74642b683fcd05ba062fc908045b9/mp3-128/1563033969?p=0&ts=1686494469&t=ecf77684b26e12d91b9e9beb438ccf1e72bde97a&token=1686494469_9b9dec99921bd90924f7610589946ce92f73ff2f'
},
{
position: 10,
name: 'Muages',
duration: 304.83,
streamUrl: 'https://t4.bcbits.com/stream/5108a71efc1eb4aeecbad4a18ea595e4/mp3-128/2851363235?p=0&ts=1686494469&t=9c8bab0f0876e000622e4b59a60a9b51111a1e5f&token=1686494469_8488e69b7b0dd58a53c5456852f55f269f6b1b43'
},
{
position: 11,
name: 'Thunder The Ocean',
duration: 436.336,
streamUrl: 'https://t4.bcbits.com/stream/aa7c27bf7f052098de0535adf3604aba/mp3-128/1650176642?p=0&ts=1686494469&t=00d2472f17fef9a9732e2a19cdf4ec106e11789a&token=1686494469_e77c2dcfa4f41befc719283f8b8f18c02fcb0b0e'
},
{
position: 12,
name: 'Mermaids',
duration: 352.662,
streamUrl: 'https://t4.bcbits.com/stream/c4b8764c805124986b4f97e49f96af13/mp3-128/104707931?p=0&ts=1686494469&t=fe4aeaaca4a7401141fb6edbf7ce0eb964b901c8&token=1686494469_83191afa709478ac8c8724398ecd519cf604ef22'
}
],
mediaItemRef: 'a42342034'
}
],
sections: [
{
html: 'There are infinite atmospheric worlds available on Bandcamp. From the dreamy to the nightmarish, and the meditative to the deeply unsettling, these compositions often fall under the ambient umbrella. Albums without words that are deeply thoughtful and thought-provoking in their own way—these releases come from all corners of the globe. Every month, Aurora Mitchell will take you through the best ambient releases. In this edition, theres music for snow days, reissued 80s Japanese ambient, and themes of loss and emptiness.',
text: 'There are infinite atmospheric worlds available on Bandcamp. From the dreamy to the nightmarish, and the meditative to the deeply unsettling, these compositions often fall under the ambient umbrella. Albums without words that are deeply thoughtful and thought-provoking in their own way—these releases come from all corners of the globe. Every month, Aurora Mitchell will take you through the best ambient releases. In this edition, theres music for snow days, reissued 80s Japanese ambient, and themes of loss and emptiness.'
},
{
html: 'Last year, Leeds-based producer Somta released their first album,&nbsp;<em><a href="https://somta.bandcamp.com/album/surface-to-air" target="_blank" rel="noopener noreferrer" data-clickthrough="true">Surface to air</a></em>, a dark and introspective offering. Exactly one year later, they return with their follow-up, <i>Aarde</i>. It starts off in blistering fashion, with bizarre voices echoing through a whipped-up wind: <i>“</i>Every star is just a sail in the brain of the universe,<i>” </i>they whisper. “Khiōn” is one of the albums highlights, boasting intergalactic melodies and sliding pads. The gust of noise that blew through <i>Surface to air</i> is present here, but there are more moments of soft elegance, like the pleasant drift of “Ganos” and the shiny, high-pitched waves of “Zophos.” But the album really reaches an apex with “Phōs,” which makes excellent use of space (and cosmic bleeps).',
text: 'Last year, Leeds-based producer Somta released their first album, Surface to air, a dark and introspective offering. Exactly one year later, they return with their follow-up, Aarde. It starts off in blistering fashion, with bizarre voices echoing through a whipped-up wind: “Every star is just a sail in the brain of the universe,” they whisper. “Khiōn” is one of the albums highlights, boasting intergalactic melodies and sliding pads. The gust of noise that blew through Surface to air is present here, but there are more moments of soft elegance, like the pleasant drift of “Ganos” and the shiny, high-pitched waves of “Zophos.” But the album really reaches an apex with “Phōs,” which makes excellent use of space (and cosmic bleeps).',
heading: {
html: 'Somta<br><em><a href="https://somta.bandcamp.com/album/aarde" target="_blank" rel="noopener noreferrer" data-clickthrough="true">Aarde</a></em>\n',
text: 'Somta\nAarde'
},
mediaItemRef: 't2272710569'
},
{
html: 'We may be in early spring, but snow is still wreaking wintry havoc around the world, leaving people housebound while the ground is covered and transport is halted. Ontarios Dame Cooks four-track release is designed to soundtrack these days, titled, appropriately enough,&nbsp;<i>music for snow days</i>. While the track titles reference ice and freezing temperatures, the music is neither frosty nor cold; it has the sparkling, dewy atmosphere of a world slowly thawing. Flutes flutter dreamily across the bare bones of the first track, “glacial drift.” The record alternates between the twinkling instrumentation of that song and “under the glass” to the sluggish, meandering charm of “frosted panes” and “alpine train track.”',
text: 'We may be in early spring, but snow is still wreaking wintry havoc around the world, leaving people housebound while the ground is covered and transport is halted. Ontarios Dame Cooks four-track release is designed to soundtrack these days, titled, appropriately enough, music for snow days. While the track titles reference ice and freezing temperatures, the music is neither frosty nor cold; it has the sparkling, dewy atmosphere of a world slowly thawing. Flutes flutter dreamily across the bare bones of the first track, “glacial drift.” The record alternates between the twinkling instrumentation of that song and “under the glass” to the sluggish, meandering charm of “frosted panes” and “alpine train track.”',
heading: {
html: 'Dame Cook<br><em><a href="https://damecook.bandcamp.com/album/music-for-snow-days" target="_blank" rel="noopener noreferrer" data-clickthrough="true">music for snow days</a></em>\n',
text: 'Dame Cook\nmusic for snow days'
},
mediaItemRef: 'a454040844'
},
{
html: 'A few years after&nbsp;Hiroshi Yoshimuras death in 2003, his music started slowly finding its way onto popular mixes and playlists, and the demand for his music grew so much that many titles were repressed. His first album, <i>Music For Nine Post Cards</i>, was finally reissued last year, and it proves that few composers capture the elegance of space, the balance of hope and sadness, and the healing power of ambient music quite like Yoshimura does. Its the perfect soundtrack to drift slowly to sleep to, the silence between each note more poignant in the darkness.',
text: 'A few years after Hiroshi Yoshimuras death in 2003, his music started slowly finding its way onto popular mixes and playlists, and the demand for his music grew so much that many titles were repressed. His first album, Music For Nine Post Cards, was finally reissued last year, and it proves that few composers capture the elegance of space, the balance of hope and sadness, and the healing power of ambient music quite like Yoshimura does. Its the perfect soundtrack to drift slowly to sleep to, the silence between each note more poignant in the darkness.',
heading: {
html: 'Hiroshi Yoshimura<br><em><a href="https://hiroshiyoshimura.bandcamp.com/album/music-for-nine-post-cards" target="_blank" rel="noopener noreferrer" data-clickthrough="true">Music For Nine Post Cards</a></em>\n',
text: 'Hiroshi Yoshimura\nMusic For Nine Post Cards'
},
mediaItemRef: 'a3834281211'
},
{
html: 'This album by Tape Sounds, on Tokyo-based label <a href="https://ilurecords.bandcamp.com/" target="_blank" rel="noopener noreferrer" data-clickthrough="true">I Low You Records</a>, has a despondent tone; <i>The Greys</i> is a collection of loops that center around feelings of loss, emptiness, and blankness. Each loop is two minutes or less, giving only brief snapshots of ideas or sequences before swiftly moving on. Despite the theme, there are a lot of magical, bright sounds on <i>The Greys</i>. Its a largely guitar-based record, taking simple chords and notes and stretching them with the charm of delay.',
text: 'This album by Tape Sounds, on Tokyo-based label I Low You Records, has a despondent tone; The Greys is a collection of loops that center around feelings of loss, emptiness, and blankness. Each loop is two minutes or less, giving only brief snapshots of ideas or sequences before swiftly moving on. Despite the theme, there are a lot of magical, bright sounds on The Greys. Its a largely guitar-based record, taking simple chords and notes and stretching them with the charm of delay.',
heading: {
html: 'Tape Sounds<br><em><a href="https://ilurecords.bandcamp.com/album/the-greys" target="_blank" rel="noopener noreferrer" data-clickthrough="true">The Greys</a></em>\n',
text: 'Tape Sounds\nThe Greys'
},
mediaItemRef: 'a612750820'
},
{
html: 'Denis Morins newest offering for French label <a href="https://lahautdanslocean.bandcamp.com/" target="_blank" rel="noopener noreferrer" data-clickthrough="true">Là-haut Dans LOcéan</a> is a lush exploration of birds chirping in echoing circles, watery samples, and shimmering pads. <i>Cold Ubiquity</i> plays with the tones and pitches of a large variety of bird calls. The second half of the record is more synth-based, with pixelated melodies fluttering throughout. Some of the tracks were recorded in a 1400m altitude environment, and the whole record was made to be listened at that altitude “while snow melts in a little stream on the path.”',
text: 'Denis Morins newest offering for French label Là-haut Dans LOcéan is a lush exploration of birds chirping in echoing circles, watery samples, and shimmering pads. Cold Ubiquity plays with the tones and pitches of a large variety of bird calls. The second half of the record is more synth-based, with pixelated melodies fluttering throughout. Some of the tracks were recorded in a 1400m altitude environment, and the whole record was made to be listened at that altitude “while snow melts in a little stream on the path.”',
heading: {
html: 'Denis Morin<br><em><a href="https://lahautdanslocean.bandcamp.com/album/cold-ubiquity" target="_blank" rel="noopener noreferrer" data-clickthrough="true">Cold Ubiquity</a></em>\n',
text: 'Denis Morin\nCold Ubiquity'
},
mediaItemRef: 'a42342034'
}
],
genre: {
name: 'Ambient',
url: 'https://bandcamp.com/tag/ambient',
readMoreUrl: 'https://daily.bandcamp.com/genres/ambient'
}
}

View File

@ -0,0 +1,6 @@
import bcfetch from '../../';
import util from 'util';
bcfetch.article.getCategories().then((results) => {
console.log(util.inspect(results, false, null, false));
});

View File

@ -0,0 +1,234 @@
[
{
name: 'featured',
title: '',
sections: [
{
name: 'best-of-year',
title: '',
categories: [
{
url: 'https://daily.bandcamp.com/best-of-2022',
name: 'Best of 2022'
},
{
url: 'https://daily.bandcamp.com/best-of-2021',
name: 'Best of 2021'
},
{
url: 'https://daily.bandcamp.com/best-of-2020',
name: 'Best of 2020'
},
{
url: 'https://daily.bandcamp.com/best-of-2019',
name: 'Best of 2019'
},
{
url: 'https://daily.bandcamp.com/best-of-2018',
name: 'Best of 2018'
},
{
url: 'https://daily.bandcamp.com/best-of-2017',
name: 'Best of 2017'
},
{
url: 'https://daily.bandcamp.com/best-of-2016',
name: 'Best of 2016'
}
]
},
{
name: 'best-of',
title: '',
categories: [
{
url: 'https://daily.bandcamp.com/best-ambient',
name: 'Best Ambient'
},
{
url: 'https://daily.bandcamp.com/best-beat-tapes',
name: 'Best Beat Tapes'
},
{
url: 'https://daily.bandcamp.com/best-dance-12s',
name: 'Best Dance 12”s'
},
{
url: 'https://daily.bandcamp.com/best-contemporary-classical',
name: 'Best Contemporary Classical'
},
{
url: 'https://daily.bandcamp.com/best-electronic',
name: 'Best Electronic'
},
{
url: 'https://daily.bandcamp.com/best-experimental',
name: 'Best Experimental'
},
{
url: 'https://daily.bandcamp.com/best-hip-hop',
name: 'Best Hip-Hop'
},
{
url: 'https://daily.bandcamp.com/best-jazz',
name: 'Best Jazz'
},
{
url: 'https://daily.bandcamp.com/best-metal',
name: 'Best Metal'
},
{
url: 'https://daily.bandcamp.com/best-punk',
name: 'Best Punk'
},
{
url: 'https://daily.bandcamp.com/best-reissues',
name: 'Best Reissues'
},
{
url: 'https://daily.bandcamp.com/best-soul',
name: 'Best Soul'
}
]
}
]
},
{
name: 'franchises',
title: 'Franchises',
categories: [
{ url: 'https://daily.bandcamp.com/lists', name: 'Lists' },
{ url: 'https://daily.bandcamp.com/features', name: 'Features' },
{
url: 'https://daily.bandcamp.com/album-of-the-day',
name: 'Album of the Day'
},
{
url: 'https://daily.bandcamp.com/acid-test',
name: 'Acid Test'
},
{
url: 'https://daily.bandcamp.com/bandcamp-navigator',
name: 'Bandcamp Navigator'
},
{ url: 'https://daily.bandcamp.com/big-ups', name: 'Big Ups' },
{
url: 'https://daily.bandcamp.com/certified',
name: 'Certified'
},
{ url: 'https://daily.bandcamp.com/gallery', name: 'Gallery' },
{
url: 'https://daily.bandcamp.com/hidden-gems',
name: 'Hidden Gems'
},
{
url: 'https://daily.bandcamp.com/high-scores',
name: 'High Scores'
},
{
url: 'https://daily.bandcamp.com/label-profile',
name: 'Label Profile'
},
{
url: 'https://daily.bandcamp.com/lifetime-achievement',
name: 'Lifetime Achievement'
},
{
url: 'https://daily.bandcamp.com/resonance',
name: 'Resonance'
},
{
url: 'https://daily.bandcamp.com/scene-report',
name: 'Scene Report'
},
{
url: 'https://daily.bandcamp.com/seven-essential-releases',
name: 'Seven Essential Releases'
},
{
url: 'https://daily.bandcamp.com/shortlist',
name: 'Shortlist'
},
{
url: 'https://daily.bandcamp.com/the-merch-table',
name: 'The Merch Table'
}
]
},
{
name: 'genres',
title: 'Genres',
categories: [
{
url: 'https://daily.bandcamp.com/genres/acoustic',
name: 'Acoustic'
},
{
url: 'https://daily.bandcamp.com/genres/alternative',
name: 'Alternative'
},
{
url: 'https://daily.bandcamp.com/genres/ambient',
name: 'Ambient'
},
{ url: 'https://daily.bandcamp.com/genres/blues', name: 'Blues' },
{
url: 'https://daily.bandcamp.com/genres/classical',
name: 'Classical'
},
{
url: 'https://daily.bandcamp.com/genres/comedy',
name: 'Comedy'
},
{
url: 'https://daily.bandcamp.com/genres/country',
name: 'Country'
},
{
url: 'https://daily.bandcamp.com/genres/devotional',
name: 'Devotional'
},
{
url: 'https://daily.bandcamp.com/genres/electronic',
name: 'Electronic'
},
{
url: 'https://daily.bandcamp.com/genres/experimental',
name: 'Experimental'
},
{ url: 'https://daily.bandcamp.com/genres/folk', name: 'Folk' },
{ url: 'https://daily.bandcamp.com/genres/funk', name: 'Funk' },
{
url: 'https://daily.bandcamp.com/genres/hip-hop-rap',
name: 'Hip-Hop/Rap'
},
{ url: 'https://daily.bandcamp.com/genres/jazz', name: 'Jazz' },
{ url: 'https://daily.bandcamp.com/genres/latin', name: 'Latin' },
{ url: 'https://daily.bandcamp.com/genres/metal', name: 'Metal' },
{ url: 'https://daily.bandcamp.com/genres/pop', name: 'Pop' },
{ url: 'https://daily.bandcamp.com/genres/punk', name: 'Punk' },
{
url: 'https://daily.bandcamp.com/genres/r-b-soul',
name: 'R&B/Soul'
},
{
url: 'https://daily.bandcamp.com/genres/reggae',
name: 'Reggae'
},
{ url: 'https://daily.bandcamp.com/genres/rock', name: 'Rock' },
{
url: 'https://daily.bandcamp.com/genres/soundtrack',
name: 'Soundtrack'
},
{
url: 'https://daily.bandcamp.com/genres/spoken-word',
name: 'Spoken Word'
},
{ url: 'https://daily.bandcamp.com/genres/world', name: 'World' },
{
url: 'https://daily.bandcamp.com/genres/podcasts',
name: 'Podcasts'
}
]
}
]

11
examples/article/list.ts Normal file
View File

@ -0,0 +1,11 @@
import bcfetch from '../../';
import util from 'util';
const params = {
categoryUrl: 'https://daily.bandcamp.com/best-ambient',
page: 2
};
bcfetch.article.list(params).then((results) => {
console.log(util.inspect(results, false, null, false));
});

View File

@ -0,0 +1,307 @@
{
articles: [
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-ambient-music-on-bandcamp-august-2020',
title: 'The Best Ambient Music on Bandcamp: August 2020',
date: 'September 01, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0021431652_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-ambient-music-on-bandcamp-july-2020',
title: 'The Best Ambient Music on Bandcamp: July 2020',
date: 'August 06, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0021091675_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-ambient-music-on-bandcamp-june-2020',
title: 'The Best Ambient Music on Bandcamp: June 2020',
date: 'July 02, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0020691450_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-april-2020',
title: 'The Best New Ambient Music on Bandcamp: April 2020',
date: 'May 01, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0019742632_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-march-2020',
title: 'The Best New Ambient Music on Bandcamp: March 2020',
date: 'April 03, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0019297568_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-february-2020',
title: 'The Best New Ambient Music on Bandcamp: February 2020',
date: 'March 06, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0018875275_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-january-2020',
title: 'The Best New Ambient Music on Bandcamp: January 2020',
date: 'January 29, 2020',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0018520240_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-on-bandcamp-november-2019',
title: 'The Best New Ambient on Bandcamp: November 2019',
date: 'December 04, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0018037661_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-october-2019',
title: 'The Best New Ambient Music on Bandcamp: October 2019',
date: 'October 28, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017912007_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-on-bandcamp-september-2019',
title: 'The Best New Ambient on Bandcamp: September 2019',
date: 'October 02, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911937_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-on-bandcamp-august-2019',
title: 'The Best New Ambient on Bandcamp: August 2019',
date: 'August 23, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911821_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-on-bandcamp-july-2019',
title: 'The Best New Ambient on Bandcamp: July 2019',
date: 'August 02, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911758_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-on-bandcamp-june-2019',
title: 'The Best New Ambient on Bandcamp: June 2019',
date: 'July 01, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911671_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-may-2019',
title: 'The Best New Ambient on Bandcamp: May 2019',
date: 'May 30, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911570_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-on-bandcamp-april-2019',
title: 'The Best New Ambient on Bandcamp: April 2019',
date: 'May 02, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911488_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-music-march-2019',
title: 'The Best New Ambient Music on Bandcamp: March 2019',
date: 'April 01, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911390_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-music-on-bandcamp-february-2019',
title: 'The Best New Ambient Music on Bandcamp: February 2019',
date: 'February 27, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911294_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-on-bandcamp-january-2019',
title: 'The Best New Ambient on Bandcamp: January 2019',
date: 'February 05, 2019',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0030523501_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-november-2018',
title: 'The Best New Ambient Music on Bandcamp, November 2018',
date: 'November 21, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0028920513_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-ambient-october-2018',
title: 'The Best New Ambient Music on Bandcamp, October 2018',
date: 'October 18, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017911002_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-september-2018',
title: 'The Best New Ambient Music on Bandcamp, September 2018',
date: 'October 05, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910962_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-music-on-bandcamp-july-2018',
title: 'The Best New Ambient Music on Bandcamp, July 2018',
date: 'August 01, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910788_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-june-2018',
title: 'The Best New Ambient Music on Bandcamp, June 2018',
date: 'June 22, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910685_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-may-2018',
title: 'The Best New Ambient Music on Bandcamp, May 2018',
date: 'May 23, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910601_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-ambient-april-2018',
title: 'The Best New Ambient Music on Bandcamp, April 2018',
date: 'April 23, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017912162_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-march-2018',
title: 'The Best New Ambient Music on Bandcamp, March 2018',
date: 'March 27, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017912164_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-ambient-february-2018',
title: 'The Best New Ambient Music on Bandcamp, February 2018',
date: 'February 27, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910366_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/the-best-new-ambient-january-2018',
title: 'The Best New Ambient Music on Bandcamp, January 2018',
date: 'January 24, 2018',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910284_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-november-2017',
title: 'The Best New Ambient Music on Bandcamp, October/November 2017',
date: 'November 29, 2017',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0017910161_150.jpg'
},
{
url: 'https://daily.bandcamp.com/best-ambient/best-new-ambient-september-2017',
title: 'The Best New Ambient Music on Bandcamp, September 2017',
date: 'September 28, 2017',
category: {
name: 'BEST AMBIENT',
url: 'https://daily.bandcamp.com/best-ambient'
},
imageUrl: 'https://f4.bcbits.com/img/0011401744_150.jpg'
}
],
total: 61,
start: 31,
end: 60
}

View File

@ -0,0 +1,30 @@
import bcfetch, { AutocompleteAPIGetSuggestionsParams, AutocompleteItemType } from '../../';
import util from 'util';
const autocompleteTagParams = {
itemType: AutocompleteItemType.Tag,
query: 'ambient',
limit: 10
} as const;
const autocompleteLocationParams = {
itemType: AutocompleteItemType.Location,
query: 'Fin',
limit: 10
} as const;
function printResults(results: any, params: AutocompleteAPIGetSuggestionsParams) {
const title = `Autocomplete ${params.itemType.toLowerCase()} suggestions: ${params.query}, Limit: ${params.limit}`;
console.log(title);
console.log('-'.repeat(title.length));
console.log(util.inspect(results, false, null, false));
console.log('');
}
bcfetch.autocomplete.getSuggestions(autocompleteTagParams).then((results) => {
printResults(results, autocompleteTagParams);
});
bcfetch.autocomplete.getSuggestions(autocompleteLocationParams).then((results) => {
printResults(results, autocompleteLocationParams);
});

Some files were not shown because too many files have changed in this diff Show More