Home

Awesome

WARNING: This repository is no longer maintained :warning:

The generated content is now available in our Swift static application.

This repository will not be updated. The repository will be kept available in read-only mode.

generator-swiftserver

Build Status codecov Version DownloadsMonthly DownloadsTotal License Greenkeeper badge

This module is a Yeoman generator for creating REST webservices based on the Kitura web framework with the Swift language.

This generator and the Yeoman library runs on Node.js and generates a Swift 5.0 application.

Contents

  1. Prerequisites
  2. Installation
  3. Usage
  4. Generated Artifacts
  5. Development
  6. Testing
  7. Contributing

Prerequisites

To use this module, you will need Node.js and Swift 5.0 installed on your Linux or macOS system. You can get Node.js from https://nodejs.org and Swift 5.0 from https://swift.org/download.

You will also need the Yeoman command line utility yo installed in your global Node.js module directory.

To install yo, run:

npm install -g yo

Installation

To install generator-swiftserver, run:

npm install -g generator-swiftserver

Usage

To create a Swift Server Generator project with no models defined, run:

yo swiftserver

To add a data model to your generated project, cd to the new project directory and run:

yo swiftserver:<model>

For more information on data models, check out this guide on Kitura.io.

Options

You can also change how generator-swiftserver is invoked by choosing options:

yo swiftserver [options]
OptionTypeDescription
--initn/aGenerate basic default scaffold without prompting user for input.
--skip-buildn/aSkip building the generated application
--single-shotn/aCreates application without including generator metadata files
--bluemixJsonInvoke generator-swiftserver using a bluemix json object
--nameStringProject name
--typeStringGive a specific type of application to generate. (web, bff, scaffold, crud)
--metricsBooleanGenerate embedded metrics dashboard for project
--dockerBooleanGenerate Dockerfile for project
--healthcheckBooleanAdd health checking to project
--openapiBooleanAdd Kitura-OpenAPI to project
--specJsonInvoke generator-swiftserver using a spec json object

Run

To run the generated server, use: <project-dir>/.build/debug/<app-name>

Generated Artifacts

FilePurpose
DockerfileConfiguration file for the run container
Dockerfile-toolsConfiguration file for the tools container
LICENSELicense for generated project
Package.resolvedResults of dependency resolution from Swift Package Manager
Package.swiftSwift file containing dependencies and targets for project
README.mdInstructions for building, running, and deploying the project
Sources/*Folder containing project source files
Tests/*Folder containing project test files
chart/*Folder containing Kubernetes Helm Chart files for project
cli-config.ymlYaml file containing mappings for various commands, files, and settings, utilized by the cli commands
manifest.ymlYaml file containing various information for deployment to IBM Cloud
spec.jsonJSON file containing information about the project, used to generate the project
myProjectName.xcodeprojGenerated xcodeproj for project

Development

To get started with development, simply clone this repository and link it via npm:

git clone https://github.com/IBM-Swift/generator-swiftserver
cd generator-swiftserver
npm link

Testing

To run the unit tests, run:

npm test

Contributing

To contribute, you will need to fork the repository or branch off the develop branch.

Make sure to follow the conventional commit specification when contributing.

Once you are finished with your changes, run npm test to make sure all tests pass. Then, create a pull request against develop, and a team member will review and merge your pull request.

Once the pull request is merged, an auto generated pull request will be created against master to update the changelog and increase the versioning. After the auto-generated pull request has been merged to master, the version will be bumped and published to npm.