@cabloy/module-glob 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +454 -0
- package/package.json +26 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @cabloy/module-glob
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
glob: typeof eggBornMglob;
|
|
3
|
+
};
|
|
4
|
+
export default _default;
|
|
5
|
+
declare function eggBornMglob(options: any): {
|
|
6
|
+
suites: {};
|
|
7
|
+
modules: {};
|
|
8
|
+
modulesArray: never[];
|
|
9
|
+
modulesLocal: {};
|
|
10
|
+
modulesGlobal: {};
|
|
11
|
+
modulesMonkey: {};
|
|
12
|
+
suitesLocal: {};
|
|
13
|
+
suitesVendor: {};
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const fse = require('fs-extra');
|
|
5
|
+
const semver = require('semver');
|
|
6
|
+
const chalk = require('chalk');
|
|
7
|
+
const boxen = require('boxen');
|
|
8
|
+
const eggBornUtils = require('egg-born-utils');
|
|
9
|
+
const mparse = require('@cabloy/module-parse').default;
|
|
10
|
+
const boxenOptions = { padding: 1, margin: 1, align: 'center', borderColor: 'yellow', borderStyle: 'round' };
|
|
11
|
+
exports.default = {
|
|
12
|
+
glob: eggBornMglob,
|
|
13
|
+
};
|
|
14
|
+
const __pathSuites = [
|
|
15
|
+
{
|
|
16
|
+
prefix: 'src/suite/',
|
|
17
|
+
vendor: false,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
prefix: 'src/suite-vendor/',
|
|
21
|
+
vendor: true,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
const __pathsModules = [
|
|
25
|
+
{
|
|
26
|
+
prefix: 'src/module/',
|
|
27
|
+
vendor: false,
|
|
28
|
+
public: false,
|
|
29
|
+
fronts: [{ js: 'front/src/main.js' }, { js: 'dist/front.js' }],
|
|
30
|
+
backends: [
|
|
31
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
32
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
prefix: 'src/module-system/',
|
|
37
|
+
vendor: false,
|
|
38
|
+
public: false,
|
|
39
|
+
fronts: [{ js: 'front/src/main.js' }, { js: 'dist/front.js' }],
|
|
40
|
+
backends: [
|
|
41
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
42
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
prefix: 'src/suite/*/modules/',
|
|
47
|
+
vendor: false,
|
|
48
|
+
public: false,
|
|
49
|
+
fronts: [{ js: 'front/src/main.js' }, { js: 'dist/front.js' }],
|
|
50
|
+
backends: [
|
|
51
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
52
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
prefix: 'src/module-vendor/',
|
|
57
|
+
vendor: true,
|
|
58
|
+
public: false,
|
|
59
|
+
fronts: [{ js: 'dist/front.js' }, { js: 'front/src/main.js' }],
|
|
60
|
+
backends: [
|
|
61
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
62
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
prefix: 'src/suite-vendor/*/modules/',
|
|
67
|
+
vendor: true,
|
|
68
|
+
public: false,
|
|
69
|
+
fronts: [{ js: 'dist/front.js' }, { js: 'front/src/main.js' }],
|
|
70
|
+
backends: [
|
|
71
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
72
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
prefix: 'node_modules/egg-born-module-',
|
|
77
|
+
vendor: true,
|
|
78
|
+
public: true,
|
|
79
|
+
node_modules: true,
|
|
80
|
+
fronts: [{ js: 'dist/front.js' }, { js: 'front/src/main.js' }],
|
|
81
|
+
backends: [
|
|
82
|
+
{ js: 'dist/backend.js', static: 'dist/staticBackend' },
|
|
83
|
+
{ js: 'backend/src/main.js', static: 'backend/static' },
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
// type: front/backend/all
|
|
88
|
+
function eggBornMglob(options) {
|
|
89
|
+
const { projectPath, disabledModules, disabledSuites, log, type } = options;
|
|
90
|
+
// context
|
|
91
|
+
const context = {
|
|
92
|
+
options,
|
|
93
|
+
suites: {},
|
|
94
|
+
modules: {},
|
|
95
|
+
modulesArray: [],
|
|
96
|
+
modulesLast: [],
|
|
97
|
+
//
|
|
98
|
+
modulesLocal: {},
|
|
99
|
+
modulesGlobal: {},
|
|
100
|
+
modulesMonkey: {},
|
|
101
|
+
//
|
|
102
|
+
suitesLocal: {},
|
|
103
|
+
suitesVendor: {},
|
|
104
|
+
//
|
|
105
|
+
disabledModules: __getDisabledModules(disabledModules),
|
|
106
|
+
disabledSuites: __getDisabledSuites(disabledSuites),
|
|
107
|
+
};
|
|
108
|
+
// parse suites
|
|
109
|
+
const suites = __parseSuites(projectPath);
|
|
110
|
+
// parse modules
|
|
111
|
+
const modules = __parseModules(projectPath, type);
|
|
112
|
+
// bind suites modules
|
|
113
|
+
__bindSuitesModules(suites, modules);
|
|
114
|
+
// check suites
|
|
115
|
+
__checkSuites(context, suites);
|
|
116
|
+
// order
|
|
117
|
+
__orderModules(context, modules);
|
|
118
|
+
// log
|
|
119
|
+
__logModules(context, log);
|
|
120
|
+
__logSuites(context, log);
|
|
121
|
+
// ok
|
|
122
|
+
return {
|
|
123
|
+
suites: context.suites,
|
|
124
|
+
modules: context.modules,
|
|
125
|
+
modulesArray: context.modulesArray,
|
|
126
|
+
//
|
|
127
|
+
modulesLocal: context.modulesLocal,
|
|
128
|
+
modulesGlobal: context.modulesGlobal,
|
|
129
|
+
modulesMonkey: context.modulesMonkey,
|
|
130
|
+
//
|
|
131
|
+
suitesLocal: context.suitesLocal,
|
|
132
|
+
suitesVendor: context.suitesVendor,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function __orderModules(context, modules) {
|
|
136
|
+
// 'a-version' first
|
|
137
|
+
__pushModule(context, modules, 'a-version');
|
|
138
|
+
// others
|
|
139
|
+
for (const key in modules) {
|
|
140
|
+
if (key !== 'a-version') {
|
|
141
|
+
__pushModule(context, modules, key);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// combine last
|
|
145
|
+
for (const module of context.modulesLast) {
|
|
146
|
+
context.modulesArray.push(module);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function __pushModule(context, modules, moduleRelativeName) {
|
|
150
|
+
// check if disable
|
|
151
|
+
if (context.disabledModules[moduleRelativeName])
|
|
152
|
+
return false;
|
|
153
|
+
// module
|
|
154
|
+
const module = modules[moduleRelativeName];
|
|
155
|
+
if (module.__ordering)
|
|
156
|
+
return true;
|
|
157
|
+
module.__ordering = true;
|
|
158
|
+
// dependencies
|
|
159
|
+
if (!__orderDependencies(context, modules, module, moduleRelativeName)) {
|
|
160
|
+
context.disabledModules[moduleRelativeName] = true;
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
// push this
|
|
164
|
+
context.modules[moduleRelativeName] = module;
|
|
165
|
+
if (module.package && module.package.eggBornModule && module.package.eggBornModule.last === true) {
|
|
166
|
+
context.modulesLast.push(module);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
context.modulesArray.push(module);
|
|
170
|
+
}
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
function __orderDependencies(context, modules, module, moduleRelativeName) {
|
|
174
|
+
if (context.options.disableCheckDependencies)
|
|
175
|
+
return true;
|
|
176
|
+
if (!module.package.eggBornModule || !module.package.eggBornModule.dependencies)
|
|
177
|
+
return true;
|
|
178
|
+
let enabled = true;
|
|
179
|
+
const dependencies = module.package.eggBornModule.dependencies;
|
|
180
|
+
for (const key in dependencies) {
|
|
181
|
+
const subModule = modules[key];
|
|
182
|
+
if (!subModule) {
|
|
183
|
+
const message = chalk.keyword('orange')(`module ${moduleRelativeName} disabled`) +
|
|
184
|
+
', because ' +
|
|
185
|
+
chalk.keyword('cyan')(`module ${key} not exists`);
|
|
186
|
+
console.log('\n' + boxen(message, boxenOptions) + '\n');
|
|
187
|
+
enabled = false; // process.exit(0);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const subModuleVersion = dependencies[key];
|
|
191
|
+
if (semver.lt(subModule.package.version, subModuleVersion)) {
|
|
192
|
+
console.warn(chalk.cyan(`module ${key} is old`));
|
|
193
|
+
process.exit(0);
|
|
194
|
+
}
|
|
195
|
+
if (!__pushModule(context, modules, key)) {
|
|
196
|
+
enabled = false;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return enabled;
|
|
200
|
+
}
|
|
201
|
+
function __parseModules(projectPath, type) {
|
|
202
|
+
const modules = {};
|
|
203
|
+
for (const __path of __pathsModules) {
|
|
204
|
+
const prefix = `${projectPath}/${__path.prefix}`;
|
|
205
|
+
const filePkgs = eggBornUtils.tools.globbySync(`${prefix}*/package.json`);
|
|
206
|
+
for (let filePkg of filePkgs) {
|
|
207
|
+
// name
|
|
208
|
+
let name = filePkg.split('/').slice(-2)[0];
|
|
209
|
+
// check if '-' prefix exists
|
|
210
|
+
if (name.substring(0, 1) === '-') {
|
|
211
|
+
// skip
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
// check if full name
|
|
215
|
+
if (!__path.public && name.indexOf('egg-born-module-') > -1) {
|
|
216
|
+
const pathSrc = path.join(prefix, name);
|
|
217
|
+
name = name.substring('egg-born-module-'.length);
|
|
218
|
+
filePkg = path.join(prefix, name, 'package.json');
|
|
219
|
+
const pathDest = path.join(prefix, name);
|
|
220
|
+
fse.moveSync(pathSrc, pathDest);
|
|
221
|
+
// throw new Error(`Should use relative name for local module: ${name}`);
|
|
222
|
+
}
|
|
223
|
+
// info
|
|
224
|
+
const info = mparse.parseInfo(name, 'module');
|
|
225
|
+
if (!info) {
|
|
226
|
+
throw new Error(`module name is not valid: ${name}`);
|
|
227
|
+
}
|
|
228
|
+
info.vendor = __path.vendor;
|
|
229
|
+
info.public = __path.public;
|
|
230
|
+
info.node_modules = __path.node_modules;
|
|
231
|
+
// check if exists
|
|
232
|
+
if (!modules[info.relativeName]) {
|
|
233
|
+
// meta
|
|
234
|
+
const _package = require(filePkg);
|
|
235
|
+
const root = path.dirname(filePkg);
|
|
236
|
+
const moduleMeta = {
|
|
237
|
+
name,
|
|
238
|
+
info,
|
|
239
|
+
root,
|
|
240
|
+
pkg: filePkg,
|
|
241
|
+
package: _package,
|
|
242
|
+
js: {},
|
|
243
|
+
static: {},
|
|
244
|
+
};
|
|
245
|
+
const _moduleMeta = __parseModule(__path, moduleMeta, type);
|
|
246
|
+
if (_moduleMeta) {
|
|
247
|
+
// enhance check public
|
|
248
|
+
// if (_moduleMeta.info.public) {
|
|
249
|
+
const file = _moduleMeta.js.front || _moduleMeta.js.backend;
|
|
250
|
+
_moduleMeta.info.public = file.replace(/\\/g, '/').indexOf('/dist/') > -1;
|
|
251
|
+
// }
|
|
252
|
+
// record
|
|
253
|
+
modules[info.relativeName] = _moduleMeta;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return modules;
|
|
259
|
+
}
|
|
260
|
+
function __parseModule(__path, moduleMeta, type) {
|
|
261
|
+
const root = moduleMeta.root;
|
|
262
|
+
// front
|
|
263
|
+
if (type !== 'backend') {
|
|
264
|
+
for (const item of __path.fronts) {
|
|
265
|
+
const file = path.join(root, item.js);
|
|
266
|
+
if (fse.existsSync(file)) {
|
|
267
|
+
moduleMeta.js.front = file;
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (!moduleMeta.js.front) {
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// backend
|
|
276
|
+
if (type !== 'front') {
|
|
277
|
+
for (const item of __path.backends) {
|
|
278
|
+
const file = path.join(root, item.js);
|
|
279
|
+
if (fse.existsSync(file)) {
|
|
280
|
+
moduleMeta.js.backend = file;
|
|
281
|
+
const staticBackendPath = path.normalize(path.join(root, item.static));
|
|
282
|
+
moduleMeta.static.backend = staticBackendPath;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (!moduleMeta.js.backend) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// ok
|
|
291
|
+
return moduleMeta;
|
|
292
|
+
}
|
|
293
|
+
function __logModules(context, log) {
|
|
294
|
+
for (const module of context.modulesArray) {
|
|
295
|
+
const relativeName = module.info.relativeName;
|
|
296
|
+
if (module.info.monkey) {
|
|
297
|
+
context.modulesMonkey[relativeName] = module;
|
|
298
|
+
}
|
|
299
|
+
if (module.info.public) {
|
|
300
|
+
context.modulesGlobal[relativeName] = module;
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
context.modulesLocal[relativeName] = module;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (!log)
|
|
307
|
+
return;
|
|
308
|
+
// log
|
|
309
|
+
console.log(chalk.yellow('\n=== Local Modules ==='));
|
|
310
|
+
for (const key in context.modulesLocal) {
|
|
311
|
+
console.log(chalk.cyan('> ' + key));
|
|
312
|
+
}
|
|
313
|
+
console.log(chalk.yellow('\n=== Global Modules ==='));
|
|
314
|
+
for (const key in context.modulesGlobal) {
|
|
315
|
+
console.log(chalk.cyan('> ' + key));
|
|
316
|
+
}
|
|
317
|
+
console.log(chalk.yellow('\n=== Monkey Modules ==='));
|
|
318
|
+
for (const key in context.modulesMonkey) {
|
|
319
|
+
console.log(chalk.cyan('> ' + key));
|
|
320
|
+
}
|
|
321
|
+
console.log(chalk.keyword('orange')(`\n=== Total Modules: ${context.modulesArray.length} ===`));
|
|
322
|
+
// console.log('\n');
|
|
323
|
+
}
|
|
324
|
+
function __logSuites(context, log) {
|
|
325
|
+
for (const suiteName in context.suites) {
|
|
326
|
+
const suite = context.suites[suiteName];
|
|
327
|
+
if (suite.info.vendor) {
|
|
328
|
+
context.suitesVendor[suiteName] = suite;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
context.suitesLocal[suiteName] = suite;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (!log)
|
|
335
|
+
return;
|
|
336
|
+
// log
|
|
337
|
+
console.log(chalk.yellow('\n=== Local Suites ==='));
|
|
338
|
+
for (const key in context.suitesLocal) {
|
|
339
|
+
console.log(chalk.cyan('> ' + key));
|
|
340
|
+
}
|
|
341
|
+
console.log(chalk.yellow('\n=== Vendor Suites ==='));
|
|
342
|
+
for (const key in context.suitesVendor) {
|
|
343
|
+
console.log(chalk.cyan('> ' + key));
|
|
344
|
+
}
|
|
345
|
+
console.log(chalk.keyword('orange')(`\n=== Total Suites: ${Object.keys(context.suites).length} ===`));
|
|
346
|
+
console.log('\n');
|
|
347
|
+
}
|
|
348
|
+
function __getDisabledModules(disabledModules) {
|
|
349
|
+
const disabledModulesMap = {};
|
|
350
|
+
if (disabledModules && disabledModules.length > 0) {
|
|
351
|
+
for (const moduleName of disabledModules) {
|
|
352
|
+
disabledModulesMap[moduleName] = true;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return disabledModulesMap;
|
|
356
|
+
}
|
|
357
|
+
function __getDisabledSuites(disabledSuites) {
|
|
358
|
+
const disabledSuitesMap = {};
|
|
359
|
+
if (disabledSuites && disabledSuites.length > 0) {
|
|
360
|
+
for (const suiteName of disabledSuites) {
|
|
361
|
+
disabledSuitesMap[suiteName] = true;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return disabledSuitesMap;
|
|
365
|
+
}
|
|
366
|
+
function __parseSuites(projectPath) {
|
|
367
|
+
const suites = {};
|
|
368
|
+
for (const __path of __pathSuites) {
|
|
369
|
+
const prefix = `${projectPath}/${__path.prefix}`;
|
|
370
|
+
const filePkgs = eggBornUtils.tools.globbySync(`${prefix}*/package.json`);
|
|
371
|
+
for (let filePkg of filePkgs) {
|
|
372
|
+
// name
|
|
373
|
+
let name = filePkg.split('/').slice(-2)[0];
|
|
374
|
+
// check if '-' prefix exists
|
|
375
|
+
if (name.substring(0, 1) === '-') {
|
|
376
|
+
// skip
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
// check if full name
|
|
380
|
+
if (name.indexOf('egg-born-suite-') > -1) {
|
|
381
|
+
const pathSrc = path.join(prefix, name);
|
|
382
|
+
name = name.substring('egg-born-suite-'.length);
|
|
383
|
+
filePkg = path.join(prefix, name, 'package.json');
|
|
384
|
+
const pathDest = path.join(prefix, name);
|
|
385
|
+
fse.moveSync(pathSrc, pathDest);
|
|
386
|
+
// throw new Error(`Should use relative name for local suite: ${name}`);
|
|
387
|
+
}
|
|
388
|
+
// info
|
|
389
|
+
const info = mparse.parseInfo(name, 'suite');
|
|
390
|
+
if (!info) {
|
|
391
|
+
throw new Error(`suite name is not valid: ${name}`);
|
|
392
|
+
}
|
|
393
|
+
info.vendor = __path.vendor;
|
|
394
|
+
// check if exists
|
|
395
|
+
if (!suites[info.relativeName]) {
|
|
396
|
+
// meta
|
|
397
|
+
const _package = require(filePkg);
|
|
398
|
+
const root = path.dirname(filePkg);
|
|
399
|
+
suites[info.relativeName] = {
|
|
400
|
+
name,
|
|
401
|
+
info,
|
|
402
|
+
root,
|
|
403
|
+
pkg: filePkg,
|
|
404
|
+
package: _package,
|
|
405
|
+
modules: [],
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// ok
|
|
411
|
+
return suites;
|
|
412
|
+
}
|
|
413
|
+
const __suite_pattern1 = /src\/suite\/([^\/]+)\/modules/;
|
|
414
|
+
const __suite_pattern2 = /src\/suite-vendor\/([^\/]+)\/modules/;
|
|
415
|
+
function __bindSuitesModules(suites, modules) {
|
|
416
|
+
for (const moduleName in modules) {
|
|
417
|
+
const module = modules[moduleName];
|
|
418
|
+
// check
|
|
419
|
+
let res = module.root.match(__suite_pattern1);
|
|
420
|
+
if (!res) {
|
|
421
|
+
res = module.root.match(__suite_pattern2);
|
|
422
|
+
}
|
|
423
|
+
if (!res)
|
|
424
|
+
continue;
|
|
425
|
+
// suiteName
|
|
426
|
+
const suiteName = res[1];
|
|
427
|
+
const suite = suites[suiteName];
|
|
428
|
+
if (!suite) {
|
|
429
|
+
// means disabled
|
|
430
|
+
delete modules[moduleName];
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
// bind
|
|
434
|
+
module.suite = suiteName;
|
|
435
|
+
suite.modules.push(moduleName);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
function __checkSuites(context, suites) {
|
|
440
|
+
for (const key in suites) {
|
|
441
|
+
const suite = suites[key];
|
|
442
|
+
// check if disable
|
|
443
|
+
if (!context.disabledSuites[key]) {
|
|
444
|
+
context.suites[key] = suite;
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
// disabledModules
|
|
448
|
+
for (const moduleName of suite.modules) {
|
|
449
|
+
context.disabledModules[moduleName] = true;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=index.js.map
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cabloy/module-glob",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "cabloy module-glob",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*.js",
|
|
12
|
+
"dist/**/*.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"lint": "eslint ."
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"egg",
|
|
19
|
+
"egg-born",
|
|
20
|
+
"framework",
|
|
21
|
+
"cabloy"
|
|
22
|
+
],
|
|
23
|
+
"author": "zhennann",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {}
|
|
26
|
+
}
|