UNPKG

1.08 kBJavaScriptView Raw
1const path = require("path");
2const fs = require("fs");
3
4const resource = require("./resource");
5const transformer = require("./transformer");
6const shortcut = require("./shortcut");
7const logger = require("./logger");
8
9function load({resources, transforms, shortcuts}) {
10 if (resources) {
11 resources.forEach(resource.add);
12 }
13 if (transforms) {
14 transforms.forEach(transformer.add);
15 }
16 if (shortcuts) {
17 shortcuts.forEach(shortcut.addGlobal);
18 }
19}
20
21function findAndLoad(file) {
22 let dir = path.dirname(path.resolve(file));
23 let confPath;
24 let conf;
25 do {
26 confPath = path.join(dir, ".inline.js");
27 try {
28 conf = require(confPath);
29 // found
30 break;
31 } catch (err) {
32 // pass
33 }
34 try {
35 fs.accessSync(path.join(dir, "package.json"));
36 // don't go upper than package root
37 break;
38 } catch (err) {
39 // pass
40 }
41 dir = path.join(dir, "..");
42 } while (path.parse(dir).base);
43
44 if (conf) {
45 load(conf);
46 logger.log(`Use config: ${confPath}`);
47 }
48}
49
50module.exports = {findAndLoad, load};