示例#1
0
 mogrified.forEach((o, i) => {
   makeSure(o.str).is.a.String;
   makeSure(o.num).is.a.Number;
   makeSure(o.bln).is.a.Boolean;
   makeSure(o.dte).is.a.Date;
   makeSure(o.dontDeleteMe).is.a.String;
 });
示例#2
0
  it('a nested object should mogrify based on a model object', () => {

    let model = {
      str: String,
      obj: {
        num: Number,
        otherObj: {
          bln: Boolean
        }
      }
    };

    let input = {
      str: true,
      obj: {
        num: '1',
        otherObj: {
          bln: 0
        }
      }
    };

    let mogrified = mogrify(model, input);

    makeSure(mogrified.str).is.a.String;
    makeSure(mogrified.obj).is.an.Object;
    makeSure(mogrified.obj.num).is.a.Number;
    makeSure(mogrified.obj.otherObj).is.an.Object;
    makeSure(mogrified.obj.otherObj.bln).is.a.Boolean;

    assert.equal(mogrified.str, 'true');
    assert.equal(mogrified.obj.num, 1);
    assert.equal(mogrified.obj.otherObj.bln, false);

  }); // end nested object mogrification
示例#3
0
      it('should mogrify object input patter #' + i, () => {
        let mogrified = (mogrify(model, input));

        makeSure(mogrified.str).is.a.String;
        makeSure(mogrified.num).is.a.Number;
        makeSure(mogrified.bln).is.a.Boolean;
        makeSure(mogrified.dte).is.a.Date;
      });
示例#4
0
  it('should make it possible to use custom functions', () => {
    let model = {
      cus: function(input) { return input + '-bar'; }
    };

    let input = {
      cus: 'foo',
      dontDeleteMe: 'dontDeleteMe'
    };

    let mogrified = mogrify(model, input);

    makeSure(mogrified.cus).is.a.String;
    makeSure(mogrified.dontDeleteMe).is.a.String;

    assert.equal(mogrified.cus, 'foo-bar');
    assert.equal(mogrified.dontDeleteMe, 'dontDeleteMe');
  }); // end custom function test
示例#5
0
  it('should strip undefined properties from input when strict = true', () => {
    let model = {
      str: String,
      num: Number,
      bln: Boolean,
      dte: Date
    };

    let input = {
      str: true,
      num: '1',
      bln: 0,
      dte: 0,
      deleteMe: 'deleteMe'
    };

    let options = { strict: true };

    let mogrified = mogrify(model, input, options);

    makeSure(mogrified.deleteMe).is.Undefined;
  }); // end custom test
示例#6
0
const passthrougher = () => ({

  tap(cb) {
    let { objectMode } = this,
      stream = new PassThrough({ objectMode });

    makeSure(cb).is.a.Function;

    stream.on('data', (data) => {
      if (objectMode)
        cb(data);
      else if (!objectMode)
        cb(data.toString());
    });

    return this.pipe(stream);
  },

  first(cb) {
    let { objectMode } = this,
      stream = new PassThrough({ objectMode }),
      done = false;

    makeSure(cb).is.a.Function;

    stream.on('data', (data) => {
      if (done)
        return;

      done = true;
      if (objectMode)
        cb(data);
      else if (!objectMode)
        cb(data.toString());
    });

    return this.pipe(stream);
  },

  last(cb) {
    let { objectMode } = this,
      stream = new PassThrough({ objectMode }),
      last = {};

    makeSure(cb).is.a.Function;

    stream.on('data', (data) => last = data);

    stream.on('finish', () => {
      if (objectMode)
        cb(last);
      else if (!objectMode)
        cb(last.toString());
    });

    return this.pipe(stream);
  },

  when(condition, cb) {
    let { objectMode } = this,
      stream = new PassThrough({ objectMode });

    makeSure(condition).is.a.Function;
    makeSure(cb).is.a.Function;

    stream.on('data', (data) => {
      if (condition(data))
        cb(data);
    });

    return this.pipe(stream);
  },

  done(cb) {
    makeSure(cb).is.a.Function;

    this.stream.on('end', () => cb());

    return this;
  }

});
示例#7
0
 mogrified.forEach((value) => makeSure(value).is.a.String);
示例#8
0
 mogrified.forEach((value) => ((isNaN(value.valueOf())) ? true : makeSure(value).is.a.Date));
示例#9
0
 mogrified.forEach((value) => makeSure(value).is.a.Boolean);
示例#10
0
 mogrified.forEach((value) => makeSure(value).is.a.Number);