@woodwing/a10-client-sdk
v0.0.4
Published
> This is a BETA version of the Assets 10 client SDK, subject to change
Downloads
234
Keywords
Readme
Assets 10 Client SDK
This is a BETA version of the Assets 10 client SDK, subject to change
Use assets-client-sdk for Assets 6
The Assets Client SDK can be used to build integrations with Assets and contains a plugin context service for UI plugins and provides functionality to request data from the server. Full typings are available which should show up automatically in your IDE.
Installation
npm install --save @woodwing/a10-client-sdk
Now you can either start importing the classes from the library in your Typescript/ES6 project:
import { Assets10Client } from '@woodwing/a10-client-sdk';Or if you include the assets-client-sdk.min.js file manually in an older codebase:
window.AssetsClientSdk.Assets10Client;Usage
To initialize communication, use the static Assets10Client.bootstrap function.
const client = await Assets10Client.bootstrap();You can access the current plugin context data at any point.
const context = client.getPluginContext();
context.configProperties['my_key']
context.app.queryString
context.app.folderSelection
context.app.assetSelection
context.app.userProfileThe following methods are currently available to interact with the client interface:
client.getFieldInfo()
client.getSelection()
client.onSelectionUpdate((payload: SelectedItem[]) => { /* do something */ })
client.openSearch(query: string, sort: string')
client.translate(request: TranslationRequest)
client.openUploadDialog(uploadFolderPath: string)The following actions can be applied to the server to request data or perform updates:
client.search(query: Query)
client.updateBulkByQuery(queryString: string, metadata: Record<string, unknown>)
client.updateBulkById(assetIds: string[], metadata: Record<string, unknown>)
client.copy(source: string, target: string, folderReplacePolicy: string, fileReplacePolicy: string)
client.move(source: string, target: string, folderReplacePolicy: string, fileReplacePolicy: string, callback: (processInfo: ProcessInfoUpdatePayload) => { /* do something */ })
client.remove({ assetIds: string[] })
client.remove({ q: string })
client.remove({ folderPath: string })Models:
SelectedItem: {
id: AssetId;
metadata: Record<string, unknown>;
}
Query: {
q: string;
num: number;
sort: string;
}
ProcessInfoUpdatePayload: {
id: string;
state: string;
progress: number;
total: number;
errorCount: number;
}
TranslationRequest: {
key: string,
params: {
myParamName: 'my_value',
myOtherParamName: 'my_other_value',
}
}
sort: 'field-order'; // filename-asc | assetCreated-desc
folderReplacePolicy: 'AUTO_RENAME' | 'MERGE' | 'ABORT';
fileReplacePolicy: 'AUTO_RENAME' | 'DO_NOTHING' | 'ABORT';