presetter 3.5.5 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/cli.js +5 -0
  4. package/bin/run-p.js +6 -0
  5. package/bin/run-s.js +6 -0
  6. package/bin/{run → run.js} +4 -2
  7. package/lib/content.d.ts +1 -1
  8. package/lib/content.js +58 -66
  9. package/lib/directive.d.ts +3 -3
  10. package/lib/directive.js +12 -17
  11. package/lib/error.js +2 -6
  12. package/lib/executable/entry.d.ts +1 -1
  13. package/lib/executable/entry.js +57 -24
  14. package/lib/executable/error.js +12 -19
  15. package/lib/executable/index.js +5 -6
  16. package/lib/index.d.ts +6 -6
  17. package/lib/index.js +7 -23
  18. package/lib/io.d.ts +7 -4
  19. package/lib/io.js +53 -57
  20. package/lib/package.d.ts +3 -5
  21. package/lib/package.js +18 -31
  22. package/lib/preset/content.d.ts +6 -0
  23. package/lib/preset/content.js +13 -0
  24. package/lib/preset/context.d.ts +2 -0
  25. package/lib/preset/context.js +14 -0
  26. package/lib/preset/graph.d.ts +4 -0
  27. package/lib/preset/graph.js +20 -0
  28. package/lib/preset/index.d.ts +3 -0
  29. package/lib/preset/index.js +4 -0
  30. package/lib/preset/mapping.d.ts +2 -0
  31. package/lib/preset/mapping.js +15 -0
  32. package/lib/preset/presetterRC.d.ts +5 -0
  33. package/lib/preset/presetterRC.js +38 -0
  34. package/lib/preset/scripts.d.ts +1 -0
  35. package/lib/preset/scripts.js +10 -0
  36. package/lib/preset/setup.d.ts +6 -0
  37. package/lib/preset/setup.js +43 -0
  38. package/lib/preset/unset.d.ts +1 -0
  39. package/lib/preset/unset.js +14 -0
  40. package/lib/resolution.d.ts +1 -1
  41. package/lib/resolution.js +11 -17
  42. package/lib/run.d.ts +5 -1
  43. package/lib/run.js +68 -74
  44. package/lib/scripts.d.ts +3 -3
  45. package/lib/scripts.js +13 -15
  46. package/lib/task.d.ts +8 -0
  47. package/lib/task.js +37 -0
  48. package/lib/template.d.ts +6 -6
  49. package/lib/template.js +25 -35
  50. package/lib/utilities/index.d.ts +1 -0
  51. package/lib/utilities/index.js +2 -0
  52. package/lib/utilities/mapValues.d.ts +1 -0
  53. package/lib/utilities/mapValues.js +4 -0
  54. package/package.json +35 -43
  55. package/bin/cli +0 -3
  56. package/lib/preset.d.ts +0 -15
  57. package/lib/preset.js +0 -188
  58. package/lib/types.d.ts +0 -73
  59. package/lib/types.js +0 -3
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "presetter",
3
- "version": "3.5.5",
3
+ "version": "4.0.1",
4
4
  "engines": {
5
- "node": ">=12.10.0"
5
+ "node": ">=16.0.0"
6
6
  },
7
7
  "description": "Make project configurations clean with presets",
