presetter 4.7.2 → 6.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.
Files changed (134) hide show
  1. package/README.md +5 -5
  2. package/lib/debugger.d.ts +4 -0
  3. package/lib/debugger.d.ts.map +1 -0
  4. package/lib/debugger.js +4 -0
  5. package/lib/executable/entry.d.ts.map +1 -1
  6. package/lib/executable/entry.js +4 -43
  7. package/lib/executable/error.d.ts.map +1 -1
  8. package/lib/executable/error.js +1 -16
  9. package/lib/executable/index.js +2 -16
  10. package/lib/index.d.ts +4 -5
  11. package/lib/index.d.ts.map +1 -1
  12. package/lib/index.js +6 -21
  13. package/lib/io.d.ts +8 -42
  14. package/lib/io.d.ts.map +1 -1
  15. package/lib/io.js +24 -156
  16. package/lib/package.d.ts +2 -2
  17. package/lib/package.d.ts.map +1 -1
  18. package/lib/package.js +5 -20
  19. package/lib/preset/bootstrap.d.ts +5 -0
  20. package/lib/preset/bootstrap.d.ts.map +1 -0
  21. package/lib/preset/bootstrap.js +32 -0
  22. package/lib/preset/config/index.d.ts +3 -0
  23. package/lib/preset/config/index.d.ts.map +1 -0
  24. package/lib/preset/config/index.js +4 -0
  25. package/lib/preset/config/resolve.d.ts +8 -0
  26. package/lib/preset/config/resolve.d.ts.map +1 -0
  27. package/lib/preset/config/resolve.js +25 -0
  28. package/lib/preset/config/search.d.ts +7 -0
  29. package/lib/preset/config/search.d.ts.map +1 -0
  30. package/lib/preset/config/search.js +25 -0
  31. package/lib/preset/context.d.ts +2 -1
  32. package/lib/preset/context.d.ts.map +1 -1
  33. package/lib/preset/context.js +5 -24
  34. package/lib/preset/index.d.ts +5 -2
  35. package/lib/preset/index.d.ts.map +1 -1
  36. package/lib/preset/index.js +7 -18
  37. package/lib/preset/project.d.ts +8 -0
  38. package/lib/preset/project.d.ts.map +1 -0
  39. package/lib/preset/project.js +28 -0
  40. package/lib/preset/resolution/asset.d.ts +31 -0
  41. package/lib/preset/resolution/asset.d.ts.map +1 -0
  42. package/lib/preset/resolution/asset.js +78 -0
  43. package/lib/preset/resolution/content.d.ts +37 -0
  44. package/lib/preset/resolution/content.d.ts.map +1 -0
  45. package/lib/preset/resolution/content.js +55 -0
  46. package/lib/preset/resolution/debugger.d.ts +3 -0
  47. package/lib/preset/resolution/debugger.d.ts.map +1 -0
  48. package/lib/preset/resolution/debugger.js +3 -0
  49. package/lib/preset/resolution/index.d.ts +6 -0
  50. package/lib/preset/resolution/index.d.ts.map +1 -0
  51. package/lib/preset/resolution/index.js +7 -0
  52. package/lib/preset/resolution/object.d.ts +9 -0
  53. package/lib/preset/resolution/object.d.ts.map +1 -0
  54. package/lib/preset/resolution/object.js +10 -0
  55. package/lib/preset/resolution/preset.d.ts +9 -0
  56. package/lib/preset/resolution/preset.d.ts.map +1 -0
  57. package/lib/preset/resolution/preset.js +17 -0
  58. package/lib/preset/resolution/script.d.ts +9 -0
  59. package/lib/preset/resolution/script.d.ts.map +1 -0
  60. package/lib/preset/resolution/script.js +39 -0
  61. package/lib/preset/resolution/variable.d.ts +9 -0
  62. package/lib/preset/resolution/variable.d.ts.map +1 -0
  63. package/lib/preset/resolution/variable.js +33 -0
  64. package/lib/preset/scripts.d.ts.map +1 -1
  65. package/lib/preset/scripts.js +6 -20
  66. package/lib/resolve.d.ts +7 -0
  67. package/lib/resolve.d.ts.map +1 -0
  68. package/lib/resolve.js +27 -0
  69. package/lib/run.d.ts.map +1 -1
  70. package/lib/run.js +7 -19
  71. package/lib/scripts.d.ts.map +1 -1
  72. package/lib/scripts.js +8 -19
  73. package/lib/serialization.d.ts +15 -0
  74. package/lib/serialization.d.ts.map +1 -0
  75. package/lib/serialization.js +48 -0
  76. package/lib/task.d.ts.map +1 -1
  77. package/lib/task.js +5 -17
  78. package/lib/template/index.d.ts +3 -0
  79. package/lib/template/index.d.ts.map +1 -0
  80. package/lib/template/index.js +4 -0
  81. package/lib/template/merge.d.ts +33 -0
  82. package/lib/template/merge.d.ts.map +1 -0
  83. package/lib/template/merge.js +84 -0
  84. package/lib/template/substitute.d.ts +11 -0
  85. package/lib/template/substitute.d.ts.map +1 -0
  86. package/lib/template/substitute.js +19 -0
  87. package/lib/utilities/display.d.ts +15 -0
  88. package/lib/utilities/display.d.ts.map +1 -0
  89. package/lib/utilities/display.js +51 -0
  90. package/lib/utilities/index.d.ts +3 -1
  91. package/lib/utilities/index.d.ts.map +1 -1
  92. package/lib/utilities/index.js +5 -17
  93. package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
  94. package/lib/utilities/mapping.d.ts.map +1 -0
  95. package/lib/utilities/mapping.js +10 -0
  96. package/lib/utilities/object.d.ts +20 -0
  97. package/lib/utilities/object.d.ts.map +1 -0
  98. package/lib/utilities/object.js +37 -0
  99. package/package.json +21 -16
  100. package/lib/content.d.ts +0 -123
  101. package/lib/content.d.ts.map +0 -1
  102. package/lib/content.js +0 -241
  103. package/lib/directive.d.ts +0 -34
  104. package/lib/directive.d.ts.map +0 -1
  105. package/lib/directive.js +0 -172
  106. package/lib/error.d.ts +0 -8
  107. package/lib/error.d.ts.map +0 -1
  108. package/lib/error.js +0 -32
  109. package/lib/preset/content.d.ts +0 -14
  110. package/lib/preset/content.d.ts.map +0 -1
  111. package/lib/preset/content.js +0 -32
  112. package/lib/preset/graph.d.ts +0 -22
  113. package/lib/preset/graph.d.ts.map +0 -1
  114. package/lib/preset/graph.js +0 -53
  115. package/lib/preset/mapping.d.ts +0 -9
  116. package/lib/preset/mapping.d.ts.map +0 -1
  117. package/lib/preset/mapping.js +0 -38
  118. package/lib/preset/presetterRC.d.ts +0 -25
  119. package/lib/preset/presetterRC.d.ts.map +0 -1
  120. package/lib/preset/presetterRC.js +0 -74
  121. package/lib/preset/setup.d.ts +0 -17
  122. package/lib/preset/setup.d.ts.map +0 -1
  123. package/lib/preset/setup.js +0 -80
  124. package/lib/preset/unset.d.ts +0 -5
  125. package/lib/preset/unset.d.ts.map +0 -1
  126. package/lib/preset/unset.js +0 -31
  127. package/lib/resolution.d.ts +0 -22
  128. package/lib/resolution.d.ts.map +0 -1
  129. package/lib/resolution.js +0 -61
  130. package/lib/template.d.ts +0 -64
  131. package/lib/template.d.ts.map +0 -1
  132. package/lib/template.js +0 -199
  133. package/lib/utilities/mapValues.d.ts.map +0 -1
  134. package/lib/utilities/mapValues.js +0 -24
