presetter 3.5.4 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBV3JDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQWFqQixNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osZ0JBQTBDLE1BQU07SUFFaEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRzlDLFFBQVEsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLEVBQUU7UUFDNUMsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUN4RCxLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUNsRDtZQUNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQVFELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsV0FBbUIsRUFDbkIsT0FBaUI7SUFFakIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxRQUFRLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUM1QixLQUFLLE9B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
|
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>;
|