This commit is contained in:
Philipp Kunz 2016-11-20 17:41:26 +01:00
parent a869ee0d02
commit 450ee5162c
9 changed files with 124 additions and 3 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
node_modules/
coverage/
public/
pages/

View File

@ -5,9 +5,9 @@ templates done right
We recommend the use of TypeScript for best in class Intellisense We recommend the use of TypeScript for best in class Intellisense
```javascript ```javascript
import * as tlt from 'tlt import { Tlt } from 'tlt'
let myTlt = new tlt('my template String for {{somePlaceholder}} and {{anotherPlaceholder}}') let myTlt = new Tlt('my template String for {{somePlaceholder}} and {{anotherPlaceholder}}')
myTlt.getStringFor({ myTlt.getStringFor({
"somePlaceholder": "pushrocks", "somePlaceholder": "pushrocks",
"anotherPlaceholder": "anotherPlaceholder" "anotherPlaceholder": "anotherPlaceholder"

18
dist/index.d.ts vendored Normal file
View File

@ -0,0 +1,18 @@
/**
* class Tlt allows templates to be used with different sets of data
*/
export declare class Tlt {
templateString: string;
/**
* constructor of class Tlt
*/
constructor(templateStringArg: string);
/**
* returns template string with data applied
*/
applyData(data: any): string;
/**
* set a new template string
*/
setTemplate(templateStringArg: string): void;
}

27
dist/index.js vendored Normal file
View File

@ -0,0 +1,27 @@
"use strict";
const mustache = require("mustache");
/**
* class Tlt allows templates to be used with different sets of data
*/
class Tlt {
/**
* constructor of class Tlt
*/
constructor(templateStringArg) {
this.templateString = templateStringArg;
}
/**
* returns template string with data applied
*/
applyData(data) {
return mustache.render(this.templateString, data);
}
/**
* set a new template string
*/
setTemplate(templateStringArg) {
this.templateString = templateStringArg;
}
}
exports.Tlt = Tlt;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEscUNBQW9DO0FBRXBDOztHQUVHO0FBQ0g7SUFHSTs7T0FFRztJQUNILFlBQVksaUJBQXlCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLElBQVM7UUFDZixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxpQkFBeUI7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQTtJQUMzQyxDQUFDO0NBQ0o7QUF2QkQsa0JBdUJDIn0=

View File

@ -19,5 +19,15 @@
"bugs": { "bugs": {
"url": "https://gitlab.com/pushrocks/tlt/issues" "url": "https://gitlab.com/pushrocks/tlt/issues"
}, },
"homepage": "https://gitlab.com/pushrocks/tlt#README" "homepage": "https://gitlab.com/pushrocks/tlt#README",
"dependencies": {
"@types/mustache": "^0.8.29",
"mustache": "^2.3.0",
"typings-global": "^1.0.14"
},
"devDependencies": {
"@types/should": "^8.1.30",
"should": "^11.1.1",
"typings-test": "^1.0.3"
}
} }

1
test/test.d.ts vendored Normal file
View File

@ -0,0 +1 @@
import 'typings-test';

16
test/test.js Normal file
View File

@ -0,0 +1,16 @@
"use strict";
require("typings-test");
const should = require("should");
const tlt = require("../dist/index");
describe('tlt', function () {
let testTlt;
it('should create a valid instance of tlt', function () {
testTlt = new tlt.Tlt('some awesome {{customString}}');
should(testTlt).be.instanceOf(tlt.Tlt);
});
it('should output a valid string with some data', function () {
let appliedString = testTlt.applyData({ customString: 'horse' });
should(appliedString).equal('some awesome horse');
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMscUNBQW9DO0FBRXBDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7SUFDWixJQUFJLE9BQWdCLENBQUE7SUFDcEIsRUFBRSxDQUFDLHVDQUF1QyxFQUFFO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQTtRQUN0RCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDMUMsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsNkNBQTZDLEVBQUU7UUFDOUMsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQzlELE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNyRCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0=

16
test/test.ts Normal file
View File

@ -0,0 +1,16 @@
import 'typings-test'
import * as should from 'should'
import * as tlt from '../dist/index'
describe('tlt', function() {
let testTlt: tlt.Tlt
it('should create a valid instance of tlt', function() {
testTlt = new tlt.Tlt('some awesome {{customString}}')
should(testTlt).be.instanceOf(tlt.Tlt)
})
it('should output a valid string with some data', function(){
let appliedString = testTlt.applyData({customString: 'horse'})
should(appliedString).equal('some awesome horse')
})
})

29
ts/index.ts Normal file
View File

@ -0,0 +1,29 @@
import * as mustache from 'mustache'
/**
* class Tlt allows templates to be used with different sets of data
*/
export class Tlt {
templateString: string
/**
* constructor of class Tlt
*/
constructor(templateStringArg: string) {
this.templateString = templateStringArg
}
/**
* returns template string with data applied
*/
applyData(data: any): string {
return mustache.render(this.templateString, data)
}
/**
* set a new template string
*/
setTemplate(templateStringArg: string) {
this.templateString = templateStringArg
}
}