UNPKG

1.88 kBJavaScriptView Raw
1/**
2 * apeman bud for settings
3 * @memberof module:apeman-bud-settings/lib
4 * @function setup
5 * @param {object} params - Template params.
6 * @returns {object} - Coz bud configuration.
7 */
8
9"use strict";
10
11const argx = require('argx'),
12 stringcase = require('stringcase'),
13 assert = require('assert'),
14 _tmpl = require('./_tmpl');
15
16/** @lends setup */
17function setup(params) {
18 let args = argx(arguments);
19 params = args.shift('object') || {};
20
21 let name = params.name;
22
23 assert(name, 'params.name is required.');
24
25 return [].concat(name).map(name => {
26
27 let tmpl = _tmpl(name);
28 return {
29 force: false,
30 mode: '644',
31 path: `${stringcase.spinalcase(name)}.setting.json`,
32 tmpl: tmpl,
33 data: {
34 name: name,
35 params: params
36 }
37 }
38 });
39}
40
41setup.ui = function (params) {
42 params = params || {};
43 params.ui = true;
44 return setup(params);
45};
46
47setup.react = function (params) {
48 params = params || {};
49 params.react = true;
50 params.middlewares = params.middlewares || [
51 'props'
52 ];
53 params.routes = params.routes || [
54 'index',
55 'other',
56 'onetime'
57 ];
58 return setup(params);
59};
60
61
62setup.api = function (params) {
63 params = params || {};
64 params.api = true;
65 params.base = '/api';
66 params.routes = params.routes || [
67 'captcha',
68 'user',
69 'verify',
70 'profile',
71 'recover',
72 'sign'
73 ];
74 return setup(params);
75};
76
77setup.adminApi = function (params) {
78 params = params || {};
79 params.adminApi = true;
80 params.base = '/api';
81 params.routes = params.routes || [
82 'user',
83 'sign'
84 ];
85 return setup(params);
86};
87
88module.exports = setup;