1.0.3 • Published 9 months ago

apify-actor-config v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Apify actor config

Write Apify actor config in JS/TS 😇

Features

  • Defined Apify's actor.json in JS/TS
  • Use CLI to export actor.js to JSON
  • Types for the Actor config

Getting started

Install

npm i apify-actor-config

Write Actor config in JS/TS

The file must export the config as the default export

See full example in ./examples/config.ts.

import {
  createActorConfig,
  createActorInputSchema,
  createBooleanField,
  createIntegerField,
  createObjectField,
  createStringField,
  createArrayField,
  Field,
  ActorInputSchema,
} from 'apify-actor-config';

// Define fields, typed based on their "type" and "editor" properties.
const proxyInput: Record<'proxy', Field> = {
  proxy: createObjectField({
    title: 'Proxy configuration',
    type: 'object',
    description: 'Select proxies to be used by your crawler.',
    editor: 'proxy',
    sectionCaption: 'Proxy',
    sectionDescription: 'Configure the proxy',
  }),
};

// Define input schema
const inputSchema = createActorInputSchema<ActorInputSchema<Record<keyof ActorInput, Field>>>({
  schemaVersion: 1,
  title: 'Example Scraper',
  description: `Configure the Example Scraper.`,
  type: 'object',
  properties: {
    ...proxyInput,
  },
});

// Define output schema
const outputSchema = createActorOutputSchema({
  actorSpecification: 1,
  fields: {
    /** ... */
  },
  views: {
    /** ... */
  },
});

// Now put it all together into Actor config
const config = createActorConfig({
  actorSpecification: 1,
  name: 'example-scraper',
  title: 'Example Scraper',
  description: 'Actor config example showcasing config written in JS/TS',
  version: '0.1',
  dockerfile: './Dockerfile',
  input: inputSchema,
  storages: { 
    dataset: outputSchema,
  }
});

// IMPORTANT: Export as default
export default config;

Generate actor.json

If you use TS, first compile the project.

Then generate actor.json file with apify-actor-config gen command.

Use -c or --config option to specify path to config JS file:

npx apify-actor-config gen -c ./path/to/config.js

By default, actor.json will be saved to ./.actor directory, if it exists, or otherwise to your current working directory.

To specify the output directory, set the -o or --output option

npx apify-actor-config gen -c ./path/to/config.js -o ./other/path/dir

To see all options, use

npx apify-actor-config gen -h

Types

This library provides full typing for all Actor config objects:

Included are also helper functions to create typed objects:

See the files in ./src/types directory for full details.

1.0.3

9 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago