Class: PsyArxivPlugin
Defined in: src/plugins/builtin/psyarxiv.ts:218
PsyArXiv integration plugin.
Remarks
Fetches psychology eprints from PsyArXiv via OSF Eprints API and imports them into the Chive AppView cache. Users can claim eprints they authored.
Extends ImportingPlugin for standardized import/claiming workflow.
Example
const plugin = new PsyArxivPlugin();
await manager.loadBuiltinPlugin(plugin);
Extends
Implements
Constructors
new PsyArxivPlugin()
new PsyArxivPlugin():
PsyArxivPlugin
Returns
Inherited from
Properties
cache
protectedcache:ICacheProvider
Defined in: src/plugins/builtin/base-plugin.ts:88
Cache provider (available after initialization).
Inherited from
context
protectedcontext:IPluginContext
Defined in: src/plugins/builtin/base-plugin.ts:78
Plugin context (available after initialization).
Inherited from
id
readonlyid:"pub.chive.plugin.psyarxiv"='pub.chive.plugin.psyarxiv'
Defined in: src/plugins/builtin/psyarxiv.ts:222
Plugin ID.
Implementation of
Overrides
importService
protectedimportService:IImportService
Defined in: src/plugins/core/importing-plugin.ts:83
Import service instance.
Remarks
Set during initialization via dependency injection from context.
Inherited from
logger
protectedlogger:ILogger
Defined in: src/plugins/builtin/base-plugin.ts:83
Logger instance (available after initialization).
Inherited from
manifest
readonlymanifest:IPluginManifest
Defined in: src/plugins/builtin/psyarxiv.ts:237
Plugin manifest.
Implementation of
Overrides
metrics
protectedmetrics:IMetrics
Defined in: src/plugins/builtin/base-plugin.ts:93
Metrics provider (available after initialization).
Inherited from
rateLimitDelayMs
protectedrateLimitDelayMs:number=1000
Defined in: src/plugins/core/importing-plugin.ts:97
Minimum delay between requests in milliseconds.
Remarks
Override in subclass to set source-specific rate limit. Default: 1000ms (1 request per second)
Inherited from
ImportingPlugin.rateLimitDelayMs
source
readonlysource:"psyarxiv"
Defined in: src/plugins/builtin/psyarxiv.ts:227
Import source identifier.
Overrides
supportsSearch
readonlysupportsSearch:true
Defined in: src/plugins/builtin/psyarxiv.ts:232
Indicates this plugin supports on-demand search.
Implementation of
SearchablePlugin.supportsSearch
Methods
buildEprintUrl()
buildEprintUrl(
externalId):string
Defined in: src/plugins/builtin/psyarxiv.ts:350
Builds the canonical URL for a PsyArXiv eprint.
Parameters
externalId
string
Eprint ID
Returns
string
Full URL to the eprint
Overrides
ImportingPlugin.buildEprintUrl
buildPdfUrl()
buildPdfUrl(
externalId):null|string
Defined in: src/plugins/builtin/psyarxiv.ts:360
Builds the PDF URL for a PsyArXiv eprint.
Parameters
externalId
string
Eprint ID
Returns
null | string
PDF download URL
Overrides
fetchEprintDetails()
fetchEprintDetails(
eprintId):Promise<null|PsyArxivPaper>
Defined in: src/plugins/builtin/psyarxiv.ts:509
Fetches details for a specific eprint.
Parameters
eprintId
string
PsyArXiv eprint ID
Returns
Promise<null | PsyArxivPaper>
Paper details or null
fetchEprints()
fetchEprints(
options?):AsyncIterable<ExternalEprint>
Defined in: src/plugins/builtin/psyarxiv.ts:296
Fetches eprints from PsyArXiv.
Parameters
options?
Fetch options (limit, cursor)
Returns
AsyncIterable<ExternalEprint>
Async iterable of external eprints
Overrides
getConfig()
protectedgetConfig<T>(key):undefined|T
Defined in: src/plugins/builtin/base-plugin.ts:226
Gets a configuration value with type safety.
Type Parameters
• T
Parameters
key
string
Configuration key
Returns
undefined | T
Configuration value or undefined
Example
const apiKey = this.getConfig<string>('apiKey');
Inherited from
getExistingImport()
getExistingImport(
externalId):Promise<null|ImportedEprint>
Defined in: src/plugins/core/importing-plugin.ts:167
Gets an existing import by external ID.
Parameters
externalId
string
Source-specific identifier
Returns
Promise<null | ImportedEprint>
Imported eprint or null if not found
Inherited from
ImportingPlugin.getExistingImport
getPaper()
getPaper(
id):Promise<null|PsyArxivPaper>
Defined in: src/plugins/builtin/psyarxiv.ts:497
Gets a cached paper by ID.
Parameters
id
string
Eprint ID
Returns
Promise<null | PsyArxivPaper>
Paper metadata or null
getRequiredConfig()
protectedgetRequiredConfig<T>(key):T
Defined in: src/plugins/builtin/base-plugin.ts:242
Gets a required configuration value.
Type Parameters
• T
Parameters
key
string
Configuration key
Returns
T
Configuration value
Throws
Error if key not found
Example
const apiKey = this.getRequiredConfig<string>('apiKey');
Inherited from
ImportingPlugin.getRequiredConfig
getState()
getState():
PluginState
Defined in: src/plugins/builtin/base-plugin.ts:162
Gets current plugin state.
Returns
Current lifecycle state
Implementation of
Inherited from
importEprint()
importEprint(
eprint):Promise<ImportedEprint>
Defined in: src/plugins/core/importing-plugin.ts:185
Imports an eprint into the AppView cache.
Parameters
eprint
External eprint data
Returns
Promise<ImportedEprint>
Created or existing imported eprint
Remarks
Performs deduplication and emits import.created event on success.
Throws
Error if import service unavailable
Inherited from
initialize()
initialize(
context):Promise<void>
Defined in: src/plugins/core/importing-plugin.ts:107
Initializes the importing plugin.
Parameters
context
Plugin context with injected dependencies
Returns
Promise<void>
Remarks
Retrieves import service from context and calls onInitialize().
Implementation of
Inherited from
isImported()
isImported(
externalId):Promise<boolean>
Defined in: src/plugins/core/importing-plugin.ts:153
Checks if an eprint has already been imported.
Parameters
externalId
string
Source-specific identifier
Returns
Promise<boolean>
True if already imported
Inherited from
onInitialize()
protectedonInitialize():Promise<void>
Defined in: src/plugins/builtin/psyarxiv.ts:278
Initializes the plugin.
Returns
Promise<void>
Remarks
Sets up rate limiting. No startup bulk import since this plugin uses on-demand search via the search() method.
Overrides
onShutdown()
protectedonShutdown():Promise<void>
Defined in: src/plugins/builtin/base-plugin.ts:211
Override in subclass for shutdown logic.
Returns
Promise<void>
Remarks
Called during shutdown(). Use this to:
- Save state
- Close connections
- Clean up resources
Default implementation does nothing.
Example
protected async onShutdown(): Promise<void> {
await this.saveState();
this.connection?.close();
}
Inherited from
parseExternalId()
parseExternalId(
url):null|string
Defined in: src/plugins/builtin/psyarxiv.ts:370
Parses external ID from a PsyArXiv URL.
Parameters
url
string
PsyArXiv URL
Returns
null | string
Eprint ID or null
Overrides
ImportingPlugin.parseExternalId
rateLimit()
protectedrateLimit():Promise<void>
Defined in: src/plugins/core/importing-plugin.ts:342
Enforces rate limiting for external requests.
Returns
Promise<void>
Remarks
Call this before making external API/HTTP requests. Delays execution if needed to respect rate limit.
Inherited from
recordCounter()
protectedrecordCounter(name,labels?,value?):void
Defined in: src/plugins/builtin/base-plugin.ts:257
Records a counter metric.
Parameters
name
string
Metric name
labels?
Record<string, string>
Optional labels
value?
number
Optional increment value (default 1)
Returns
void
Inherited from
recordGauge()
protectedrecordGauge(name,value,labels?):void
Defined in: src/plugins/builtin/base-plugin.ts:268
Records a gauge metric.