8
8
  "keywords": [
@@ -21,62 +21,54 @@
21
21
  "license": "MIT",
22
22
  "author": "Alvis HT Tang <alvis@hilbert.space>",
23
23
  "bin": {
24
- "presetter": "./bin/cli",
25
- "run": "./bin/run"
24
+ "presetter": "./bin/cli.js",
25
+ "run": "./bin/run.js",
26
+ "run-s": "./bin/run-s.js",
27
+ "run-p": "./bin/run-p.js"
26
28
  },
27
29
  "main": "lib/index.js",
28
- "module": "lib/index.mjs",
29
30
  "types": "lib/index.d.ts",
30
- "exports": {
31
- ".": {
32
- "require": "./lib/index.js",
33
- "import": "./lib/index.mjs"
34
- },
35
- "./package.json": "./package.json"
36
- },
31
+ "type": "module",
37
32
  "repository": {
38
33
  "type": "git",
39
34
  "url": "git+https://github.com/alvis/presetter.git"
40
35
  },
41
- "scripts": {
42
- "bootstrap": "npm run ts-node -- --eval \"require('./source/preset.ts').bootstrapPreset()\" && npm run script -- prepare",
43
- "build": "npm run script -- build",
44
- "clean": "npm run script -- clean",
45
- "coverage": "npm run script -- coverage",
46
- "lint": "npm run script -- lint",
47
- "prepublishOnly": "npm run bootstrap && npm run script -- prepublishOnly",
48
- "script": "npm run ts-node -- --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; require('./source/executable');\" -- run ",
49
- "stage": "npm run script -- stage --",
50
- "ts-node": "ts-node --cwd-mode --compiler-options=\"{\\\"esModuleInterop\\\":true,\\\"target\\\":\\\"es6\\\"}\" --transpile-only --require tsconfig-paths/register",
51
- "test": "npm run script -- test --",
52
- "watch": "npm run script -- watch --"
53
- },
54
36
  "devDependencies": {
55
37
  "@types/js-yaml": "^4.0.0",
56
- "@types/lodash": "^4.0.0",
57
38
  "@types/node": "*",
58
39
  "@types/yargs": "^17.0.0",
59
- "presetter-preset-strict": "file:../preset-strict",
60
- "ts-node": "^10.0.0",
61
- "tsconfig-paths": "^4.0.0",
62
- "type-fest": "^2.0.0",
63
- "typescript": "^4.0.0"
40
+ "type-fest": "^3.12.0",
41
+ "presetter-preset-strict": "4.0.1"
64
42
  },
65
43
  "dependencies": {
66
- "@npmcli/arborist": "^5.0.0",
67
- "@npmcli/config": "^4.0.0",
44
+ "@npmcli/arborist": "^6.0.0",
45
+ "@npmcli/config": "^6.0.0",
46
+ "@npmcli/run-script": "^6.0.0",
68
47
  "callsite-record": "^4.0.0",
69
- "chalk": "^4.0.0",
70
- "execa": "^5.0.0",
71
- "js-yaml": "^4.0.0",
72
- "lodash": "^4.0.0",
48
+ "chalk": "^5.2.0",
49
+ "execa": "^7.1.0",
50
+ "js-yaml": "^4.1.0",
51
+ "listr2": "^6.6.0",
73
52
  "mvdan-sh": "^0.10.0",
74
- "pupa": "^2.0.0",
75
- "read-pkg": "^5.0.0",
76
- "read-pkg-up": "^7.0.0",
53
+ "pupa": "^3.1.0",
54
+ "read-pkg": "^8.0.0",
55
+ "read-pkg-up": "^9.1.0",
77
56
  "resolve-pkg": "^2.0.0",
78
57
  "source-map-support": "^0.5.0",
79
- "write-pkg": "^4.0.0",
80
- "yargs": "^17.0.0"
58
+ "write-pkg": "^5.1.0",
59
+ "yargs": "^17.0.0",
60
+ "yargs-parser": "^21.0.0",
61
+ "presetter-types": "4.0.1"
62
+ },
63
+ "scripts": {
64
+ "bootstrap": "tsx --eval \"require('./source/preset').bootstrapPreset()\" && npm run prepare",
65
+ "build": "npm run script -- build",
66
+ "clean": "npm run script -- clean",
67
+ "coverage": "npm run script -- coverage --",
68
+ "lint": "npm run script -- lint",
69
+ "script": "tsx --eval \"process.argv = [...process.argv.slice(0, 2), 'run', ...process.argv.slice(2)]; require('./source/executable');\" -- run --template",
70
+ "stage": "npm run script -- stage --",
71
+ "test": "npm run script -- test --",
72
+ "watch": "npm run script -- watch --"
81
73
  }
82
- }
74
+ }
package/bin/cli DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- require('source-map-support').install();
3
- require('../lib/executable');
package/lib/preset.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { PresetAsset, PresetContext, PresetGraph, PresetNode, PresetterConfig, ResolvedPresetContext, Template } from './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;
6
- export declare function getPresetAsset(name: string, context: PresetContext): Promise<PresetAsset>;
7
- export declare function getPresetNode(name: string, context: PresetContext): Promise<PresetNode>;
8
- export declare function getPresetGraph(context: PresetContext): Promise<PresetGraph>;
9
- export declare function getScripts(): Promise<Record<string, string>>;
10
- export declare function setupPreset(...uris: string[]): Promise<void>;
11
- export declare function bootstrapPreset(): Promise<void>;
12
- export declare function bootstrapContent(context: PresetContext): Promise<void>;
13
- export declare function unsetPreset(): Promise<void>;
14
- export declare function getContext(): Promise<PresetContext>;
15
- export declare function getDestinationMap(template: Record<string, Template>, context: ResolvedPresetContext<'noSymlinks'>): Promise<Record<string, string>>;
package/lib/preset.js DELETED
@@ -1,188 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getDestinationMap = exports.getContext = exports.unsetPreset = exports.bootstrapContent = exports.bootstrapPreset = exports.setupPreset = exports.getScripts = exports.getPresetGraph = exports.getPresetNode = exports.getPresetAsset = exports.assertPresetterRC = exports.updatePresetterRC = exports.getPresetterRC = exports.getPresetterRCPaths = void 0;
30
- const console_1 = require("console");
31
- const fs_1 = require("fs");
32
- const lodash_1 = require("lodash");
33
- const path_1 = require("path");
34
- const read_pkg_1 = __importDefault(require("read-pkg"));
35
- const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
36
- const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
37
- const write_pkg_1 = __importDefault(require("write-pkg"));
38
- const content_1 = require("./content");
39
- const io_1 = require("./io");
40
- const package_1 = require("./package");
41
- const template_1 = require("./template");
42
- const PRESETTERRC = '.presetterrc';
43
- const JSON_INDENT = 2;
44
- async function getPresetterRCPaths(base) {
45
- const filesFromBase = ['', '.json']
46
- .map((ext) => (0, path_1.resolve)(base, `${PRESETTERRC}${ext}`))
47
- .filter(fs_1.existsSync);
48
- const parent = await (0, read_pkg_up_1.default)({ cwd: (0, path_1.dirname)(base) });
49
- const filesFromParent = (parent === null || parent === void 0 ? void 0 : parent.path)
50
- ? await getPresetterRCPaths((0, path_1.dirname)(parent.path))
51
- : [];
52
- return [...filesFromParent, ...filesFromBase];
53
- }
54
- exports.getPresetterRCPaths = getPresetterRCPaths;
55
- async function getPresetterRC(root) {
56
- const paths = await getPresetterRCPaths(root);
57
- const path = paths.pop();
58
- if (path) {
59
- const custom = (0, io_1.loadFile)(path, 'json');
60
- assertPresetterRC(custom);
61
- return custom;
62
- }
63
- throw new Error('Missing preset defined in .presetterrc');
64
- }
65
- exports.getPresetterRC = getPresetterRC;
66
- async function updatePresetterRC(root, config) {
67
- const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
68
- (0, fs_1.writeFileSync)((0, path_1.resolve)(root, `${PRESETTERRC}.json`), JSON.stringify((0, template_1.merge)(existingPresetterRC, config), null, JSON_INDENT));
69
- }
70
- exports.updatePresetterRC = updatePresetterRC;
71
- function assertPresetterRC(value) {
72
- if (!(0, template_1.isJSON)(value) ||
73
- (typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
74
- throw new Error(`invalid presetter configuration file`);
75
- }
76
- }
77
- exports.assertPresetterRC = assertPresetterRC;
78
- async function getPresetAsset(name, context) {
79
- try {
80
- const module = (0, resolve_pkg_1.default)(name, {
81
- cwd: context.target.root,
82
- });
83
- const { default: presetPresetAsset } = (await Promise.resolve().then(() => __importStar(require(module))));
84
- return await presetPresetAsset(context);
85
- }
86
- catch (_a) {
87
- throw new Error(`cannot resolve preset ${name}`);
88
- }
89
- }
90
- exports.getPresetAsset = getPresetAsset;
91
- async function getPresetNode(name, context) {
92
- var _a;
93
- const asset = await getPresetAsset(name, context);
94
- const nodes = await Promise.all(((_a = asset.extends) !== null && _a !== void 0 ? _a : []).map(async (extension) => getPresetNode(extension, context)));
95
- return { name, asset, nodes };
96
- }
97
- exports.getPresetNode = getPresetNode;
98
- async function getPresetGraph(context) {
99
- const { preset } = context.custom;
100
- const presets = Array.isArray(preset) ? preset : [preset];
101
- return Promise.all(presets.map(async (name) => getPresetNode(name, context)));
102
- }
103
- exports.getPresetGraph = getPresetGraph;
104
- async function getScripts() {
105
- const context = await getContext();
106
- const graph = await getPresetGraph(context);
107
- const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
108
- return (0, content_1.resolveScripts)({ graph, context: resolvedContext });
109
- }
110
- exports.getScripts = getScripts;
111
- async function setupPreset(...uris) {
112
- const { path } = await (0, package_1.getPackage)();
113
- const root = (0, path_1.dirname)(path);
114
- const packageBefore = (await (0, read_pkg_1.default)({ cwd: root })).devDependencies;
115
- (0, console_1.info)(`Installing ${uris.join(' ')}... it may take a few moment...`);
116
- await (0, package_1.reifyDependencies)({
117
- root,
118
- add: ['presetter', ...uris],
119
- saveAs: 'dev',
120
- lockFile: true,
121
- });
122
- const packageAfter = (await (0, read_pkg_1.default)({ cwd: root })).devDependencies;
123
- const newPackages = getNewPackages(Object.assign({}, packageBefore), Object.assign({}, packageAfter));
124
- const preset = newPackages.filter((name) => name !== 'presetter');
125
- (0, console_1.info)('Updating .presetterrc.json & package.json');
126
- await updatePresetterRC(root, { preset });
127
- const context = await getContext();
128
- await bootstrapContent(context);
129
- await (0, write_pkg_1.default)(root, (0, lodash_1.defaultsDeep)(context.target.package, {
130
- scripts: { prepare: 'presetter bootstrap' },
131
- }));
132
- (0, console_1.info)('Done. Enjoy coding!');
133
- }
134
- exports.setupPreset = setupPreset;
135
- async function bootstrapPreset() {
136
- const context = await getContext();
137
- if (!(0, package_1.arePeerPackagesAutoInstalled)()) {
138
- await (0, package_1.reifyDependencies)({ root: context.target.root });
139
- }
140
- await bootstrapContent(context);
141
- }
142
- exports.bootstrapPreset = bootstrapPreset;
143
- async function bootstrapContent(context) {
144
- const graph = await getPresetGraph(context);
145
- const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
146
- const content = await (0, content_1.resolveTemplate)({ graph, context: resolvedContext });
147
- const destinationMap = await getDestinationMap(content, resolvedContext);
148
- (0, io_1.writeFiles)(context.target.root, content, destinationMap);
149
- (0, io_1.linkFiles)(context.target.root, destinationMap);
150
- }
151
- exports.bootstrapContent = bootstrapContent;
152
- async function unsetPreset() {
153
- const context = await getContext();
154
- const graph = await getPresetGraph(context);
155
- const resolvedContext = await (0, content_1.resolveContext)({ graph, context });
156
- const content = await (0, content_1.resolveTemplate)({ graph, context: resolvedContext });
157
- const configurationLink = await getDestinationMap(content, resolvedContext);
158
- (0, io_1.unlinkFiles)(context.target.root, configurationLink);
159
- }
160
- exports.unsetPreset = unsetPreset;
161
- async function getContext() {
162
- const { json, path } = await (0, package_1.getPackage)();
163
- const root = (0, path_1.dirname)(path);
164
- const target = { name: json.name, root, package: json };
165
- const custom = await getPresetterRC(root);
166
- return {
167
- target,
168
- custom,
169
- };
170
- }
171
- exports.getContext = getContext;
172
- async function getDestinationMap(template, context) {
173
- const { custom: { noSymlinks }, target: { root }, } = context;
174
- const presetterDir = (0, resolve_pkg_1.default)('presetter', { cwd: root });
175
- const outDir = (0, path_1.resolve)(presetterDir, 'generated', context.target.name);
176
- const relativePaths = [...Object.keys(template)];
177
- return Object.fromEntries([
178
- ...relativePaths.map((relativePath) => [
179
- relativePath,
180
- (0, path_1.resolve)(noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
181
- ]),
182
- ]);
183
- }
184
- exports.getDestinationMap = getDestinationMap;
185
- function getNewPackages(before, after) {
186
- return Object.keys(after).filter((name) => !before[name]);
187
- }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3ByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLHFDQUErQjtBQUMvQiwyQkFBK0M7QUFDL0MsbUNBQXNDO0FBQ3RDLCtCQUF3QztBQUN4Qyx3REFBbUM7QUFDbkMsOERBQXdDO0FBQ3hDLDhEQUF5QztBQUN6QywwREFBcUM7QUFFckMsdUNBQTRFO0FBQzVFLDZCQUFvRTtBQUNwRSx1Q0FJbUI7QUFDbkIseUNBQTJDO0FBYzNDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFrQmYsS0FBSyxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDcEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO1NBQ2hDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBQSxjQUFPLEVBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLGVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBYSxFQUFDLEVBQUUsR0FBRyxFQUFFLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUczRCxNQUFNLGVBQWUsR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLElBQUEsY0FBTyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQWJELGtEQWFDO0FBT00sS0FB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
package/lib/types.d.ts DELETED
@@ -1,73 +0,0 @@
1
- import type { PackageJson } from 'read-pkg-up';
2
- import type { JsonObject } from 'type-fest';
3
- export declare type PresetGraph = PresetNode[];
4
- export declare type PresetNode = {
5
- name: string;
6
- asset: PresetAsset;
7
- nodes: PresetGraph;
8
- };
9
- export declare type PresetterConfig = {
10
- preset: string | string[];
11
- config?: Record<string, JsonObject | string[]>;
12
- scripts?: Record<string, string>;
13
- variable?: Record<string, string>;
14
- ignores?: IgnoreRule[];
15
- noSymlinks?: string[];
16
- };
17
- export interface PresetAsset {
18
- extends?: string[];
19
- template?: TemplateMap | TemplateMapGenerator;
20
- noSymlinks?: string[] | Generator<string[], 'variable'>;
21
- scripts?: Record<string, string> | string;
22
- variable?: Record<string, string>;
23
- supplementaryConfig?: ConfigMap | ConfigMapGenerator;
24
- supplementaryIgnores?: IgnoreRule[] | IgnoreRulesGenerator;
25
- supplementaryScripts?: Record<string, string> | string;
26
- }
27
- export interface ResolvedPresetAsset extends Omit<PresetAsset, 'extends'> {
28
- template?: Record<string, Template>;
29
- noSymlinks?: string[];
30
- scripts?: Record<string, string>;
31
- variable?: Record<string, string>;
32
- supplementaryConfig?: Record<string, Config>;
33
- supplementaryIgnores?: Array<string | Record<string, IgnorePath>>;
34
- supplementaryScripts?: Record<string, string>;
35
- }
36
- export interface TargetContext {
37
- name: string;
38
- root: string;
39
- package: PackageJson;
40
- }
41
- export interface PresetContext {
42
- target: TargetContext;
43
- custom: PresetterConfig;
44
- }
45
- export interface ResolvedPresetContext<F extends keyof PresetterConfig = 'config' | 'noSymlinks' | 'variable'> extends PresetContext {
46
- custom: PresetterConfig & {
47
- [K in keyof Pick<PresetterConfig, F>]-?: PresetterConfig[K];
48
- } & {
49
- [K in keyof Pick<PresetterConfig, Exclude<keyof PresetterConfig, F>>]: PresetterConfig[K];
50
- };
51
- }
52
- declare type Path = string;
53
- export declare type Template = string | JsonObject;
54
- export declare type TemplateGenerator = Generator<Template>;
55
- export declare type TemplateMap = Record<string, Path | Template | TemplateGenerator>;
56
- export declare type TemplateMapGenerator = Generator<TemplateMap>;
57
- export declare type Config = string[] | JsonObject;
58
- export declare type ConfigGenerator = Generator<Config>;
59
- export declare type ConfigMap = Record<string, Path | Config | ConfigGenerator>;
60
- export declare type ConfigMapGenerator = Generator<ConfigMap, 'variable'>;
61
- export declare type IgnoreRule = string | number | Record<string, IgnorePath>;
62
- export declare type IgnorePath = string[] | number[] | {
63
- [key: string]: IgnorePath;
64
- };
65
- export declare type IgnoreRulesGenerator = Generator<IgnoreRule[], 'variable'>;
66
- export declare type Generator<R, K extends keyof PresetterConfig = 'config' | 'noSymlinks' | 'variable'> = (args: ResolvedPresetContext<K>) => PotentiallyPromise<R>;
67
- export declare type DynamicAssetField = {
68
- [F in keyof PresetAsset]-?: Generator<any, never> extends PresetAsset[F] ? Record<string, any> extends PresetAsset[F] ? F : never : never;
69
- }[keyof PresetAsset];
70
- export declare type DynamicAsset<F extends DynamicAssetField> = Exclude<PresetAsset[F], undefined | Generator<any>>[string] extends infer R ? R extends Generator<infer V> ? V : never : never;
71
- export declare type PotentiallyPromise<T> = T | PromiseLike<T>;
72
- export declare type RequiredResolution<F extends DynamicAssetField = DynamicAssetField> = PresetAsset[F] extends infer R ? R extends Generator<any, infer K> ? K : never : never;
73
- export {};
package/lib/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9