Updated TS to two-step builds (source & combined)

This commit is contained in:
Josh Goldberg
2015-12-29 14:52:33 -05:00
parent 309b03d032
commit fcd8505699
5 changed files with 334 additions and 285 deletions
+1 -3
View File
@@ -1,7 +1,5 @@
Distribution
Distribution/**
Build/**
Source/**/*.js
Source/**/*.md
Source/**/*.txt
node_modules/
npm-debug.log
+65 -40
View File
@@ -4,53 +4,82 @@ module.exports = function (grunt) {
"meta": {
"paths": {
"source": "Source",
"build": "Build",
"dist": "Distribution"
}
},
"tslint": {
"options": {
"configuration": grunt.file.readJSON("tslint.json")
},
"files": {
"src": ["<%= meta.paths.source %>/<%= pkg.name %>.ts"]
}
},
"typescript": {
"base": {
"src": "<%= meta.paths.source %>/<%= pkg.name %>.ts",
"dest": "<%= meta.paths.source %>/<%= pkg.name %>.js"
}
},
"clean": ["<%= meta.paths.dist %>"],
"copy": {
"default": {
"options": {
"configuration": grunt.file.readJSON("tslint.json")
},
"files": {
"src": ["<%= meta.paths.source %>/*.ts"]
}
}
},
"clean": {
"prebuild": [
"<%= meta.paths.dist %>",
"<%= meta.paths.build %>"
],
"postbuild": [
"<%= meta.paths.dist %>/<%= pkg.name %>.js",
"<%= meta.paths.build %>"
]
},
"copy": {
"prebuild": {
"files": [{
"src": "<%= meta.paths.source %>/<%= pkg.name %>.js",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.js"
"src": "<%= meta.paths.source %>/*.ts",
"dest": "<%= meta.paths.build %>/",
"expand": true,
"flatten": true
}, {
"src": "<%= meta.paths.source %>/<%= pkg.name %>.ts",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.ts"
}, {
"src": "<%= meta.paths.source %>/<%= pkg.name %>.d.ts",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.d.ts"
"dest": "<%= meta.paths.build %>/",
"expand": true,
"flatten": true,
"rename": function (dest, src) {
return dest + "/<%= pkg.name %>-<%= pkg.version %>.ts";
}
}, {
"src": "<%= meta.paths.source %>/References/*.ts",
"dest": "<%= meta.paths.build %>",
"expand": true,
"flatten": true
}, {
"src": "<%= meta.paths.source %>/References/*.?s",
"dest": "<%= meta.paths.dist %>/",
"expand": true,
"flatten": true
}, {
"src": "README.md",
"dest": "<%= meta.paths.dist %>/"
}, {
"src": "README.md",
"dest": "<%= meta.paths.source %>/"
}, {
"src": "LICENSE.txt",
"dest": "<%= meta.paths.dist %>/"
}, {
"src": "LICENSE.txt",
"dest": "<%= meta.paths.source %>/"
}]
},
"distribution": {
"files": [{
"src": "<%= meta.paths.source %>/<%= pkg.name %>.js",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.js"
}]
}
},
"preprocess": {
"default": {
"src": "<%= meta.paths.build %>/<%= pkg.name %>.ts",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.ts"
}
},
"typescript": {
"source": {
"src": "<%= meta.paths.source %>/*.ts"
},
"distribution": {
"src": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.ts"
}
},
"uglify": {
@@ -58,31 +87,27 @@ module.exports = function (grunt) {
"compress": true,
"sourceMap": true
},
"dist": {
"default": {
"files": {
"<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.min.js": ["<%= meta.paths.source %>/<%= pkg.name %>.js"],
"<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.min.js": [
"<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.js"
]
}
}
},
"preprocess": {
"dist": {
"src": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.ts",
"dest": "<%= meta.paths.dist %>/<%= pkg.name %>-<%= pkg.version %>.ts"
}
},
"mocha_phantomjs": {
"all": ["Tests/*.html"]
"default": ["Tests/*.html"]
}
});
grunt.loadNpmTasks("grunt-tslint");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-copy");
grunt.loadNpmTasks("grunt-preprocess");
grunt.loadNpmTasks("grunt-typescript");
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.loadNpmTasks("grunt-mocha-phantomjs");
grunt.loadNpmTasks("grunt-preprocess");
grunt.loadNpmTasks("grunt-tslint");
grunt.loadNpmTasks("grunt-typescript");
grunt.registerTask("default", [
"tslint", "typescript", "clean", "copy", "uglify", "preprocess", "mocha_phantomjs"
"tslint", "clean", "copy:prebuild", "preprocess", "typescript:source", "copy:distribution", "typescript:distribution", "clean:postbuild", "uglify", "mocha_phantomjs"
]);
};
+55 -28
View File
@@ -1,14 +1,13 @@
declare module MenuGraphr {
export interface IGameStartr extends EightBittr.IEightBittr {
GroupHolder: GroupHoldr.IGroupHoldr;
ItemsHolder: ItemsHoldr.IItemsHoldr;
MapScreener: MapScreenr.IMapScreenr;
ObjectMaker: ObjectMakr.IObjectMakr;
TimeHandler: TimeHandlr.ITimeHandlr;
addThing(thing: IThing | string | any[], left?: number, top?: number): IThing;
killNormal(thing: IThing): void;
setHeight(thing: IThing, height: number);
setWidth(thing: IThing, width: number);
setHeight(thing: IThing, height: number): void;
setWidth(thing: IThing, width: number): void;
}
export interface IThing extends EightBittr.IThing {
@@ -23,8 +22,10 @@ declare module MenuGraphr {
export interface IMenu extends IThing, IMenuSchema {
children: IThing[];
height: number;
progress?: IMenuProgress;
textX?: number;
width: number;
}
export interface IMenuProgress {
@@ -33,21 +34,44 @@ declare module MenuGraphr {
working?: boolean;
}
export interface IListMenu extends IMenu {
export interface IListMenu extends IListMenuSchema, IMenu {
arrow: IThing;
arrowXOffset?: number;
arrowYOffset?: number;
grid: any[][];
grid: IGridCell[][];
gridColumns: number;
gridRows: number;
height: number;
options: any[];
optionChildren: any;
progress: IListMenuProgress;
scrollingAmount?: number;
scrollingAmountReal?: number;
scrollingItems?: number;
/**
* How many rows the menu has visually scrolled.
*/
scrollingVisualOffset?: number;
/**
* Whether the list should be a single column, rather than auto-flow.
*/
singleColumnList: boolean;
selectedIndex: number[];
textColumnWidth: number;
width: number;
}
export interface IGridCell {
column: IGridCell[];
columnNumber: number;
index: number;
rowNumber: number;
// These two will likely need to be confirmed...
schema: (string | IMenuWordCommand)[];
text: (string | IMenuWordCommand)[];
title: string;
x: number;
y: number;
}
export interface IListMenuOptions {
@@ -74,6 +98,7 @@ declare module MenuGraphr {
deleteOnFinish?: boolean;
finishAutomatically?: boolean;
finishAutomaticSpeed?: number;
height?: number;
ignoreA?: boolean;
ignoreB?: boolean;
ignoreProgressB?: boolean;
@@ -101,12 +126,18 @@ declare module MenuGraphr {
textWidthMultiplier?: number;
textXOffset?: number;
textYOffset?: number;
width?: number;
}
export interface IMenuSchema extends IMenuBase {
position?: IMenuSchemaPosition;
}
export interface IListMenuSchema extends IMenuSchema {
scrollingItems?: number;
scrollingItemsComputed?: boolean | number;
}
export interface IMenuSchemaSize {
width?: number;
height?: number;
@@ -127,8 +158,9 @@ declare module MenuGraphr {
}
export interface IMenuChildSchema extends IMenuSchema {
name?: string;
type: string;
words?: (string | IMenuWordCommand)[];
words?: MenuDialogRaw;
}
export interface IMenuChildMenuSchema extends IMenuChildSchema {
@@ -143,7 +175,7 @@ declare module MenuGraphr {
}
export interface IMenuThingSchema extends IMenuChildSchema {
args: any;
args?: any;
position?: IMenuSchemaPosition;
size?: IMenuSchemaSize;
thing: string;
@@ -154,7 +186,7 @@ declare module MenuGraphr {
word?: string;
}
export type MenuDialogRaw = string | (string | string[] | (string | string[])[] | IMenuWordCommand)[]
export type MenuDialogRaw = string | (string | string[] | (string | string[])[] | IMenuWordFiltered)[]
export interface IMenuWordCommand extends IMenuWordFiltered {
applyUnitsize?: boolean;
@@ -163,7 +195,7 @@ declare module MenuGraphr {
value: any;
}
export interface IMenuWordPadLeftCommand extends IMenuWordCommand {
export interface IMenuWordPadLeftCommand extends IMenuWordFiltered {
alignRight?: boolean;
}
@@ -182,6 +214,14 @@ declare module MenuGraphr {
paddingY: number;
}
export interface IReplacements {
[i: string]: string[] | IReplacerFunction;
}
export interface IReplacerFunction {
(GameStarter: IGameStartr): string[];
}
export interface IMenuGraphrSettings {
GameStarter: IGameStartr;
schemas?: {
@@ -190,14 +230,8 @@ declare module MenuGraphr {
aliases?: {
[i: string]: string;
};
replacements?: {
[i: string]: string;
};
replacements?: IReplacements;
replacerKey?: string;
replaceFromItemsHolder?: boolean;
replacementStatistics?: {
[i: string]: boolean;
};
}
export interface IMenuGraphr {
@@ -205,9 +239,9 @@ declare module MenuGraphr {
getMenu(name: string): IMenu;
getExistingMenu(name: string): IMenu;
getAliases(): { [i: string]: string };
getReplacements(): { [i: string]: string };
getReplacements(): IReplacements;
createMenu(name: string, attributes?: IMenuSchema): IMenu;
createChild(name: string, schema: IMenuChildSchema): void;
createMenuChild(name: string, schema: IMenuChildSchema): void;
createMenuWord(name: string, schema: IMenuWordSchema): void;
createMenuThing(name: string, schema: IMenuThingSchema): IThing;
hideMenu(name: string): void;
@@ -223,13 +257,6 @@ declare module MenuGraphr {
skipAdd?: boolean): void;
addMenuDialog(name: string, dialogRaw: MenuDialogRaw, onCompletion?: () => any): void;
addMenuText(name: string, words: (string[] | IMenuWordCommand)[], onCompletion?: (...args: any[]) => void): void;
addMenuWords(
name: string,
words: (string[] | IMenuWordCommand)[],
i: number,
x: number,
y: number,
onCompletion?: (...args: any[]) => void): IThing[];
continueMenu(name: string): void;
addMenuList(name: string, settings: IListMenuOptions): void;
activateMenuList(name: string): void;
+209 -210
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -22,11 +22,11 @@
"grunt-contrib-copy": "~0.8.X",
"grunt-contrib-uglify": "~0.8.X",
"grunt-mocha-phantomjs": "~2.X",
"grunt-tslint": "~2.4.X",
"grunt-typescript": "~0.7.X",
"grunt-tslint": "~3.0.X",
"grunt-typescript": "~0.8.X",
"mocha": "~2.2.X",
"grunt-preprocess": "~4.1.X",
"tslint": "~2.4.X",
"typescript": "~1.6.X"
"tslint": "~3.2.X",
"typescript": "~1.7.X"
}
}