当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript common.JsonSchemesService类代码示例

本文整理汇总了TypeScript中@tsed/common.JsonSchemesService的典型用法代码示例。如果您正苦于以下问题:TypeScript JsonSchemesService类的具体用法?TypeScript JsonSchemesService怎么用?TypeScript JsonSchemesService使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了JsonSchemesService类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: describe

describe("AJV", () => {
  let jsonSchemesService: JsonSchemesService;
  before(
    inject([AjvService, JsonSchemesService], (_ajvService_: AjvService, _jsonSchemesService_: JsonSchemesService) => {
      ajvService = _ajvService_;
      jsonSchemesService = _jsonSchemesService_;
    })
  );

  after(TestContext.reset);

  describe("Date validation", () => {
    const errorMsg = "At TestDate.dateStart should match format \"date-time\"";

    class TestDate {
      @Format("date-time")
      dateStart: Date;
    }

    it("should have expected json schema", () => {
      expect(jsonSchemesService.getSchemaDefinition(TestDate)).to.deep.eq({
        definitions: {},
        properties: {
          dateStart: {
            format: "date-time",
            type: "string"
          }
        },
        type: "object"
      });
    });
    it("should validate data (1)", () => {
      runValidation({}, TestDate).to.be.true;
    });

    it("should not validate data (2)", () => {
      runValidation({dateStart: "1987-07-12 01:00:00"}, TestDate).to.be.eq(errorMsg);
    });
    it("should validate data (3)", () => {
      runValidation({dateStart: new Date().toISOString()}, TestDate).to.be.true;
    });
    it("should not validate data (4)", () => {
      runValidation({dateStart: new Date()}, TestDate).to.be.eq("At TestDate.dateStart should be string");
    });
    it("should not validate data (5)", () => {
      runValidation({dateStart: "test"}, TestDate).to.be.eq(errorMsg);
    });
    it("should validate data (6)", () => {
      runValidation({other: "test"}, TestDate).to.be.true;
    });
  });

  describe("Array of", () => {
    const errorMsg = "At TestDate.dateStart should match format \"date-time\"";

    class TestDate {
      @Format("date-time")
      dateStart: Date;
    }

    it("should have expected json schema", () => {
      expect(jsonSchemesService.getSchemaDefinition(TestDate)).to.deep.eq({
        definitions: {},
        properties: {
          dateStart: {
            format: "date-time",
            type: "string"
          }
        },
        type: "object"
      });
    });
    it("should validate data (1)", () => {
      runValidation([{}], TestDate, Array).to.be.true;
    });
    it("should not validate data (2)", () => {
      runValidation([{dateStart: "1987-07-12 01:00:00"}], TestDate, Array).to.be.eq(errorMsg);
    });
    it("should validate data (3)", () => {
      runValidation([{dateStart: new Date().toISOString()}], TestDate, Array).to.be.true;
    });
  });

  describe("Set of", () => {
    const errorMsg = "At TestDate.dateStart should match format \"date-time\"";

    class TestDate {
      @Format("date-time")
      dateStart: Date;
    }

    it("should have expected json schema", () => {
      expect(jsonSchemesService.getSchemaDefinition(TestDate)).to.deep.eq({
        definitions: {},
        properties: {
          dateStart: {
            format: "date-time",
            type: "string"
          }
        },
//.........这里部分代码省略.........
开发者ID:Romakita,项目名称:ts-express-decorators,代码行数:101,代码来源:ajv.spec.ts

示例2: validate

  /**
   *
   * @param obj
   * @param targetType
   * @param baseType
   * @returns {boolean}
   */
  public validate(obj: any, targetType: any, baseType?: any): boolean {
    const schema = this.jsonSchemaService.getSchemaDefinition(targetType) as any;

    if (schema && !(obj === null || obj === undefined)) {
      const collection = baseType ? obj : [obj];
      const options = {
        ignoreCallback: (obj: any, type: any) => type === Date,
        checkRequiredValue: false
      };

      const test = (obj: any) => {
        const ajv = new Ajv(this.options);
        const valid = ajv.validate(schema, obj);
        if (!valid) {
          throw this.buildErrors(ajv.errors!, targetType);
        }
      };

      Object.keys(collection).forEach((key: any) =>
        test(this.converterService.deserialize(collection[key], targetType, undefined, options))
      );
    }

    return true;
  }
开发者ID:Romakita,项目名称:ts-express-decorators,代码行数:32,代码来源:AjvService.ts

示例3: it

 it("should have expected json schema", () => {
   expect(jsonSchemesService.getSchemaDefinition(TestDate)).to.deep.eq({
     definitions: {},
     properties: {
       dateStart: {
         format: "date-time",
         type: "string"
       }
     },
     type: "object"
   });
 });
开发者ID:Romakita,项目名称:ts-express-decorators,代码行数:12,代码来源:ajv.spec.ts


注:本文中的@tsed/common.JsonSchemesService类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。