Package Exports
- deref
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deref) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Do you have $ref's ?
A simple way for solving $ref
values:
var deref = require('deref');
Schema dereferencing
$ = deref();
var a = {
id: 'a',
type: 'object',
properties: {
b: {
$ref: 'b'
}
}
};
var b = {
id: 'b',
type: 'string'
};
var c = {
id: 'c',
type: 'array',
items: {
$ref: 'a'
}
};
console.log($(c, [b, a]).id);
// output: http://json-schema.org/c#
console.log($(c, [b, a], true).items.properties.b.type);
// output: string
Schema normalization
var schema = {
id: 'http://x.y.z/rootschema.json#',
schema1: {
id: '#foo'
},
schema2: {
id: 'otherschema.json',
nested: {
id: '#bar'
},
alsonested: {
id: 't/inner.json#a'
}
},
schema3: {
id: 'some://where.else/completely#'
}
};
console.log(deref.util.normalizeSchema(schema).schema2.nested.id);
// output: http://x.y.z/otherschema.json#bar
Basic usage
The resulting function of calling deref()
can accept three arguments:
fakeroot (string)
Used on missing
$schema
values for resolve into fully qualified URIs.console.log($('http://example.com', { id: '#foo' }).id); // output: http://example.com#foo
If missing will use
http://json-schema.org/schema
.schema (object)
The JSON-Schema object for dereferencing.
refs (array|object)
Any additional schemas used while dereferencing.
ex (boolean)
Whether do full dereferencing or not,
false
by default.
Examples
$('http://example.com', schema, true);
$(schema, refs, true);
$(schema, true);
Utilities
Aside the basics of $
, this function will include:
$.refs (object)
An registry of dereferenced schemas.
$.util (object)
Exposes the internal helpers used by
deref
.isURL(path)
parseURI(href)
resolveURL(base, href)
getDocumentURI(path)
resolveSchema(schema, refs)
normalizeSchema(fakeroot, schema)
Note that calling $(schema)
will not read/download any local/remote files.
Since 0.2.1
the $schema
and id
are no longer required for schema normalization.