Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/examples/custom_types.js |
diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/examples/custom_types.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/examples/custom_types.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6c01578416654cf7c00546617ccf5dbe1e422e97 |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/js-yaml/examples/custom_types.js |
@@ -0,0 +1,100 @@ |
+'use strict'; |
+ |
+ |
+var fs = require('fs'); |
+var path = require('path'); |
+var util = require('util'); |
+var yaml = require('../lib/js-yaml'); |
+ |
+ |
+// Let define a couple of classes... |
+ |
+function Point(x, y, z) { |
+ this.klass = 'Point'; |
+ this.x = x; |
+ this.y = y; |
+ this.z = z; |
+} |
+ |
+ |
+function Space(height, width, points) { |
+ if (points) { |
+ if (!points.every(function (point) { return point instanceof Point; })) { |
+ throw new Error('A non-Point inside a points array!'); |
+ } |
+ } |
+ |
+ this.klass = 'Space'; |
+ this.height = height; |
+ this.width = width; |
+ this.points = points; |
+} |
+ |
+ |
+// Let's define YAML types to load and dump our Point/Space objects. |
+ |
+var pointYamlType = new yaml.Type('!point', { |
+ // |
+ // The information used to load a Point. |
+ // |
+ loadKind: 'sequence', // See node kinds in YAML spec: http://www.yaml.org/spec/1.2/spec.html#kind// |
+ loadResolver: function (state) { |
+ // You can access actual data from YAML via `state.result`. |
+ // After the resolving, you should put the resolved value into `state.result`. |
+ |
+ if (3 === state.result.length) { // `state.result` |
+ state.result = new Point(state.result[0], state.result[1], state.result[2]); |
+ return true; // Resolved successfully. |
+ } else { |
+ return false; // Can't resolve. |
+ } |
+ }, |
+ // |
+ // The information used to dump a Point. |
+ // |
+ dumpInstanceOf: Point, // Dump only instances of Point constructor as this YAML type. |
+ dumpRepresenter: function (point) { |
+ // Represent in YAML as three-element sequence. |
+ return [ point.x, point.y, point.z ]; |
+ } |
+}); |
+ |
+ |
+var spaceYamlType = new yaml.Type('!space', { |
+ loadKind: 'mapping', |
+ loadResolver: function (state) { |
+ state.result = new Space(state.result.height, state.result.width, state.result.points); |
+ return true; |
+ }, |
+ dumpInstanceOf: Space |
+ // `dumpRepresenter` is omitted here. So, Space objects will be dumped as is. |
+ // That is regular mapping with three key-value pairs but with !space tag. |
+}); |
+ |
+ |
+// After our types are defined, it's time to join them into a schema. |
+ |
+var SPACE_SCHEMA = yaml.Schema.create([ spaceYamlType, pointYamlType ]); |
+ |
+ |
+// And read a document using that schema. |
+ |
+fs.readFile(path.join(__dirname, 'custom_types.yaml'), 'utf8', function (error, data) { |
+ var loaded; |
+ |
+ if (!error) { |
+ loaded = yaml.load(data, { schema: SPACE_SCHEMA }); |
+ console.log(util.inspect(loaded, false, 20, true)); |
+ } else { |
+ console.error(error.stack || error.message || String(error)); |
+ } |
+}); |
+ |
+ |
+// There are some exports to play with this example interactively. |
+ |
+module.exports.Point = Point; |
+module.exports.Space = Space; |
+module.exports.pointYamlType = pointYamlType; |
+module.exports.spaceYamlType = spaceYamlType; |
+module.exports.SPACE_SCHEMA = SPACE_SCHEMA; |