zotero-types
Version:
This package contains type definitions for Zotero (https://www.zotero.org/) plugin.
165 lines (149 loc) • 5.32 kB
TypeScript
/// <reference path="item.d.ts" />
/// <reference path="../../../internal.d.ts" />
declare namespace Zotero {
/*
* Base function for retrieving ids and names of static types stored in the DB
* (e.g. creatorType, fileType, charset, itemType)
*
* Extend using the following code within a child constructor:
*
* Zotero.CachedTypes.apply(this, arguments);
* this.constructor.prototype = new Zotero.CachedTypes();
*
* And the following properties:
*
* this._typeDesc = '';
* this._typeDescPlural = '';
* this._idCol = '';
* this._nameCol = '';
* this._table = '';
*
* Optional properties:
*
* this._allowAdd: Allow new types to be added via .add(name)
* this._ignoreCase: Ignore case when looking for types, and add new types as lowercase
*
* And add .init() to zotero.js
*/
interface CachedTypes {
new (): this;
_types: { [idOrName: string]: _ZoteroTypes.CachedTypes.Type };
_typesArray: _ZoteroTypes.CachedTypes.Type[];
_typeDesc: string;
_idCol: string;
_nameCol: string;
_table: string;
_allowAdd: boolean;
_ignoreCase: boolean;
_hasCustom: boolean;
/**
* Add a new type to the data and return its id. If the type already exists, return its id.
*
* @param {String} name - Type name to add
* @return {Integer|False} - The type id (new or existing), or false if invalid type name
*/
add(name: string): Promise<number | false>;
init(): Promise<void>;
getName(idOrName: number | string): string;
getID(idOrName: number | string): number | false;
getAll(): _ZoteroTypes.CachedTypes.Type[];
getTypes(): _ZoteroTypes.CachedTypes.Type[];
isCustom(idOrName: number | string): boolean; // Currently used only for item types
_getTypesFromDB(where: string, params?: object): Promise<unknown>;
_cacheTypeData(type: _ZoteroTypes.CachedTypes.Type): void;
}
const CreatorTypes: _ZoteroTypes.CreatorTypes;
const ItemTypes: _ZoteroTypes.ItemTypes;
const FileTypes: _ZoteroTypes.FileTypes;
const CharacterSets: _ZoteroTypes.CharacterSets;
const RelationPredicates: _ZoteroTypes.RelationPredicates;
}
declare namespace _ZoteroTypes {
namespace CachedTypes {
interface Type {
custom?: boolean;
id: number;
name: string;
}
}
interface CreatorTypes extends Zotero.CachedTypes {
_typeDesc: "creator type";
_typeDescPlural: "creator types";
_idCol: "creatorTypeID";
_nameCol: "creatorType";
_table: "creatorTypes";
getTypesForItemType(itemTypeID: number): _ZoteroTypes.CachedTypes.Type[];
isValidForItemType(creatorTypeID: number, itemTypeID: number): boolean;
getLocalizedString(idOrName: number | string): string;
itemTypeHasCreators(itemTypeID: number): boolean;
getPrimaryIDForType(itemTypeID: number): number | false;
}
namespace ItemTypes {
type PrimaryTypeName =
| "book"
| "bookSection"
| "journalArticle"
| "newspaperArticle"
| "document";
type HiddenTypeName = "webpage" | "attachment" | "note" | "annotation";
}
interface ItemTypes extends Zotero.CachedTypes {
customIDOffset: 10000;
_typeDesc: "item type";
_typeDescPlural: "item types";
_idCol: "itemTypeID";
_nameCol: "typeName";
_table: "itemTypesCombined";
_hasCustom: true;
getPrimaryTypes(): _ZoteroTypes.CachedTypes.Type[];
getSecondaryTypes(): _ZoteroTypes.CachedTypes.Type[];
getHiddenTypes(): _ZoteroTypes.CachedTypes.Type[];
getLocalizedString(idOrName: number | string): string;
getImageSrc(itemType: _ZoteroTypes.Item.ItemType): _ZoteroTypes.IconURI;
}
interface FileTypes extends Zotero.CachedTypes {
_typeDesc: "file type";
_typeDescPlural: "file types";
_idCol: "fileTypeID";
_nameCol: "fileType";
_table: "fileTypes";
/**
* @return {Promise<Integer>} fileTypeID
*/
getIDFromMIMEType(mimeType: string): Promise<number>;
}
interface CharacterSets extends Zotero.CachedTypes {
_typeDesc: "character set";
_typeDescPlural: "character sets";
_idCol: "charsetID";
_nameCol: "charset";
_table: "charsets";
_ignoreCase: true;
/**
* Converts charset label to charset name
* @link https://encoding.spec.whatwg.org/#names-and-labels
* @param {String} charset
* @return {String|Boolean} Normalized charset name or FALSE if not recognized
*/
toCanonical(charset: string): string | false;
/**
* Normalizes charset label to conform to DOM standards
* @link https://dom.spec.whatwg.org/#dom-document-characterset
* @param {String} charset
* @param {Boolean} mozCompat Whether to return a Mozilla-compatible label
* for use in Gecko internal APIs.
* https://developer.mozilla.org/en-US/docs/Gecko/Character_sets_supported_by_Gecko
* @return {String|Boolean} Normalized label or FALSE is not recognized
*/
toLabel(charset: string, mozCompat?: boolean): string | false;
}
interface RelationPredicates extends Zotero.CachedTypes {
_typeDesc: "relation predicate";
_typeDescPlural: "relation predicates";
_idCol: "predicateID";
_nameCol: "predicate";
_table: "relationPredicates";
_ignoreCase: false;
_allowAdd: true;
}
}