1.40.0 • Published 1 day ago

@platformatic/generators v1.40.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
1 day ago

Platformatic Generator

Generates a Platformatic app programmatically.

Extending default class

The base class BaseGenerator is basically a file writer with some default behaviours.

It should be instantiated with an options object having this properties

  • type: "db" | "service" | "composer"
  • logger: A pino-like logger object. If not provided a fake logger with no output will be used
  • questions: An array of custom questions object to provide to inquirer. Default to []

The setConfig({...}) function should be called to set the config generator. BaseGenerator supports the bare minumium set of options which are common to all types of apps

  • targetDirectory Where in the local filesystem the app will be created
  • port: The port where the app should listen
  • hostname: The hostname where the app should listen
  • plugin: Whether to create or not a sample plugin file structure
  • typescript: true|false
  • initGitRepository: Inits the git repository
  • dependencies: A key value object to add dependencies in package.json file
  • devDependencies: A key value object to add dev-dependencies in package.json file
  • staticWorkspaceGitHubActions: Creates the GitHub action to deploy in a static workspace in Platformatic Cloud
  • dynamicWorkspaceGitHubActions: Creates the GitHub action to deploy in a dynamic workspace in Platformatic Cloud
  • env: A key/value object that will be automatically appended to the generated .env file

Usage

This is the simplest example to create a Platformatic Service app into /path/to/app

const { BaseGenerator } = require('@platformatic/generators')

async function main() {
  const gen = new BaseGenerator({
    type: 'service'    
  })
  gen.setConfig({
    targetDirectory: '/path/to/app'
  })
  await gen.run()
}

main()

The run() function will call the prepare() function which prepare all files in memory, which will be written by the writeFiles() function.

Hooks

In order to customize the behavior of a subclass there are some functions that may be implemented

_getConfigFileContents

Returns an object that will be serialized with JSON.stringify method. It will be saved in the platformatic.${TYPE}.json file

_beforePrepare

Called from prepare function. You have already access to the current fastify version (this.fastifyVersion) and platformatic version (this.platformaticVersion)

_afterPrepare

Called at the end of prepare function body

1.40.0

1 day ago

1.39.0

12 days ago

1.38.0

12 days ago

1.37.1

20 days ago

1.37.0

21 days ago

1.36.2

29 days ago

1.36.1

1 month ago

1.36.0

1 month ago

1.35.5

1 month ago

1.35.3

1 month ago

1.35.4

1 month ago

1.35.1

1 month ago

1.35.2

1 month ago

1.35.0

1 month ago

1.32.0

2 months ago

1.33.0

2 months ago

1.31.1

2 months ago

1.31.0

2 months ago

1.30.0

2 months ago

1.29.0

2 months ago

1.28.1

2 months ago

1.28.0

2 months ago

1.27.0

2 months ago

1.26.0

3 months ago

1.25.0

3 months ago

1.24.0

3 months ago

1.23.0

3 months ago

1.22.0

3 months ago

1.21.0

3 months ago

1.21.1

3 months ago

1.20.3

3 months ago

1.20.2

3 months ago

1.20.1

4 months ago

1.20.0

4 months ago

1.19.0

4 months ago

1.18.0

4 months ago

1.17.0

4 months ago

1.16.0

5 months ago

1.15.1

5 months ago

1.15.0

5 months ago

1.14.4

6 months ago

1.14.3

6 months ago

1.14.2

6 months ago

1.14.1

6 months ago

1.14.0

6 months ago

1.13.7

6 months ago

1.13.6

6 months ago

1.13.5

6 months ago

1.13.4

6 months ago

1.13.3

6 months ago

1.13.2

6 months ago

1.13.1

6 months ago

1.13.0

6 months ago