presetter 3.5.5 → 4.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/LICENSE +21 -0
- package/README.md +3 -3
- package/bin/cli.js +5 -0
- package/bin/run-p.js +6 -0
- package/bin/run-s.js +6 -0
- package/bin/{run → run.js} +4 -2
- package/lib/content.d.ts +1 -1
- package/lib/content.js +58 -66
- package/lib/directive.d.ts +3 -3
- package/lib/directive.js +12 -17
- package/lib/error.js +2 -6
- package/lib/executable/entry.d.ts +1 -1
- package/lib/executable/entry.js +57 -24
- package/lib/executable/error.js +12 -19
- package/lib/executable/index.js +5 -6
- package/lib/index.d.ts +6 -6
- package/lib/index.js +7 -23
- package/lib/io.d.ts +7 -4
- package/lib/io.js +53 -57
- package/lib/package.d.ts +3 -5
- package/lib/package.js +18 -31
- package/lib/preset/content.d.ts +6 -0
- package/lib/preset/content.js +13 -0
- package/lib/preset/context.d.ts +2 -0
- package/lib/preset/context.js +14 -0
- package/lib/preset/graph.d.ts +4 -0
- package/lib/preset/graph.js +20 -0
- package/lib/preset/index.d.ts +3 -0
- package/lib/preset/index.js +4 -0
- package/lib/preset/mapping.d.ts +2 -0
- package/lib/preset/mapping.js +15 -0
- package/lib/preset/presetterRC.d.ts +5 -0
- package/lib/preset/presetterRC.js +38 -0
- package/lib/preset/scripts.d.ts +1 -0
- package/lib/preset/scripts.js +10 -0
- package/lib/preset/setup.d.ts +6 -0
- package/lib/preset/setup.js +43 -0
- package/lib/preset/unset.d.ts +1 -0
- package/lib/preset/unset.js +14 -0
- package/lib/resolution.d.ts +1 -1
- package/lib/resolution.js +11 -17
- package/lib/run.d.ts +5 -1
- package/lib/run.js +68 -74
- package/lib/scripts.d.ts +3 -3
- package/lib/scripts.js +13 -15
- package/lib/task.d.ts +8 -0
- package/lib/task.js +37 -0
- package/lib/template.d.ts +6 -6
- package/lib/template.js +25 -35
- package/lib/utilities/index.d.ts +1 -0
- package/lib/utilities/index.js +2 -0
- package/lib/utilities/mapValues.d.ts +1 -0
- package/lib/utilities/mapValues.js +4 -0
- package/package.json +35 -43
- package/bin/cli +0 -3
- package/lib/preset.d.ts +0 -15
- package/lib/preset.js +0 -188
- package/lib/types.d.ts +0 -73
- package/lib/types.js +0 -3
package/lib/executable/index.js
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxtQ0FBZ0M7QUFDaEMsbUNBQXNDO0FBRXRDLElBQUEsYUFBSyxHQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFXLENBQUMsQ0FBQyJ9
|
1
|
+
import { entry } from './entry.js';
|
2
|
+
import { handleError } from './error.js';
|
3
|
+
const [, , ...args] = process.argv;
|
4
|
+
entry(args).catch(handleError);
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFFbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyJ9
|
package/lib/index.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
export * from '
|
2
|
-
export * from './
|
3
|
-
export * from './
|
4
|
-
export * from './
|
5
|
-
export * from './
|
6
|
-
export * from './
|
1
|
+
export * from 'presetter-types';
|
2
|
+
export * from './content.js';
|
3
|
+
export * from './directive.js';
|
4
|
+
export * from './io.js';
|
5
|
+
export * from './resolution.js';
|
6
|
+
export * from './template.js';
|
package/lib/index.js
CHANGED
@@ -1,23 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
-
};
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
__exportStar(require("./content"), exports);
|
18
|
-
__exportStar(require("./directive"), exports);
|
19
|
-
__exportStar(require("./io"), exports);
|
20
|
-
__exportStar(require("./resolution"), exports);
|
21
|
-
__exportStar(require("./template"), exports);
|
22
|
-
__exportStar(require("./types"), exports);
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLHNDQUFvQjtBQUNwQiw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBRTFCLHlDQUF1QiJ9
|
1
|
+
export * from 'presetter-types';
|
2
|
+
export * from './content.js';
|
3
|
+
export * from './directive.js';
|
4
|
+
export * from './io.js';
|
5
|
+
export * from './resolution.js';
|
6
|
+
export * from './template.js';
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUMifQ==
|
package/lib/io.d.ts
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
import type { Template } from '
|
1
|
+
import type { Template } from 'presetter-types';
|
2
|
+
export interface IOOptions {
|
3
|
+
force?: boolean;
|
4
|
+
}
|
2
5
|
export declare function loadFile(path: string, defaultFormat?: 'json' | 'yaml'): Record<string, unknown>;
|
3
6
|
export declare function loadFile(path: string, defaultFormat?: 'text'): string;
|
4
7
|
export declare function serializeContent(destination: string, content: Template): string;
|
5
|
-
export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string
|
6
|
-
export declare function linkFiles(root: string, configurationLink: Record<string, string
|
7
|
-
export declare function unlinkFiles(root: string, configurationLink: Record<string, string
|
8
|
+
export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string>, options?: IOOptions): void;
|
9
|
+
export declare function linkFiles(root: string, configurationLink: Record<string, string>, options?: IOOptions): void;
|
10
|
+
export declare function unlinkFiles(root: string, configurationLink: Record<string, string>, options?: IOOptions): void;
|
package/lib/io.js
CHANGED
@@ -1,94 +1,90 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
const fs_1 = require("fs");
|
6
|
-
const js_yaml_1 = require("js-yaml");
|
7
|
-
const path_1 = require("path");
|
1
|
+
import { info } from 'node:console';
|
2
|
+
import { lstatSync, mkdirSync, readFileSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
|
3
|
+
import { basename, dirname, extname, relative, resolve } from 'node:path';
|
4
|
+
import { dump, load } from 'js-yaml';
|
8
5
|
const INDENT = 2;
|
9
|
-
function loadFile(path, defaultFormat = 'text') {
|
10
|
-
const content =
|
11
|
-
switch (
|
6
|
+
export function loadFile(path, defaultFormat = 'text') {
|
7
|
+
const content = readFileSync(path).toString();
|
8
|
+
switch (extname(path) || `.${defaultFormat}`) {
|
12
9
|
case '.json':
|
13
10
|
return JSON.parse(content);
|
14
11
|
case '.yaml':
|
15
12
|
case '.yml':
|
16
|
-
return
|
13
|
+
return load(content);
|
17
14
|
default:
|
18
15
|
return content;
|
19
16
|
}
|
20
17
|
}
|
21
|
-
|
22
|
-
function serializeContent(destination, content) {
|
18
|
+
export function serializeContent(destination, content) {
|
23
19
|
if (typeof content === 'string') {
|
24
20
|
return content;
|
25
21
|
}
|
26
|
-
switch (
|
22
|
+
switch (extname(destination)) {
|
27
23
|
case '.yaml':
|
28
24
|
case '.yml':
|
29
|
-
return
|
25
|
+
return dump(content);
|
30
26
|
case '.json':
|
31
27
|
default:
|
32
28
|
return JSON.stringify(content, null, INDENT);
|
33
29
|
}
|
34
30
|
}
|
35
|
-
|
36
|
-
|
31
|
+
export function writeFiles(root, config, pathMap, options) {
|
32
|
+
const { force = false } = { ...options };
|
37
33
|
for (const [key, content] of Object.entries(config)) {
|
38
34
|
const destination = pathMap[key];
|
39
|
-
if (
|
40
|
-
destination
|
41
|
-
(
|
42
|
-
(
|
43
|
-
(
|
35
|
+
if (force ||
|
36
|
+
!lstatSync(destination, { throwIfNoEntry: false }) ||
|
37
|
+
destination !== resolve(root, key)) {
|
38
|
+
info(`Generating ${key}`);
|
39
|
+
ensureFile(destination, serializeContent(destination, content));
|
44
40
|
}
|
45
41
|
else {
|
46
|
-
|
42
|
+
info(`Skipping ${key}`);
|
47
43
|
}
|
48
44
|
}
|
49
45
|
}
|
50
|
-
|
51
|
-
|
46
|
+
export function linkFiles(root, configurationLink, options) {
|
47
|
+
const { force = false } = { ...options };
|
52
48
|
for (const [file, destination] of Object.entries(configurationLink)) {
|
53
|
-
const
|
54
|
-
const to =
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
(
|
60
|
-
(0, fs_1.symlinkSync)(to, link);
|
61
|
-
}
|
62
|
-
else if (to !== (0, path_1.basename)(to)) {
|
63
|
-
(0, console_1.info)(`Skipping ${(0, path_1.relative)(root, link)} => ${to}`);
|
49
|
+
const path = resolve(root, file);
|
50
|
+
const to = relative(dirname(path), destination);
|
51
|
+
const pathStat = lstatSync(path, { throwIfNoEntry: false });
|
52
|
+
if (to !== basename(to) &&
|
53
|
+
(!pathStat || pathStat.isSymbolicLink() || force)) {
|
54
|
+
info(`Linking ${relative(root, path)} => ${to}`);
|
55
|
+
ensureLink(path, to);
|
64
56
|
}
|
65
57
|
}
|
66
58
|
}
|
67
|
-
|
68
|
-
|
59
|
+
export function unlinkFiles(root, configurationLink, options) {
|
60
|
+
const { force = false } = { ...options };
|
69
61
|
for (const [name, destination] of Object.entries(configurationLink)) {
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
continue;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
catch (_a) {
|
62
|
+
const link = resolveLink(resolve(root, name));
|
63
|
+
const to = relative(root, destination);
|
64
|
+
if (link === to || force) {
|
65
|
+
info(`Removing ${name}`);
|
66
|
+
unlinkSync(resolve(root, name));
|
67
|
+
continue;
|
80
68
|
}
|
81
|
-
|
69
|
+
info(`Skipping ${name}`);
|
82
70
|
}
|
83
71
|
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
72
|
+
function resolveLink(path) {
|
73
|
+
const pathStat = lstatSync(path, { throwIfNoEntry: false });
|
74
|
+
return pathStat?.isSymbolicLink() ? readlinkSync(path) : null;
|
75
|
+
}
|
76
|
+
function ensureLink(path, to) {
|
77
|
+
mkdirSync(dirname(path), { recursive: true });
|
78
|
+
if (lstatSync(path, { throwIfNoEntry: false })) {
|
79
|
+
unlinkSync(path);
|
89
80
|
}
|
90
|
-
|
91
|
-
|
81
|
+
symlinkSync(to, path);
|
82
|
+
}
|
83
|
+
function ensureFile(path, content) {
|
84
|
+
mkdirSync(dirname(path), { recursive: true });
|
85
|
+
if (lstatSync(path, { throwIfNoEntry: false })) {
|
86
|
+
unlinkSync(path);
|
92
87
|
}
|
88
|
+
writeFileSync(path, content);
|
93
89
|
}
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBV3JDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQWFqQixNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osZ0JBQTBDLE1BQU07SUFFaEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRzlDLFFBQVEsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLEVBQUU7UUFDNUMsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUN4RCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUNsRDtZQUNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQVFELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsV0FBbUIsRUFDbkIsT0FBaUI7SUFFakIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxRQUFRLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUM1QixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssT0FBTyxDQUFDO1FBQ2I7WUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNoRDtBQUNILENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixJQUFZLEVBQ1osTUFBZ0MsRUFDaEMsT0FBK0IsRUFDL0IsT0FBbUI7SUFFbkIsTUFBTSxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFekMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbkQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBR2pDLElBRUUsS0FBSztZQUVMLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUVsRCxXQUFXLEtBQUssT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFDbEM7WUFDQSxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBRTFCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDakU7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekI7S0FDRjtBQUNILENBQUM7QUFRRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixJQUFZLEVBQ1osaUJBQXlDLEVBQ3pDLE9BQW1CO0lBRW5CLE1BQU0sRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBRXpDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDbkUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWhELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUVFLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBRW5CLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUNqRDtZQUNBLElBQUksQ0FBQyxXQUFXLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3RCO0tBQ0Y7QUFDSCxDQUFDO0FBUUQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBWSxFQUNaLGlCQUF5QyxFQUN6QyxPQUFtQjtJQUVuQixNQUFNLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQ25FLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksS0FBSyxFQUFFLElBQUksS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoQyxTQUFTO1NBQ1Y7UUFFRCxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzFCO0FBQ0gsQ0FBQztBQU9ELFNBQVMsV0FBVyxDQUFDLElBQVk7SUFDL0IsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRTVELE9BQU8sUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoRSxDQUFDO0FBT0QsU0FBUyxVQUFVLENBQUMsSUFBWSxFQUFFLEVBQVU7SUFFMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRzlDLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQzlDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNsQjtJQUdELFdBQVcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQU9ELFNBQVMsVUFBVSxDQUFDLElBQVksRUFBRSxPQUFlO0lBRS9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUc5QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbEI7SUFHRCxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLENBQUMifQ==
|
package/lib/package.d.ts
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
import type {
|
2
|
-
export
|
1
|
+
import type { PackageJson } from 'type-fest';
|
2
|
+
export type Package = {
|
3
3
|
path: string;
|
4
|
-
json:
|
5
|
-
scripts: Record<string, string>;
|
6
|
-
};
|
4
|
+
json: PackageJson;
|
7
5
|
};
|
8
6
|
export declare function arePeerPackagesAutoInstalled(): boolean;
|
9
7
|
export declare function getPackage(root?: string): Promise<Package>;
|
package/lib/package.js
CHANGED
@@ -1,21 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
exports.reifyDependencies = exports.getPackage = exports.arePeerPackagesAutoInstalled = void 0;
|
7
|
-
const arborist_1 = require("@npmcli/arborist");
|
8
|
-
const config_1 = __importDefault(require("@npmcli/config"));
|
9
|
-
const lodash_1 = require("lodash");
|
10
|
-
const os_1 = require("os");
|
11
|
-
const path_1 = require("path");
|
12
|
-
const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
1
|
+
import { homedir } from 'node:os';
|
2
|
+
import { resolve } from 'node:path';
|
3
|
+
import { Arborist } from '@npmcli/arborist';
|
4
|
+
import Config from '@npmcli/config';
|
5
|
+
import { readPackageUp } from 'read-pkg-up';
|
13
6
|
const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
|
14
|
-
function arePeerPackagesAutoInstalled() {
|
15
|
-
|
16
|
-
const [
|
17
|
-
const [
|
18
|
-
const [major] = (_d = version === null || version === void 0 ? void 0 : version.split('.')) !== null && _d !== void 0 ? _d : [];
|
7
|
+
export function arePeerPackagesAutoInstalled() {
|
8
|
+
const [clientID] = process.env['npm_config_user_agent']?.split(' ') ?? [];
|
9
|
+
const [name, version] = clientID?.split('/') ?? [];
|
10
|
+
const [major] = version?.split('.') ?? [];
|
19
11
|
const isNPM = name === 'npm';
|
20
12
|
const isNonNPM = name !== 'npm';
|
21
13
|
return (isNonNPM ||
|
@@ -23,24 +15,20 @@ function arePeerPackagesAutoInstalled() {
|
|
23
15
|
major !== undefined &&
|
24
16
|
parseInt(major) >= NPM_VERSION_FOR_PEER_INSTALLATION));
|
25
17
|
}
|
26
|
-
|
27
|
-
|
28
|
-
const detail = await (0, read_pkg_up_1.default)({ cwd: root, normalize: true });
|
18
|
+
export async function getPackage(root) {
|
19
|
+
const detail = await readPackageUp({ cwd: root, normalize: true });
|
29
20
|
if (!detail) {
|
30
21
|
throw new Error("failed to find target's package.json");
|
31
22
|
}
|
32
23
|
const path = detail.path;
|
33
|
-
const json =
|
34
|
-
scripts: {},
|
35
|
-
});
|
24
|
+
const json = detail.packageJson;
|
36
25
|
return { path, json };
|
37
26
|
}
|
38
|
-
|
39
|
-
|
40
|
-
const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = Object.assign({}, args);
|
27
|
+
export async function reifyDependencies(args) {
|
28
|
+
const { root, add = [], remove = [], saveAs = 'prod', lockFile = false, } = { ...args };
|
41
29
|
const config = await getNPMConfig();
|
42
30
|
const workspacesEnabled = arePeerPackagesAutoInstalled();
|
43
|
-
const arborist = new
|
31
|
+
const arborist = new Arborist({ path: root, workspacesEnabled, ...config });
|
44
32
|
const actualTree = await arborist.reify({
|
45
33
|
add,
|
46
34
|
rm: remove,
|
@@ -53,11 +41,10 @@ async function reifyDependencies(args) {
|
|
53
41
|
spec: edge.spec,
|
54
42
|
}));
|
55
43
|
}
|
56
|
-
exports.reifyDependencies = reifyDependencies;
|
57
44
|
async function getNPMConfig() {
|
58
|
-
const config = new
|
45
|
+
const config = new Config({
|
59
46
|
definitions: {
|
60
|
-
userconfig: { default:
|
47
|
+
userconfig: { default: resolve(homedir(), '.npmrc'), type: String },
|
61
48
|
registry: { default: 'https://registry.npmjs.org', type: String },
|
62
49
|
},
|
63
50
|
npmPath: '.',
|
@@ -68,4 +55,4 @@ async function getNPMConfig() {
|
|
68
55
|
await config.load();
|
69
56
|
return config.flat;
|
70
57
|
}
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxNQUFNLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk1QyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsQ0FBQztBQWM1QyxNQUFNLFVBQVUsNEJBQTRCO0lBSTFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFHMUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFHcEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUssRUFBa0IsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUM7SUFFaEMsT0FBTyxDQUVMLFFBQVE7UUFDUixDQUFDLEtBQUs7WUFDSixLQUFLLEtBQUssU0FBUztZQUNuQixRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksaUNBQWlDLENBQUMsQ0FDeEQsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFhO0lBRTVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUduRSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsV0FBMEIsQ0FBQztJQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFZRCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBTXZDO0lBQ0MsTUFBTSxFQUNKLElBQUksRUFDSixHQUFHLEdBQUcsRUFBRSxFQUNSLE1BQU0sR0FBRyxFQUFFLEVBQ1gsTUFBTSxHQUFHLE1BQU0sRUFDZixRQUFRLEdBQUcsS0FBSyxHQUNqQixHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUdoQixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLEVBQUUsQ0FBQztJQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRzVFLE1BQU0sVUFBVSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN0QyxHQUFHO1FBQ0gsRUFBRSxFQUFFLE1BQU07UUFDVixRQUFRLEVBQUUsTUFBTTtRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxJQUFJO0tBQ2IsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7S0FDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBTUQsS0FBSyxVQUFVLFlBQVk7SUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDeEIsV0FBVyxFQUFFO1lBQ1gsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ25FLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1NBQ2xFO1FBQ0QsT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsQ0FDUCxNQUE4QixFQUM5QixlQUF1QyxFQUNqQyxFQUFFO1lBSVIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXBCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztBQUNyQixDQUFDIn0=
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { resolveContext, resolveTemplate } from '../content.js';
|
2
|
+
import { linkFiles, writeFiles } from '../io.js';
|
3
|
+
import { getPresetGraph } from './graph.js';
|
4
|
+
import { getDestinationMap } from './mapping.js';
|
5
|
+
export async function bootstrapContent(context, options) {
|
6
|
+
const graph = await getPresetGraph(context);
|
7
|
+
const resolvedContext = await resolveContext({ graph, context });
|
8
|
+
const content = await resolveTemplate({ graph, context: resolvedContext });
|
9
|
+
const destinationMap = await getDestinationMap(content, resolvedContext);
|
10
|
+
writeFiles(context.target.root, content, destinationMap, options);
|
11
|
+
linkFiles(context.target.root, destinationMap, options);
|
12
|
+
}
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWU5QyxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUFzQixFQUN0QixPQUEwQjtJQUUxQixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXpFLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyJ9
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { dirname } from 'node:path';
|
2
|
+
import { getPackage } from '../package.js';
|
3
|
+
import { getPresetterRC } from './presetterRC.js';
|
4
|
+
export async function getContext() {
|
5
|
+
const { json, path } = await getPackage();
|
6
|
+
const root = dirname(path);
|
7
|
+
const target = { name: json.name, root, package: json };
|
8
|
+
const custom = await getPresetterRC(root);
|
9
|
+
return {
|
10
|
+
target,
|
11
|
+
custom,
|
12
|
+
};
|
13
|
+
}
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQzFDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUMsT0FBTztRQUNMLE1BQU07UUFDTixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMifQ==
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { PresetAsset, PresetContext, PresetGraph, PresetNode } from 'presetter-types';
|
2
|
+
export declare function getPresetAsset(name: string, context: PresetContext): Promise<PresetAsset>;
|
3
|
+
export declare function getPresetGraph(context: PresetContext): Promise<PresetGraph>;
|
4
|
+
export declare function getPresetNode(name: string, context: PresetContext): Promise<PresetNode>;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
export async function getPresetAsset(name, context) {
|
2
|
+
try {
|
3
|
+
const { default: getPresetAsset } = (await import(name));
|
4
|
+
return await getPresetAsset(context);
|
5
|
+
}
|
6
|
+
catch {
|
7
|
+
throw new Error(`cannot resolve preset ${name}`);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
export async function getPresetGraph(context) {
|
11
|
+
const { preset } = context.custom;
|
12
|
+
const presets = Array.isArray(preset) ? preset : [preset];
|
13
|
+
return Promise.all(presets.map(async (name) => getPresetNode(name, context)));
|
14
|
+
}
|
15
|
+
export async function getPresetNode(name, context) {
|
16
|
+
const asset = await getPresetAsset(name, context);
|
17
|
+
const nodes = await Promise.all((asset.extends ?? []).map(async (extension) => getPresetNode(extension, context)));
|
18
|
+
return { name, asset, nodes };
|
19
|
+
}
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2dyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQSxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBWSxFQUNaLE9BQXNCO0lBRXRCLElBQUk7UUFFRixNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBRXRELENBQUM7UUFFRixPQUFPLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQXNCO0lBR3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBUUQsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQ2pDLElBQVksRUFDWixPQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUNsQyxDQUNGLENBQUM7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export * from './scripts.js';
|
2
|
+
export * from './setup.js';
|
3
|
+
export * from './unset.js';
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyJ9
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { resolve } from 'node:path';
|
2
|
+
import resolvePackage from 'resolve-pkg';
|
3
|
+
export async function getDestinationMap(template, context) {
|
4
|
+
const { custom: { noSymlinks }, target: { root }, } = context;
|
5
|
+
const presetterDir = resolvePackage('presetter', { cwd: root });
|
6
|
+
const outDir = resolve(presetterDir, 'generated', context.target.name);
|
7
|
+
const relativePaths = [...Object.keys(template)];
|
8
|
+
return Object.fromEntries([
|
9
|
+
...relativePaths.map((relativePath) => [
|
10
|
+
relativePath,
|
11
|
+
resolve(noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
|
12
|
+
]),
|
13
|
+
]);
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sY0FBYyxNQUFNLGFBQWEsQ0FBQztBQVV6QyxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxHQUNqQixHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBYSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhFLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFakQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBb0IsRUFBRSxDQUFDO1lBQ3ZELFlBQVk7WUFDWixPQUFPLENBRUwsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDaEUsWUFBWSxDQUNiO1NBQ0YsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import type { PresetterConfig } from 'presetter-types';
|
2
|
+
export declare function getPresetterRCPaths(base: string): Promise<string[]>;
|
3
|
+
export declare function getPresetterRC(root: string): Promise<PresetterConfig>;
|
4
|
+
export declare function updatePresetterRC(root: string, config: PresetterConfig): Promise<void>;
|
5
|
+
export declare function assertPresetterRC(value: unknown): asserts value is PresetterConfig;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { existsSync, writeFileSync } from 'node:fs';
|
2
|
+
import { dirname, resolve } from 'node:path';
|
3
|
+
import { readPackageUp } from 'read-pkg-up';
|
4
|
+
import { loadFile } from '../io.js';
|
5
|
+
import { isJSON, merge } from '../template.js';
|
6
|
+
const PRESETTERRC = '.presetterrc';
|
7
|
+
const JSON_INDENT = 2;
|
8
|
+
export async function getPresetterRCPaths(base) {
|
9
|
+
const filesFromBase = ['', '.json']
|
10
|
+
.map((ext) => resolve(base, `${PRESETTERRC}${ext}`))
|
11
|
+
.filter(existsSync);
|
12
|
+
const parent = await readPackageUp({ cwd: dirname(base) });
|
13
|
+
const filesFromParent = parent?.path
|
14
|
+
? await getPresetterRCPaths(dirname(base))
|
15
|
+
: [];
|
16
|
+
return [...filesFromParent, ...filesFromBase];
|
17
|
+
}
|
18
|
+
export async function getPresetterRC(root) {
|
19
|
+
const paths = await getPresetterRCPaths(root);
|
20
|
+
if (!paths.length) {
|
21
|
+
throw new Error('missing presetter configuration file');
|
22
|
+
}
|
23
|
+
const configs = paths.map((path) => loadFile(path, 'json'));
|
24
|
+
const mergedConfig = configs.reduce((mergedConfig, config) => merge(mergedConfig, config), {});
|
25
|
+
assertPresetterRC(mergedConfig);
|
26
|
+
return mergedConfig;
|
27
|
+
}
|
28
|
+
export async function updatePresetterRC(root, config) {
|
29
|
+
const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
|
30
|
+
writeFileSync(resolve(root, `${PRESETTERRC}.json`), JSON.stringify(merge(existingPresetterRC, config), null, JSON_INDENT));
|
31
|
+
}
|
32
|
+
export function assertPresetterRC(value) {
|
33
|
+
if (!isJSON(value) ||
|
34
|
+
(typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
|
35
|
+
throw new Error(`invalid presetter configuration file`);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU01QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFFbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBT3RCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFHM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxFQUFFLElBQUk7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxPQUFPLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBWTtJQUUvQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQU9ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLElBQVksRUFDWixNQUF1QjtJQUV2QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFekUsYUFBYSxDQUNYLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLE9BQU8sQ0FBQyxFQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQ3RFLENBQUM7QUFDSixDQUFDO0FBTUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjO0lBRWQsSUFDRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDZCxDQUFDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDeEU7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDIn0=
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function getScripts(): Promise<Record<string, string>>;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { resolveContext, resolveScripts } from '../content.js';
|
2
|
+
import { getContext } from './context.js';
|
3
|
+
import { getPresetGraph } from './graph.js';
|
4
|
+
export async function getScripts() {
|
5
|
+
const context = await getContext();
|
6
|
+
const graph = await getPresetGraph(context);
|
7
|
+
const resolvedContext = await resolveContext({ graph, context });
|
8
|
+
return resolveScripts({ graph, context: resolvedContext });
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNekMsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVqRSxPQUFPLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDIn0=
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { info } from 'node:console';
|
2
|
+
import { dirname } from 'node:path';
|
3
|
+
import { readPackage } from 'read-pkg';
|
4
|
+
import { writePackage } from 'write-pkg';
|
5
|
+
import { arePeerPackagesAutoInstalled, getPackage, reifyDependencies, } from '../package.js';
|
6
|
+
import { bootstrapContent } from './content.js';
|
7
|
+
import { getContext } from './context.js';
|
8
|
+
import { updatePresetterRC } from './presetterRC.js';
|
9
|
+
export async function bootstrapPreset(options) {
|
10
|
+
const context = await getContext();
|
11
|
+
if (!arePeerPackagesAutoInstalled()) {
|
12
|
+
await reifyDependencies({ root: context.target.root });
|
13
|
+
}
|
14
|
+
await bootstrapContent(context, options);
|
15
|
+
}
|
16
|
+
export async function setupPreset(...uris) {
|
17
|
+
const { path } = await getPackage();
|
18
|
+
const root = dirname(path);
|
19
|
+
const packageBefore = (await readPackage({ cwd: root })).devDependencies;
|
20
|
+
info(`Installing ${uris.join(' ')}... it may take a few moment...`);
|
21
|
+
await reifyDependencies({
|
22
|
+
root,
|
23
|
+
add: ['presetter', ...uris],
|
24
|
+
saveAs: 'dev',
|
25
|
+
lockFile: true,
|
26
|
+
});
|
27
|
+
const packageAfter = (await readPackage({ cwd: root })).devDependencies;
|
28
|
+
const newPackages = getNewPackages({ ...packageBefore }, { ...packageAfter });
|
29
|
+
const preset = newPackages.filter((name) => name !== 'presetter');
|
30
|
+
info('Updating .presetterrc.json & package.json');
|
31
|
+
await updatePresetterRC(root, { preset });
|
32
|
+
const context = await getContext();
|
33
|
+
await bootstrapContent(context);
|
34
|
+
const json = context.target.package;
|
35
|
+
const scripts = { prepare: 'presetter bootstrap', ...json.scripts };
|
36
|
+
const patched = { ...json, scripts };
|
37
|
+
await writePackage(root, patched);
|
38
|
+
info('Done. Enjoy coding!');
|
39
|
+
}
|
40
|
+
function getNewPackages(before, after) {
|
41
|
+
return Object.keys(after).filter((name) => !before[name]);
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixVQUFVLEVBQ1YsaUJBQWlCLEdBQ2xCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWNsRCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsT0FBMEI7SUFFMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUduQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsRUFBRTtRQUNuQyxNQUFNLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUdELE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFNRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFHakQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDcEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUd6RSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBR0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBRWxFLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBRWxELE1BQU0saUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUcxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFHaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEUsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBK0MsQ0FBQyxDQUFDO0lBRTFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFRRCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function unsetPreset(): Promise<void>;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { resolveContext, resolveTemplate } from '../content.js';
|
2
|
+
import { unlinkFiles } from '../io.js';
|
3
|
+
import { getContext } from './context.js';
|
4
|
+
import { getPresetGraph } from './graph.js';
|
5
|
+
import { getDestinationMap } from './mapping.js';
|
6
|
+
export async function unsetPreset() {
|
7
|
+
const context = await getContext();
|
8
|
+
const graph = await getPresetGraph(context);
|
9
|
+
const resolvedContext = await resolveContext({ graph, context });
|
10
|
+
const content = await resolveTemplate({ graph, context: resolvedContext });
|
11
|
+
const configurationLink = await getDestinationMap(content, resolvedContext);
|
12
|
+
unlinkFiles(context.target.root, configurationLink);
|
13
|
+
}
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUs5QyxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
|
package/lib/resolution.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from '
|
1
|
+
import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from 'presetter-types';
|
2
2
|
export declare function getConfigKey(filename: string): string;
|
3
3
|
export declare function loadDynamicMap<F extends DynamicAssetField>(map: PresetAsset[F], context: ResolvedPresetContext<RequiredResolution<F>>): Promise<Record<string, DynamicAsset<F>>>;
|
4
4
|
export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
|