The eagle.folder API allows you to easily create new folders or access existing ones in the current application.
// Get the currently selected folder in the Eagle applicationlet folder = (awaiteagle.folder.getSelected())[0];// Modify propertiesfolder.name ='New Folder Name';folder.description ='New description...';// Save changesawaitfolder.save();
🦄 Best Practice: To ensure data safety, please use the save() method provided by the API for data access and modification. Avoid directly modifying the metadata.json or any files under the Eagle resource library.
Returns Promise<folders: Folder[]> - Query result folders
getAll()
Get all folders.
Returns Promise<folders: Folder[]> - Query result folders
getById(folderId)
Get the folder corresponding to folderId.
folderId string - Folder id
Returns Promise<folder: Folder> - Query result folder
getByIds(folderIds)
Get an array of folders corresponding to folderIds.
folderIds string[] - Array of folder ids
Returns Promise<folders: Folder[]> - Query result folders
getSelected()
Get the currently selected folders in the application.
Returns Promise<folders: Folder[]> - folders
getRecents()
Get the recently used folders.
Returns Promise<folders: Folder[]> - folders
open(folderId)
Eagle will open the folder corresponding to folderId.
Returns Promise<void>
Tip: You can also directly call the folder instance's open() method to open the folder.
Class: Folder
An Object type returned by the Folder API get, provides modification and save functions.
🦄 Best Practice: To ensure data security, please use the save() method provided by the Folder instance for data access and modification, and avoid directly modifying the metadata.json or any files under the Eagle repository.
Instance Methods
save()
Save all modifications.
Returns Promise<void>
open()
Eagle will open this folder.
Returns Promise<void>
Tip: You can also directly call eagle.folder.open(folderId) method to open the folder.
Instance Properties
The Folder instance includes the following properties:
id string
Read-only, folder id.
name string
Folder name.
description string
Folder description/introduction.
icon string
Read-only, folder icon.
iconColor string
Folder icon color.
Note: This property was read-only before Eagle 4.0 build12 and did not support modification. Starting from Eagle 4.0 build12, this property can be modified.
createdAt Integer
Read-only, folder creation time (timestamp).
parent string
Parent folder ID.
Note: This property was read-only before Eagle 4.0 build12 and did not support modification. Starting from Eagle 4.0 build12, this property can be modified, allowing you to move folders to different parent folders by changing this property.
children Folder[]
Read-only, an array of child folders.
Static Properties
IconColor Object
Provides predefined folder icon color constants for setting the folder's iconColor property.
Usage Examples:
🦄 Best Practice: It's recommended to use eagle.folder.IconColor constants instead of string values directly for better code hints and type safety.
let parentFolder = await eagle.folder.getById('folder_id');
let subFolder = await eagle.folder.createSubfolder(parentFolder.id, {
name: 'Subfolder',
description: 'Subfolder description.',
});
// Get the folder corresponding to the specified id
let folders = await eagle.folder.get({
ids: ['folder_id1', 'folder_id2']
});
// Get currently selected folders in the application
let folders = await eagle.folder.get({
isSelected: true
});
let folders = await eagle.folder.getAll();
let folder = await eagle.folder.getById('folder_id');
let folders = await eagle.folder.getByIds(['folder_id1', 'folder_id2']);
let folders = await eagle.folder.getSelected();
let folders = await eagle.folder.getRecents();
await eagle.folder.open('folder_id');
// Equivalent to
let folder = await eagle.folder.getById('folder_id');
await folder.open();
let folder = await eagle.folder.getById('folder_id');
folder.name = 'New Folder Name';
// Save modifications
await folder.save();
let folder = await eagle.folder.getById('folder_id');
await folder.open();
// Equivalent to
await eagle.folder.open('folder_id');
let folder = await eagle.folder.getById('folder_id');
// Set folder color to red
folder.iconColor = eagle.folder.IconColor.Red;
// Or use string value directly
folder.iconColor = 'red';
// Save changes
await folder.save();
let date = new Date(folder.createdAt);
let folder = await eagle.folder.getById('folder_id');
// Get parent folder ID
console.log(folder.parent);
// Change parent folder (move folder to another parent folder)
folder.parent = 'parent_folder_id';
await folder.save();
// Move to root directory (set to null or undefined)
folder.parent = null;
await folder.save();
let children = folder.children;
console.log(children[0]);
await children[0].open();
let folder = await eagle.folder.getById('folder_id');
// Use color constants to set folder color
folder.iconColor = eagle.folder.IconColor.Blue;
await folder.save();
// Batch set multiple folder colors
let folders = await eagle.folder.getAll();
for (let i = 0; i < folders.length; i++) {
if (i % 2 === 0) {
folders[i].iconColor = eagle.folder.IconColor.Green;
} else {
folders[i].iconColor = eagle.folder.IconColor.Purple;
}
await folders[i].save();
}