@@ -1,9 +0,0 @@
1
- import type { ResolvedPresetContext, Template } from 'presetter-types';
2
- /**
3
- * compute the output paths of all configuration files to be generated
4
- * @param template resolved template map
5
- * @param context resolved context about the target project and customization
6
- * @returns mapping of configuration symlinks to its real path
7
- */
8
- export declare function getDestinationMap(template: Record<string, Template>, context: ResolvedPresetContext<'noSymlinks'>): Promise<Record<string, string>>;
9
- //# sourceMappingURL=mapping.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../source/preset/mapping.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClC,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBjC"}
@@ -1,38 +0,0 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Collection of helpers for mapping content to the target project
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { resolve } from 'node:path';
16
- import resolvePackage from 'resolve-pkg';
17
- /**
18
- * compute the output paths of all configuration files to be generated
19
- * @param template resolved template map
20
- * @param context resolved context about the target project and customization
21
- * @returns mapping of configuration symlinks to its real path
22
- */
23
- export async function getDestinationMap(template, context) {
24
- const { custom: { noSymlinks }, target: { root, name }, } = context;
25
- // make sure we use the path of presetter under the target project, not the one via npx
26
- const presetterDir = resolvePackage('presetter', { cwd: root });
27
- const outDir = resolve(presetterDir, '..', '.presetter', name);
28
- const relativePaths = [...Object.keys(template)];
29
- return Object.fromEntries([
30
- ...relativePaths.map((relativePath) => [
31
- relativePath,
32
- resolve(
33
- // output on the project root if it's specified as not a symlink
34
- noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
35
- ]),
36
- ]);
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFJekM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FDdkIsR0FBRyxPQUFPLENBQUM7SUFDWix1RkFBdUY7SUFDdkYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVoRSxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWpELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQW9CLEVBQUUsQ0FBQztZQUN2RCxZQUFZO1lBQ1osT0FBTztZQUNMLGdFQUFnRTtZQUNoRSxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNoRSxZQUFZLENBQ2I7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -1,25 +0,0 @@
1
- import type { PresetterConfig } from 'presetter-types';
2
- /**
3
- * get presetter configuration files recursively from the current base up to the monorepo root, if there is one
4
- * @param base the base directory to start searching for the configuration file
5
- * @returns list of presetter configuration files
6
- */
7
- export declare function getPresetterRCPaths(base: string): Promise<string[]>;
8
- /**
9
- * get the .presetterrc configuration file content
10
- * @param root the base directory in which the configuration file should be located
11
- * @returns content of the configuration file
12
- */
13
- export declare function getPresetterRC(root: string): Promise<PresetterConfig>;
14
- /**
15
- * update .presetterrc configuration file content
16
- * @param root the base directory in which the configuration file should be located
17
- * @param config content to be merged with the existing configuration file
18
- */
19
- export declare function updatePresetterRC(root: string, config: PresetterConfig): Promise<void>;
20
- /**
21
- * check that the configuration is valid
22
- * @param value content from a configuration file
23
- */
24
- export declare function assertPresetterRC(value: unknown): asserts value is PresetterConfig;
25
- //# sourceMappingURL=presetterRC.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presetterRC.d.ts","sourceRoot":"","sources":["../../source/preset/presetterRC.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQvD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,eAAe,CAOlC"}
@@ -1,74 +0,0 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Procedures for related to preset configuration
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { existsSync, writeFileSync } from 'node:fs';
16
- import { dirname, resolve } from 'node:path';
17
- import { readPackageUp } from 'read-pkg-up';
18
- import { loadFile } from '../io.js';
19
- import { isJSON, merge } from '../template.js';
20
- /** presetter configuration filename */
21
- const PRESETTERRC = '.presetterrc';
22
- const JSON_INDENT = 2;
23
- /**
24
- * get presetter configuration files recursively from the current base up to the monorepo root, if there is one
25
- * @param base the base directory to start searching for the configuration file
26
- * @returns list of presetter configuration files
27
- */
28
- export async function getPresetterRCPaths(base) {
29
- const filesFromBase = ['', '.json']
30
- .map((ext) => resolve(base, `${PRESETTERRC}${ext}`))
31
- .filter(existsSync);
32
- const parent = await readPackageUp({ cwd: dirname(base) });
33
- // if the base is the root of a monorepo, stop searching
34
- const filesFromParent = parent?.path
35
- ? await getPresetterRCPaths(dirname(base))
36
- : [];
37
- return [...filesFromParent, ...filesFromBase];
38
- }
39
- /**
40
- * get the .presetterrc configuration file content
41
- * @param root the base directory in which the configuration file should be located
42
- * @returns content of the configuration file
43
- */
44
- export async function getPresetterRC(root) {
45
- // locate all possible configuration files
46
- const paths = await getPresetterRCPaths(root);
47
- if (!paths.length) {
48
- throw new Error('missing presetter configuration file');
49
- }
50
- const configs = paths.map((path) => loadFile(path, 'json'));
51
- const mergedConfig = configs.reduce((mergedConfig, config) => merge(mergedConfig, config), {});
52
- assertPresetterRC(mergedConfig);
53
- return mergedConfig;
54
- }
55
- /**
56
- * update .presetterrc configuration file content
57
- * @param root the base directory in which the configuration file should be located
58
- * @param config content to be merged with the existing configuration file
59
- */
60
- export async function updatePresetterRC(root, config) {
61
- const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
62
- writeFileSync(resolve(root, `${PRESETTERRC}.json`), JSON.stringify(merge(existingPresetterRC, config), null, JSON_INDENT));
63
- }
64
- /**
65
- * check that the configuration is valid
66
- * @param value content from a configuration file
67
- */
68
- export function assertPresetterRC(value) {
69
- if (!isJSON(value) ||
70
- (typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
71
- throw new Error(`invalid presetter configuration file`);
72
- }
73
- }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsdUNBQXVDO0FBQ3ZDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0Qsd0RBQXdEO0lBQ3hELE1BQU0sZUFBZSxHQUFHLE1BQU0sRUFBRSxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQy9DLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFZLEVBQ1osTUFBdUI7SUFFdkIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpFLGFBQWEsQ0FDWCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxPQUFPLENBQUMsRUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYztJQUVkLElBQ0UsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2QsQ0FBQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3hFO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQyJ9
@@ -1,17 +0,0 @@
1
- /** collection of options for bootstrapping */
2
- interface BootstrapOptions {
3
- /** whether to skip all checks */
4
- force?: boolean;
5
- }
6
- /**
7
- * bootstrap the preset to the current project root
8
- * @param options collection of options
9
- */
10
- export declare function bootstrapPreset(options?: BootstrapOptions): Promise<void>;
11
- /**
12
- * adopt a preset to the project
13
- * @param uris list of name or git url of the preset
14
- */
15
- export declare function setupPreset(...uris: string[]): Promise<void>;
16
- export {};
17
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../source/preset/setup.ts"],"names":[],"mappings":"AAgCA,8CAA8C;AAC9C,UAAU,gBAAgB;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE"}
@@ -1,80 +0,0 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Collection of helpers for setting up a project
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { info } from 'node:console';
16
- import { dirname } from 'node:path';
17
- import { readPackage } from 'read-pkg';
18
- import { writePackage } from 'write-pkg';
19
- import { arePeerPackagesAutoInstalled, getPackage, reifyDependencies, } from '../package.js';
20
- import { bootstrapContent } from './content.js';
21
- import { getContext } from './context.js';
22
- import { updatePresetterRC } from './presetterRC.js';
23
- /**
24
- * bootstrap the preset to the current project root
25
- * @param options collection of options
26
- */
27
- export async function bootstrapPreset(options) {
28
- const context = await getContext();
29
- // install all related packages first
30
- if (!arePeerPackagesAutoInstalled()) {
31
- await reifyDependencies({ root: context.target.root });
32
- }
33
- // generate configurations
34
- await bootstrapContent(context, options);
35
- }
36
- /**
37
- * adopt a preset to the project
38
- * @param uris list of name or git url of the preset
39
- */
40
- export async function setupPreset(...uris) {
41
- // NOTE: comparing packages before and after installation is the only reliable way
42
- // to extract the name of the preset in case it's given as a git url or file path etc.
43
- const { path } = await getPackage();
44
- const root = dirname(path);
45
- const packageBefore = (await readPackage({ cwd: root })).devDependencies;
46
- // install presetter & the preset
47
- info(`Installing ${uris.join(' ')}... it may take a few moment...`);
48
- await reifyDependencies({
49
- root,
50
- add: ['presetter', ...uris],
51
- saveAs: 'dev',
52
- lockFile: true,
53
- });
54
- // extract the name of the installed preset
55
- const packageAfter = (await readPackage({ cwd: root })).devDependencies;
56
- const newPackages = getNewPackages({ ...packageBefore }, { ...packageAfter });
57
- const preset = newPackages.filter((name) => name !== 'presetter');
58
- info('Updating .presetterrc.json & package.json');
59
- // update .presetterrc.json
60
- await updatePresetterRC(root, { preset });
61
- // bootstrap configuration files with the new .presetterrc.json
62
- const context = await getContext();
63
- await bootstrapContent(context);
64
- // insert post install script if not preset
65
- const json = context.target.package;
66
- const scripts = { prepare: 'presetter bootstrap', ...json.scripts };
67
- const patched = { ...json, scripts };
68
- await writePackage(root, patched);
69
- info('Done. Enjoy coding!');
70
- }
71
- /**
72
- * get a list of new packages installed by comparing the before and after state of devDependencies in package.json
73
- * @param before before state of devDependencies in package.json
74
- * @param after after state of devDependencies in package.json
75
- * @returns list of new package names
76
- */
77
- function getNewPackages(before, after) {
78
- return Object.keys(after).filter((name) => !before[name]);
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLGlCQUFpQixHQUNsQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLE9BQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFbkMscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxFQUFFO1FBQ25DLE1BQU0saUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFDakQsa0ZBQWtGO0lBQ2xGLHNGQUFzRjtJQUN0RixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBRXpFLGlDQUFpQztJQUNqQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsMkNBQTJDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztJQUVsRSxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNsRCwyQkFBMkI7SUFDM0IsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLCtEQUErRDtJQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEMsMkNBQTJDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQStDLENBQUMsQ0FBQztJQUUxRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
@@ -1,5 +0,0 @@
1
- /**
2
- * uninstall the preset from the current project root
3
- */
4
- export declare function unsetPreset(): Promise<void>;
5
- //# sourceMappingURL=unset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unset.d.ts","sourceRoot":"","sources":["../../source/preset/unset.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD"}
@@ -1,31 +0,0 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Collection of helpers for unsetting a project
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { resolveContext, resolveTemplate } from '../content.js';
16
- import { unlinkFiles } from '../io.js';
17
- import { getContext } from './context.js';
18
- import { getPresetGraph } from './graph.js';
19
- import { getDestinationMap } from './mapping.js';
20
- /**
21
- * uninstall the preset from the current project root
22
- */
23
- export async function unsetPreset() {
24
- const context = await getContext();
25
- const graph = await getPresetGraph(context);
26
- const resolvedContext = await resolveContext({ graph, context });
27
- const content = await resolveTemplate({ graph, context: resolvedContext });
28
- const configurationLink = await getDestinationMap(content, resolvedContext);
29
- unlinkFiles(context.target.root, configurationLink);
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
@@ -1,22 +0,0 @@
1
- import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from 'presetter-types';
2
- /**
3
- * compute the corresponding field within the config field of .presetterrc
4
- * @param filename link name
5
- * @returns field name in config
6
- */
7
- export declare function getConfigKey(filename: string): string;
8
- /**
9
- * resolve a dynamic asset content
10
- * @param map a dynamic map to be resolved
11
- * @param context arguments to be passed to the generator function
12
- * @returns content of the resolved field
13
- */
14
- export declare function loadDynamicMap<F extends DynamicAssetField>(map: PresetAsset[F], context: ResolvedPresetContext<RequiredResolution<F>>): Promise<Record<string, DynamicAsset<F>>>;
15
- /**
16
- * load a potentially dynamic content
17
- * @param value content to be loaded
18
- * @param context context to be supplied to the generator
19
- * @returns resolved content
20
- */
21
- export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
22
- //# sourceMappingURL=resolution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolution.d.ts","sourceRoot":"","sources":["../source/resolution.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,iBAAiB,EAC9D,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAgB1C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,EAC7B,CAAC,SAAS,MAAM,eAAe,EAE/B,KAAK,EACD,MAAM,GACN,CAAC,GACD,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
package/lib/resolution.js DELETED
@@ -1,61 +0,0 @@
1
- /*
2
- * *** MIT LICENSE ***
3
- * -------------------------------------------------------------------------
4
- * This code may be modified and distributed under the MIT license.
5
- * See the LICENSE file for details.
6
- * -------------------------------------------------------------------------
7
- *
8
- * @summary Collection of helpers for resolving content
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2022 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { existsSync } from 'node:fs';
16
- import { basename, extname } from 'node:path';
17
- import { loadFile } from './io.js';
18
- /**
19
- * compute the corresponding field within the config field of .presetterrc
20
- * @param filename link name
21
- * @returns field name in config
22
- */
23
- export function getConfigKey(filename) {
24
- return basename(filename, extname(filename))
25
- .replace(/^\./, '')
26
- .replace(/rc$/, '')
27
- .replace(/\.config$/, '');
28
- }
29
- /**
30
- * resolve a dynamic asset content
31
- * @param map a dynamic map to be resolved
32
- * @param context arguments to be passed to the generator function
33
- * @returns content of the resolved field
34
- */
35
- export async function loadDynamicMap(map, context) {
36
- // load templated configuration from presets
37
- return Object.fromEntries(await Promise.all(Object.entries(map instanceof Function
38
- ? await map(context)
39
- : { ...map }).map(async ([relativePath, value]) => [
40
- relativePath,
41
- await loadDynamic(value, context),
42
- ])));
43
- }
44
- /**
45
- * load a potentially dynamic content
46
- * @param value content to be loaded
47
- * @param context context to be supplied to the generator
48
- * @returns resolved content
49
- */
50
- export async function loadDynamic(value, context) {
51
- if (typeof value === 'function') {
52
- return value(context);
53
- }
54
- else if (typeof value === 'string' && existsSync(value)) {
55
- return loadFile(value);
56
- }
57
- else {
58
- return value;
59
- }
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFhaEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBZ0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUVyRCw0Q0FBNEM7SUFDNUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFHLFlBQVksUUFBUTtRQUNyQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBZ0MsQ0FBQztRQUM3QyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUNmLENBQUMsR0FBRyxDQUNILEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBMEIsRUFBRSxDQUFDO1FBQ3ZELFlBQVk7UUFDWixNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBZ0MsQ0FBQztLQUMzRCxDQUNGLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3pELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0tBQzdCO1NBQU07UUFDTCxPQUFPLEtBQVUsQ0FBQztLQUNuQjtBQUNILENBQUMifQ==
package/lib/template.d.ts DELETED
@@ -1,64 +0,0 @@
1
- import type { IgnoreRule, PrimitiveEntity } from 'presetter-types';
2
- import type { JsonObject, JsonValue } from 'type-fest';
3
- type MergedType<A, B> = A extends JsonObject ? B extends JsonObject ? A & B : MergedArray<A, B> : MergedArray<A, B>;
4
- type MergedArray<A, B> = A extends JsonValue[] ? B extends JsonValue[] ? Array<A[number] | B[number]> : keyof B extends `${number}` ? JsonValue[] : B : B;
5
- /**
6
- * remove part of the template content according to the given rules
7
- * @param subject an object to be filtered
8
- * @param ignores a list of ignore rules
9
- * @returns filtered content
10
- */
11
- export declare function filter<C extends Record<string, unknown>>(subject: C, ...ignores: IgnoreRule[]): C;
12
- export declare function filter(subject: unknown[], ...ignores: IgnoreRule[]): unknown[];
13
- /**
14
- * indicate whether the supplied value is a JSON object
15
- * @param subject the subject to be tested
16
- * @returns true if the subject is a JSON object
17
- */
18
- export declare function isJSON(subject: unknown): subject is JsonObject;
19
- /**
20
- * deep merge an object
21
- * @param source default object if no additional property is supplied
22
- * @param target properties to be merged with the default
23
- * @returns merged object
24
- */
25
- export declare function merge<S extends JsonValue, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
26
- /**
27
- * merge an array with any value
28
- * @param source the source array to be merged
29
- * @param target new replacement
30
- * @returns merged value
31
- */
32
- export declare function mergeArray<S extends JsonValue, T extends PrimitiveEntity>(source: S[], target?: T): MergedArray<S[], T>;
33
- /**
34
- * merge two arrays
35
- * @param source the source array to be merged
36
- * @param target new replacement
37
- * @returns merged array
38
- */
39
- export declare function mergeArrays<S extends JsonValue, T extends JsonValue>(source: S[], target: T[]): MergedArray<S[], T[]>;
40
- /**
41
- * merge an object with any value
42
- * @param source the source object to be merged
43
- * @param target new replacement
44
- * @returns merged value
45
- */
46
- export declare function mergeObject<S extends JsonObject, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
47
- /**
48
- * merge templates
49
- * @param source current template
50
- * @param target new template content
51
- * @returns customized configuration
52
- */
53
- export declare function mergeTemplate(source: Record<string, JsonObject | string>, target: Record<string, JsonObject | string>): Record<string, JsonObject | string>;
54
- /**
55
- * replace parameters in the template
56
- * @param content template content
57
- * @param parameter variables to be substituted in the template
58
- * @returns customized configuration
59
- */
60
- export declare function template(content: string, parameter: Record<string, string>): string;
61
- export declare function template<Content extends Record<string, unknown> | unknown[]>(content: Content, parameter: Record<string, string>): Content;
62
- export declare function template(content: unknown, parameter: Record<string, string>): unknown;
63
- export {};
64
- //# sourceMappingURL=template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../source/template.ts"],"names":[],"mappings":"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"}