UNPKG

1.39 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6var schema = function schema() {
7 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
8 entry = _ref.entry;
9
10 return {
11 $schema: 'http://json-schema.org/draft-04/schema#',
12 additionalProperties: false,
13 type: 'object',
14 properties: {
15 styleExtensions: {
16 type: 'array',
17 items: {
18 type: 'string'
19 },
20 default: ['.css']
21 },
22 minimize: {
23 type: 'boolean'
24 },
25 moduleExtensions: {
26 type: 'array',
27 items: {
28 type: 'string'
29 }
30 },
31 paths: parsePaths(entry),
32 purifyOptions: {
33 type: 'object',
34 properties: {}
35 },
36 verbose: {
37 type: 'boolean'
38 }
39 },
40 required: ['paths']
41 };
42};
43
44function parsePaths(entry) {
45 var ret = {
46 type: ['array', 'object']
47 };
48
49 if (entry instanceof Object) {
50 ret.additionalProperties = false;
51 ret.properties = generateProperties(entry);
52 } else {
53 ret.items = {
54 type: 'string'
55 };
56 }
57
58 return ret;
59}
60
61function generateProperties(entry) {
62 var ret = {};
63
64 Object.keys(entry).forEach(function (e) {
65 ret[e] = {
66 type: ['array', 'string'],
67 items: {
68 type: 'string'
69 }
70 };
71 });
72
73 return ret;
74}
75
76exports.default = schema;
\No newline at end of file