From 75aa7450c55e39fb4d95391eb11ebedefabf97b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabio=20Jos=C3=A9?= Date: Tue, 29 Oct 2019 08:56:08 -0300 Subject: [PATCH] Spec v1.0 definitions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fabio José --- lib/specs/spec_1.js | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lib/specs/spec_1.js diff --git a/lib/specs/spec_1.js b/lib/specs/spec_1.js new file mode 100644 index 0000000..4b3176a --- /dev/null +++ b/lib/specs/spec_1.js @@ -0,0 +1,47 @@ +const uuid = require("uuid/v4"); +const empty = require("is-empty"); +const Ajv = require("ajv"); + +const RESERVED_ATTRIBUTES = { + type: "type", + specversion: "specversion", + source: "source", + id: "id", + time: "time", + dataschema: "schemaurl", + datacontenttype: "datacontenttype", + subject : "subject", + data: "data", + data_base64: "data_base64" +}; + +const schema = require("../../ext/spec_1.json"); + +const ajv = new Ajv({ + extendRefs: true +}); + +const isValidAgainstSchema = ajv.compile(schema); + +function Spec1(_caller) { + this.payload = { + specversion: "1.0", + id: uuid() + }; + + if(!_caller){ + _caller = require("../cloudevent.js"); + } + + /* + * Used to inject compatibility methods or attributes + */ + this.caller = _caller; +} + +Spec1.prototype.id = function(_id){ + this.payload["id"] = _id; + return this; +}; + +module.exports = Spec1;