Skip to content

Commit

Permalink
Setup typescript and build pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
cychiuae committed Nov 8, 2018
1 parent 104b824 commit eb6c78f
Show file tree
Hide file tree
Showing 12 changed files with 2,816 additions and 4 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,6 @@ typings/
# FuseBox cache
.fusebox/

# End of https://www.gitignore.io/api/code,node,macos
# End of https://www.gitignore.io/api/code,node,macos

dist/
4 changes: 4 additions & 0 deletions bin/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env node

"use strict";
require("../dist");
4 changes: 4 additions & 0 deletions gulp/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
const requireDir = require("require-dir");
requireDir("./tasks", {
recurse: true
});
14 changes: 14 additions & 0 deletions gulp/tasks/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const path = require("path");

const gulp = require("gulp");
const gulpTS = require("gulp-typescript");
const project = gulpTS.createProject(
path.resolve(__dirname, "../../", "tsconfig.json")
);

gulp.task("build", () => {
return project
.src()
.pipe(project())
.js.pipe(gulp.dest("dist"));
});
10 changes: 10 additions & 0 deletions gulp/tasks/lint.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const gulp = require("gulp");
const tslint = require("gulp-tslint");
const excludeGitignore = require("gulp-exclude-gitignore");
gulp.task("lint", () => {
return gulp
.src("src/**/*.ts")
.pipe(excludeGitignore())
.pipe(tslint())
.pipe(tslint.report());
});
5 changes: 5 additions & 0 deletions gulp/tasks/watch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const gulp = require("gulp");
require("./build");
gulp.task("watch", () => {
return gulp.watch("src/**/*.ts", gulp.series("build"));
});
1 change: 1 addition & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require("./gulp");
1 change: 0 additions & 1 deletion index.js

This file was deleted.

25 changes: 23 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
{
"name": "create-skygear-server",
"version": "1.0.0",
"main": "index.js",
"bin": {
"create-skygear-server": "./bin/index.js"
},
"scripts": {
"build": "gulp build",
"ci-check": "yarn tsc && yarn lint && prettier --list-different 'src/**/*.ts'",
"format": "prettier --write --list-different 'src/**/*.ts'",
"lint": "gulp lint",
"test": "echo \"Error: no test specified\" && exit 1",
"tsc": "tsc --noEmit",
"watch": "gulp watch"
},
"author": "YinYin Chiu <[email protected]>",
"license": "MIT"
"license": "MIT",
"devDependencies": {
"@types/node": "10.12.3",
"gulp": "4.0.0",
"gulp-exclude-gitignore": "1.2.0",
"gulp-tslint": "8.1.3",
"gulp-typescript": "5.0.0-alpha.3",
"require-dir": "1.1.0",
"tslint": "5.11.0",
"typescript": "3.1.6"
}
}
5 changes: 5 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
function sayHello(name: string) {
console.log(`Hello ${name}`);
}

sayHello("World");
87 changes: 87 additions & 0 deletions tslint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"extends": ["tslint:latest"],
"rules": {
"align": [true, "parameters", "statements"],
"arrow-parens": [true, "ban-single-arg-parens"],
"ban": false,
"class-name": true,
"comment-format": [true, "check-space"],
"curly": true,
"eofline": false,
"forin": true,
"indent": [true, "spaces"],
"interface-name": [true, "never-prefix"],
"jsdoc-format": true,
"jsx-no-lambda": false,
"jsx-no-multiline-js": false,
"label-position": true,
"max-line-length": [true, 120],
"member-ordering": [
true,
"public-before-private",
"static-before-instance",
"variables-before-functions"
],
"no-any": false,
"no-arg": true,
"no-bitwise": true,
"no-console": false,
"no-consecutive-blank-lines": true,
"no-construct": true,
"no-debugger": false,
"no-duplicate-variable": true,
"no-empty": true,
"no-eval": true,
"no-shadowed-variable": true,
"no-string-literal": true,
"no-switch-case-fall-through": true,
"no-trailing-whitespace": false,
"no-unused-expression": true,
"no-var-requires": false,
"object-literal-sort-keys": false,
"one-line": [
true,
"check-catch",
"check-else",
"check-open-brace",
"check-whitespace"
],
"ordered-imports": false,
"quotemark": [true, "double", "jsx-double", "avoid-escape"],
"radix": true,
"semicolon": [true, "always", "ignore-bound-class-methods"],
"switch-default": false,

"trailing-comma": [false],

"triple-equals": [true, "allow-null-check"],
"typedef": [true, "parameter", "property-declaration"],
"typedef-whitespace": [
true,
{
"call-signature": "nospace",
"index-signature": "nospace",
"parameter": "nospace",
"property-declaration": "nospace",
"variable-declaration": "nospace"
}
],
"variable-name": [
true,
"ban-keywords",
"check-format",
"allow-leading-underscore",
"allow-pascal-case"
],
"whitespace": [
true,
"check-branch",
"check-decl",
"check-module",
"check-operator",
"check-separator",
"check-type",
"check-typecast"
]
}
}
Loading

0 comments on commit eb6c78f

Please sign in to comment.