From a1fec28d1872a858652e3a51730b498d3a6cb1ea Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Mon, 14 Nov 2016 13:04:25 +0100 Subject: [PATCH] now working --- dist/index.d.ts | 10 ++++++++-- dist/index.js | 7 +++++-- test/test.js | 10 +++++----- test/test.ts | 20 ++++++++++---------- ts/index.ts | 2 +- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/dist/index.d.ts b/dist/index.d.ts index 50f309a..ad4e1ee 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,17 +1,23 @@ import 'typings-global'; +export declare type TFrontMatter = 'yaml' | 'json'; export interface IParsedFM { data: any; content: string; orig: string; } +export interface ISmartfmContructorOptions { + fmType: TFrontMatter; +} /** * class smartfm handles frontmatter */ export declare class Smartfm { + fmType: TFrontMatter; + constructor(optionsArg: ISmartfmContructorOptions); /** * add frontmatter to a string */ - stringify(bodyString: string, frontmatterData: any): void; + stringify(bodyString: string, frontmatterData: any): any; /** * parse a string that has frontmatter attached, YAML notation */ @@ -24,4 +30,4 @@ export declare let parse: (stringToParse: string) => IParsedFM; /** * add frontmatter to a string */ -export declare let stringify: (bodyString: string, frontmatterData: any) => void; +export declare let stringify: (bodyString: string, frontmatterData: any) => any; diff --git a/dist/index.js b/dist/index.js index c628884..9ccce9f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -5,6 +5,9 @@ let grayMatter = require('gray-matter'); * class smartfm handles frontmatter */ class Smartfm { + constructor(optionsArg) { + this.fmType = optionsArg.fmType; + } /** * add frontmatter to a string */ @@ -29,6 +32,6 @@ exports.parse = (stringToParse) => { * add frontmatter to a string */ exports.stringify = (bodyString, frontmatterData) => { - grayMatter.stringify(bodyString, frontmatterData); + return grayMatter.stringify(bodyString, frontmatterData); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQVF2Qzs7R0FFRztBQUNIO0lBQ0k7O09BRUc7SUFDSCxTQUFTLENBQUMsVUFBa0IsRUFBRSxlQUFvQjtRQUM5QyxNQUFNLENBQUMsaUJBQVMsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGFBQXFCO1FBQ3ZCLE1BQU0sQ0FBQyxhQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDL0IsQ0FBQztDQUNKO0FBZEQsMEJBY0M7QUFFRDs7R0FFRztBQUNRLFFBQUEsS0FBSyxHQUFHLENBQUMsYUFBcUI7SUFDckMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsU0FBUyxHQUFHLENBQUMsVUFBa0IsRUFBRSxlQUFvQjtJQUM1RCxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQTtBQUNyRCxDQUFDLENBQUEifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBQ3ZCLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQWN2Qzs7R0FFRztBQUNIO0lBR0ksWUFBWSxVQUFxQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUE7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFVBQWtCLEVBQUUsZUFBb0I7UUFDOUMsTUFBTSxDQUFDLGlCQUFTLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFxQjtRQUN2QixNQUFNLENBQUMsYUFBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQy9CLENBQUM7Q0FDSjtBQXBCRCwwQkFvQkM7QUFFRDs7R0FFRztBQUNRLFFBQUEsS0FBSyxHQUFHLENBQUMsYUFBcUI7SUFDckMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsU0FBUyxHQUFHLENBQUMsVUFBa0IsRUFBRSxlQUFvQjtJQUM1RCxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUE7QUFDNUQsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/test/test.js b/test/test.js index 304e690..4c13e9e 100644 --- a/test/test.js +++ b/test/test.js @@ -3,7 +3,7 @@ require("typings-test"); const should = require("should"); const smartfm = require("../dist/index"); describe('smartfm', function () { - let testSmartfm = new smartfm.Smartfm; + let testSmartfm = new smartfm.Smartfm({ fmType: 'yaml' }); it('.parse()', function () { let testString = `--- testKey: testValue @@ -16,10 +16,10 @@ testKey2: testValue2 should(parsedString.orig).equal(testString); }); it('.stringify', function () { - let testStringPure = `# some markdown heading -some first row`; + let testStringPure = `# some markdown heading\nsome first row`; let testStringCombined = testSmartfm.stringify(testStringPure, { testData: 'hi' }); - console.log(testStringCombined); + let resultString = '---\ntestData: hi\n---\n# some markdown heading\nsome first row\n'; + should(resultString).equal(testStringCombined); }); }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMseUNBQXdDO0FBRXhDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDaEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFBO0lBQ3JDLEVBQUUsQ0FBQyxVQUFVLEVBQUU7UUFDWCxJQUFJLFVBQVUsR0FBRzs7OztnQkFJVCxDQUFBO1FBQ1IsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNoRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzlELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUMsWUFBWSxDQUFDLENBQUE7UUFDaEUsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsWUFBWSxFQUFFO1FBQ2IsSUFBSSxjQUFjLEdBQUc7ZUFDZCxDQUFBO1FBQ1AsSUFBSSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUNuQyxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMseUNBQXdDO0FBRXhDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDaEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDekQsRUFBRSxDQUFDLFVBQVUsRUFBRTtRQUNYLElBQUksVUFBVSxHQUFHOzs7O2dCQUlULENBQUE7UUFDUixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDL0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUNqRSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMvQyxDQUFDLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyxZQUFZLEVBQUU7UUFDYixJQUFJLGNBQWMsR0FBRyx5Q0FBeUMsQ0FBQTtRQUM5RCxJQUFJLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDbEYsSUFBSSxZQUFZLEdBQUcsbUVBQW1FLENBQUE7UUFDdEYsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQ2xELENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ== \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 7f2a339..037e795 100644 --- a/test/test.ts +++ b/test/test.ts @@ -3,23 +3,23 @@ import * as should from 'should' import * as smartfm from '../dist/index' -describe('smartfm', function() { - let testSmartfm = new smartfm.Smartfm - it('.parse()', function() { +describe('smartfm', function () { + let testSmartfm = new smartfm.Smartfm({ fmType: 'yaml' }) + it('.parse()', function () { let testString = `--- testKey: testValue testKey2: testValue2 --- # some markdown` let parsedString = testSmartfm.parse(testString) - should(parsedString.data).have.property('testKey','testValue') - should(parsedString.data).have.property('testKey2','testValue2') + should(parsedString.data).have.property('testKey', 'testValue') + should(parsedString.data).have.property('testKey2', 'testValue2') should(parsedString.orig).equal(testString) }) - it('.stringify', function(){ - let testStringPure = `# some markdown heading -some first row` - let testStringCombined = testSmartfm.stringify(testStringPure, {testData: 'hi'}) - console.log(testStringCombined) + it('.stringify', function () { + let testStringPure = `# some markdown heading\nsome first row` + let testStringCombined = testSmartfm.stringify(testStringPure, { testData: 'hi' }) + let resultString = '---\ntestData: hi\n---\n# some markdown heading\nsome first row\n' + should(resultString).equal(testStringCombined) }) }) diff --git a/ts/index.ts b/ts/index.ts index 20a59b4..6516dcb 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -49,5 +49,5 @@ export let parse = (stringToParse: string): IParsedFM => { * add frontmatter to a string */ export let stringify = (bodyString: string, frontmatterData: any) => { - grayMatter.stringify(bodyString, frontmatterData) + return grayMatter.stringify(bodyString, frontmatterData) }