Skip to main content

Class: AliasStore<T, StoreName>

The store class which contains AliasPieces.

Extends

Type parameters

Type parameterValue
T extends AliasPiece-
StoreName extends StoreRegistryKeyStoreRegistryKey

Constructors

new AliasStore()

new AliasStore<T, StoreName>(constructor: AbstractConstructor<T>, options: StoreOptions<T, StoreName>): AliasStore<T, StoreName>

Parameters

ParameterTypeDescription
constructorAbstractConstructor<T>The piece constructor this store loads.
optionsStoreOptions<T, StoreName>The options for the store.

Returns

AliasStore<T, StoreName>

Inherited from

Store . constructor

Source

projects/pieces/src/lib/structures/Store.ts:80

Properties

#calledLoadAll

private #calledLoadAll: boolean = false

Whether or not the store has called loadAll at least once.

Inherited from

Store . #calledLoadAll

Source

projects/pieces/src/lib/structures/Store.ts:69


#walk()

private #walk: (store: Store<T, never>, path: string, logger?: null | StoreLogger) => AsyncIterableIterator<string>

The walk function for the store.

Parameters

ParameterType
storeStore<T, never>
pathstring
logger?null | StoreLogger

Returns

AsyncIterableIterator<string>

Inherited from

Store . #walk

Source

projects/pieces/src/lib/structures/Store.ts:74


Constructor

readonly Constructor: AbstractConstructor<T>

Inherited from

Store . Constructor

Source

projects/pieces/src/lib/structures/Store.ts:56


aliases

readonly aliases: Collection<string, T>

The aliases referencing to pieces.

Source

projects/pieces/src/lib/structures/AliasStore.ts:13


name

readonly name: StoreName

Inherited from

Store . name

Source

projects/pieces/src/lib/structures/Store.ts:57


paths

readonly paths: Set<string>

Inherited from

Store . paths

Source

projects/pieces/src/lib/structures/Store.ts:58


strategy

readonly strategy: ILoaderStrategy<T>

Inherited from

Store . strategy

Source

projects/pieces/src/lib/structures/Store.ts:59


defaultStrategy

static defaultStrategy: ILoaderStrategy<any>

The default strategy, defaults to LoaderStrategy, which is constructed on demand when a store is constructed, when none was set beforehand.

Inherited from

Store . defaultStrategy

Source

projects/pieces/src/lib/structures/Store.ts:377


logger

static logger: null | StoreLogger = null

The default logger, defaults to null.

Inherited from

Store . logger

Source

projects/pieces/src/lib/structures/Store.ts:382

Accessors

container

get container(): Container

A reference to the Container object for ease of use.

See

container

Returns

Container

Source

projects/pieces/src/lib/structures/Store.ts:97

Methods

construct()

construct(Ctor: ILoaderResultEntry<T>, data: HydratedModuleData): T

Constructs a Piece instance.

Parameters

ParameterTypeDescription
CtorILoaderResultEntry<T>The Piece's constructor used to build the instance.
dataHydratedModuleDataThe module's information

Returns

T

An instance of the constructed piece.

Inherited from

Store . construct

Source

projects/pieces/src/lib/structures/Store.ts:335


get()

get(key: string): undefined | T

Looks up the name by the store, falling back to an alias lookup.

Parameters

ParameterTypeDescription
keystringThe key to look for.

Returns

undefined | T

Overrides

Store.get

Source

projects/pieces/src/lib/structures/AliasStore.ts:19


has()

has(key: string): boolean

Checks whether a key is in the store, or is an alias

Parameters

ParameterTypeDescription
keystringThe key to check

Returns

boolean

Overrides

Store.has

Source

projects/pieces/src/lib/structures/AliasStore.ts:27


insert()

insert(piece: T): Promise<T>

Inserts a piece into the store, and adds all the aliases.

Parameters

ParameterTypeDescription
pieceTThe piece to be inserted into the store.

Returns

Promise<T>

The inserted piece.

Overrides

Store . insert

Source

projects/pieces/src/lib/structures/AliasStore.ts:54


load()

load(root: string, path: string): Promise<T[]>

Loads one or more pieces from a path.

Parameters

ParameterTypeDescription
rootstringThe root directory the file is from.
pathstringThe path of the file to load, relative to the root.

Returns

Promise<T[]>

All the loaded pieces.

Inherited from

Store . load

Source

projects/pieces/src/lib/structures/Store.ts:182


loadAll()

loadAll(): Promise<void>

Loads all pieces from all directories specified by paths.

Returns

Promise<void>

Inherited from

Store . loadAll

Source

projects/pieces/src/lib/structures/Store.ts:241


loadPiece()

loadPiece(entry: StoreManuallyRegisteredPiece<StoreName>): Promise<void>

Adds a piece into the store's list of manually registered pieces. If () was called, the piece will be loaded immediately, otherwise it will be queued until () is called.

All manually registered pieces will be kept even after they are loaded to ensure they can be loaded again if () is called again.

Parameters

ParameterTypeDescription
entryStoreManuallyRegisteredPiece<StoreName>The entry to load.

Returns

Promise<void>

Inherited from

Store . loadPiece

Remarks

  • Pieces loaded this way will have their root and path set to VirtualPath, and as such, cannot be reloaded.
  • This method is useful in environments where file system access is limited or unavailable, such as when using Serverless Computing.
  • This method will always throw a TypeError if entry.piece is not a class.
  • This method will always throw a LoaderError if the piece does not extend the store's piece constructor.
  • This operation is atomic, if any of the above errors are thrown, the piece will not be loaded.

Seealso

()

Since

3.8.0

Example

import { container } from '@sapphire/pieces';

class PingCommand extends Command {
// ...
}

container.stores.get('commands').loadPiece({
name: 'ping',
piece: PingCommand
});

Source

projects/pieces/src/lib/structures/Store.ts:154


registerPath()

registerPath(path: Path): this

Registers a directory into the store.

Parameters

ParameterTypeDescription
pathPathThe path to be added.

Returns

this

Inherited from

Store . registerPath

Example

store
.registerPath(resolve('commands'))
.registerPath(resolve('third-party', 'commands'));

Source

projects/pieces/src/lib/structures/Store.ts:111


resolve()

resolve(name: string | T): T

Resolves a piece by its name or its instance.

Parameters

ParameterTypeDescription
namestring | TThe name of the piece or the instance itself.

Returns

T

The resolved piece.

Inherited from

Store . resolve

Source

projects/pieces/src/lib/structures/Store.ts:282


unload()

unload(name: string | T): Promise<T>

Unloads a piece given its instance or its name, and removes all the aliases.

Parameters

ParameterTypeDescription
namestring | TThe name of the file to load.

Returns

Promise<T>

Returns the piece that was unloaded.

Overrides

Store . unload

Source

projects/pieces/src/lib/structures/AliasStore.ts:36


unloadAll()

unloadAll(): Promise<T[]>

Unloads all pieces from the store.

Returns

Promise<T[]>

Inherited from

Store . unloadAll

Source

projects/pieces/src/lib/structures/Store.ts:225