presetter 4.5.0 → 4.7.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 (68) hide show
  1. package/lib/content.d.ts +77 -0
  2. package/lib/content.d.ts.map +1 -1
  3. package/lib/content.js +126 -1
  4. package/lib/directive.d.ts +23 -0
  5. package/lib/directive.d.ts.map +1 -1
  6. package/lib/directive.js +85 -1
  7. package/lib/error.d.ts +6 -0
  8. package/lib/error.d.ts.map +1 -1
  9. package/lib/error.js +21 -1
  10. package/lib/executable/entry.d.ts +5 -0
  11. package/lib/executable/entry.d.ts.map +1 -1
  12. package/lib/executable/entry.js +24 -1
  13. package/lib/executable/error.d.ts +4 -0
  14. package/lib/executable/error.d.ts.map +1 -1
  15. package/lib/executable/error.js +23 -1
  16. package/lib/executable/index.js +16 -1
  17. package/lib/index.js +16 -1
  18. package/lib/io.d.ts +39 -0
  19. package/lib/io.d.ts.map +1 -1
  20. package/lib/io.js +96 -11
  21. package/lib/package.d.ts +22 -0
  22. package/lib/package.d.ts.map +1 -1
  23. package/lib/package.js +53 -3
  24. package/lib/preset/content.d.ts +7 -0
  25. package/lib/preset/content.d.ts.map +1 -1
  26. package/lib/preset/content.js +20 -1
  27. package/lib/preset/context.d.ts +4 -0
  28. package/lib/preset/context.d.ts.map +1 -1
  29. package/lib/preset/context.js +19 -1
  30. package/lib/preset/graph.d.ts +17 -0
  31. package/lib/preset/graph.d.ts.map +1 -1
  32. package/lib/preset/graph.js +34 -1
  33. package/lib/preset/index.js +25 -1
  34. package/lib/preset/mapping.d.ts +6 -0
  35. package/lib/preset/mapping.d.ts.map +1 -1
  36. package/lib/preset/mapping.js +25 -2
  37. package/lib/preset/presetterRC.d.ts +19 -0
  38. package/lib/preset/presetterRC.d.ts.map +1 -1
  39. package/lib/preset/presetterRC.js +37 -1
  40. package/lib/preset/scripts.d.ts +4 -0
  41. package/lib/preset/scripts.d.ts.map +1 -1
  42. package/lib/preset/scripts.js +19 -1
  43. package/lib/preset/setup.d.ts +10 -0
  44. package/lib/preset/setup.d.ts.map +1 -1
  45. package/lib/preset/setup.js +38 -1
  46. package/lib/preset/unset.d.ts +3 -0
  47. package/lib/preset/unset.d.ts.map +1 -1
  48. package/lib/preset/unset.js +18 -1
  49. package/lib/resolution.d.ts +17 -0
  50. package/lib/resolution.d.ts.map +1 -1
  51. package/lib/resolution.js +33 -1
  52. package/lib/run.d.ts +7 -0
  53. package/lib/run.d.ts.map +1 -1
  54. package/lib/run.js +77 -1
  55. package/lib/scripts.d.ts +12 -0
  56. package/lib/scripts.d.ts.map +1 -1
  57. package/lib/scripts.js +50 -1
  58. package/lib/task.d.ts +18 -0
  59. package/lib/task.d.ts.map +1 -1
  60. package/lib/task.js +40 -2
  61. package/lib/template.d.ts +47 -0
  62. package/lib/template.d.ts.map +1 -1
  63. package/lib/template.js +96 -2
  64. package/lib/utilities/index.js +16 -1
  65. package/lib/utilities/mapValues.d.ts +6 -0
  66. package/lib/utilities/mapValues.d.ts.map +1 -1
  67. package/lib/utilities/mapValues.js +21 -1
  68. package/package.json +3 -3
@@ -1,7 +1,26 @@
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 content generation
9
+ *
10
+ * @author Alvis HT Tang <alvis@hilbert.space>
11
+ * @license MIT
12
+ * @copyright Copyright (c) 2020 - All Rights Reserved.
13
+ * -------------------------------------------------------------------------
14
+ */
1
15
  import { resolveContext, resolveTemplate } from '../content.js';
2
16
  import { linkFiles, writeFiles } from '../io.js';
3
17
  import { getPresetGraph } from './graph.js';
4
18
  import { getDestinationMap } from './mapping.js';
19
+ /**
20
+ * generate files from templates and link them to the target project root
21
+ * @param context context about the target project and any customization in .presetterrc
22
+ * @param options collection of options
23
+ */
5
24
  export async function bootstrapContent(context, options) {
6
25
  const graph = await getPresetGraph(context);
7
26
  const resolvedContext = await resolveContext({ graph, context });
@@ -10,4 +29,4 @@ export async function bootstrapContent(context, options) {
10
29
  writeFiles(context.target.root, content, destinationMap, options);
11
30
  linkFiles(context.target.root, destinationMap, options);
12
31
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWU5QyxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUFzQixFQUN0QixPQUEwQjtJQUUxQixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXpFLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyJ9
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFVOUM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLE9BQXNCLEVBQ3RCLE9BQTBCO0lBRTFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFM0UsTUFBTSxjQUFjLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFekUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxRCxDQUFDIn0=
@@ -1,3 +1,7 @@
1
1
  import type { PresetContext } from 'presetter-types';
2
+ /**
3
+ * get context about the target project and any customization in .presetterrc
4
+ * @returns context about the target project and any customization in .presetterrc
5
+ */
2
6
  export declare function getContext(): Promise<PresetContext>;
3
7
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../source/preset/context.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAUzD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../source/preset/context.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAUzD"}
@@ -1,6 +1,24 @@
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 concluding the target context
9
+ *
10
+ * @author Alvis HT Tang <alvis@hilbert.space>
11
+ * @license MIT
12
+ * @copyright Copyright (c) 2020 - All Rights Reserved.
13
+ * -------------------------------------------------------------------------
14
+ */
1
15
  import { dirname } from 'node:path';
2
16
  import { getPackage } from '../package.js';
3
17
  import { getPresetterRC } from './presetterRC.js';
18
+ /**
19
+ * get context about the target project and any customization in .presetterrc
20
+ * @returns context about the target project and any customization in .presetterrc
21
+ */
4
22
  export async function getContext() {
5
23
  const { json, path } = await getPackage();
6
24
  const root = dirname(path);
@@ -11,4 +29,4 @@ export async function getContext() {
11
29
  custom,
12
30
  };
13
31
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQzFDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUMsT0FBTztRQUNMLE1BQU07UUFDTixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFDLE9BQU87UUFDTCxNQUFNO1FBQ04sTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDIn0=
@@ -1,5 +1,22 @@
1
1
  import type { PresetAsset, PresetContext, PresetGraph, PresetNode } from 'presetter-types';
2
+ /**
3
+ * get assets from a preset
4
+ * @param name name of the preset
5
+ * @param context context about the target project and customization in .presetterrc
6
+ * @returns assets from the preset
7
+ */
2
8
  export declare function getPresetAsset(name: string, context: PresetContext): Promise<PresetAsset>;
9
+ /**
10
+ * compute a graph of presets
11
+ * @param context context about the target project and customization in .presetterrc
12
+ * @returns resolved preset graph
13
+ */
3
14
  export declare function getPresetGraph(context: PresetContext): Promise<PresetGraph>;
15
+ /**
16
+ * resolve a preset as a node
17
+ * @param name name of the preset
18
+ * @param context context about the target project and customization in .presetterrc
19
+ * @returns resolved preset node
20
+ */
4
21
  export declare function getPresetNode(name: string, context: PresetContext): Promise<PresetNode>;
5
22
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../source/preset/graph.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,iBAAiB,CAAC;AAQzB,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAOD,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAOtB;AAQD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CASrB"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../source/preset/graph.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAOtB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CASrB"}
@@ -1,5 +1,26 @@
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 prepare the preset graph
9
+ *
10
+ * @author Alvis HT Tang <alvis@hilbert.space>
11
+ * @license MIT
12
+ * @copyright Copyright (c) 2020 - All Rights Reserved.
13
+ * -------------------------------------------------------------------------
14
+ */
15
+ /**
16
+ * get assets from a preset
17
+ * @param name name of the preset
18
+ * @param context context about the target project and customization in .presetterrc
19
+ * @returns assets from the preset
20
+ */
1
21
  export async function getPresetAsset(name, context) {
2
22
  try {
23
+ // get the preset
3
24
  const { default: getPresetAsset } = (await import(name));
4
25
  return await getPresetAsset(context);
5
26
  }
@@ -7,14 +28,26 @@ export async function getPresetAsset(name, context) {
7
28
  throw new Error(`cannot resolve preset ${name}`);
8
29
  }
9
30
  }
31
+ /**
32
+ * compute a graph of presets
33
+ * @param context context about the target project and customization in .presetterrc
34
+ * @returns resolved preset graph
35
+ */
10
36
  export async function getPresetGraph(context) {
37
+ // get the preset name
11
38
  const { preset } = context.custom;
12
39
  const presets = Array.isArray(preset) ? preset : [preset];
13
40
  return Promise.all(presets.map(async (name) => getPresetNode(name, context)));
14
41
  }
42
+ /**
43
+ * resolve a preset as a node
44
+ * @param name name of the preset
45
+ * @param context context about the target project and customization in .presetterrc
46
+ * @returns resolved preset node
47
+ */
15
48
  export async function getPresetNode(name, context) {
16
49
  const asset = await getPresetAsset(name, context);
17
50
  const nodes = await Promise.all((asset.extends ?? []).map(async (extension) => getPresetNode(extension, context)));
18
51
  return { name, asset, nodes };
19
52
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2dyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQSxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBWSxFQUNaLE9BQXNCO0lBRXRCLElBQUk7UUFFRixNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBRXRELENBQUM7UUFFRixPQUFPLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE9BQXNCO0lBR3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBUUQsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhLENBQ2pDLElBQVksRUFDWixPQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUNsQyxDQUNGLENBQUM7SUFFRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2dyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFTSDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxJQUFZLEVBQ1osT0FBc0I7SUFFdEIsSUFBSTtRQUNGLGlCQUFpQjtRQUNqQixNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLENBRXRELENBQUM7UUFFRixPQUFPLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7S0FDbEQ7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxPQUFzQjtJQUV0QixzQkFBc0I7SUFDdEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFFbEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUNqQyxJQUFZLEVBQ1osT0FBc0I7SUFFdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDN0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FDNUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDbEMsQ0FDRixDQUFDO0lBRUYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDaEMsQ0FBQyJ9
@@ -1,4 +1,28 @@
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
+ // NOTE on resolution steps
16
+ // STEP 1 build a dependency tree of presets
17
+ // STEP 2 resolve variables from the tree
18
+ //
19
+ // for template resolution
20
+ // STEP 3 resolve template content from resolved variables
21
+ // STEP 4 resolve noSimlinks from resolved variables
22
+ //
23
+ // for script resolution
24
+ // STEP 3 resolve script content from resolved variables
1
25
  export * from './scripts.js';
2
26
  export * from './setup.js';
3
27
  export * from './unset.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyJ9
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCwyQkFBMkI7QUFDM0IsNENBQTRDO0FBQzVDLHlDQUF5QztBQUN6QyxFQUFFO0FBQ0YsMEJBQTBCO0FBQzFCLDBEQUEwRDtBQUMxRCxvREFBb0Q7QUFDcEQsRUFBRTtBQUNGLHdCQUF3QjtBQUN4Qix3REFBd0Q7QUFFeEQsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUMifQ==
@@ -1,3 +1,9 @@
1
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
+ */
2
8
  export declare function getDestinationMap(template: Record<string, Template>, context: ResolvedPresetContext<'noSymlinks'>): Promise<Record<string, string>>;
3
9
  //# sourceMappingURL=mapping.d.ts.map
@@ -1 +1 @@
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;AAQvE,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
+ {"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,15 +1,38 @@
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
+ */
1
15
  import { resolve } from 'node:path';
2
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
+ */
3
23
  export async function getDestinationMap(template, context) {
4
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
5
26
  const presetterDir = resolvePackage('presetter', { cwd: root });
6
27
  const outDir = resolve(presetterDir, '..', '.presetter', name);
7
28
  const relativePaths = [...Object.keys(template)];
8
29
  return Object.fromEntries([
9
30
  ...relativePaths.map((relativePath) => [
10
31
  relativePath,
11
- resolve(noSymlinks.includes(relativePath) ? context.target.root : outDir, 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),
12
35
  ]),
13
36
  ]);
14
37
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sY0FBYyxNQUFNLGFBQWEsQ0FBQztBQVV6QyxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FDdkIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQWEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhFLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFakQsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBb0IsRUFBRSxDQUFDO1lBQ3ZELFlBQVk7WUFDWixPQUFPLENBRUwsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFDaEUsWUFBWSxDQUNiO1NBQ0YsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFJekM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FDdkIsR0FBRyxPQUFPLENBQUM7SUFDWix1RkFBdUY7SUFDdkYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVoRSxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWpELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQW9CLEVBQUUsQ0FBQztZQUN2RCxZQUFZO1lBQ1osT0FBTztZQUNMLGdFQUFnRTtZQUNoRSxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNoRSxZQUFZLENBQ2I7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -1,6 +1,25 @@
1
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
+ */
2
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
+ */
3
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
+ */
4
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
+ */
5
24
  export declare function assertPresetterRC(value: unknown): asserts value is PresetterConfig;
6
25
  //# sourceMappingURL=presetterRC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presetterRC.d.ts","sourceRoot":"","sources":["../../source/preset/presetterRC.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAavD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAOD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3E;AAOD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAMD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,eAAe,CAOlC"}
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,21 +1,48 @@
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
+ */
1
15
  import { existsSync, writeFileSync } from 'node:fs';
2
16
  import { dirname, resolve } from 'node:path';
3
17
  import { readPackageUp } from 'read-pkg-up';
4
18
  import { loadFile } from '../io.js';
5
19
  import { isJSON, merge } from '../template.js';
20
+ /** presetter configuration filename */
6
21
  const PRESETTERRC = '.presetterrc';
7
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
+ */
8
28
  export async function getPresetterRCPaths(base) {
9
29
  const filesFromBase = ['', '.json']
10
30
  .map((ext) => resolve(base, `${PRESETTERRC}${ext}`))
11
31
  .filter(existsSync);
12
32
  const parent = await readPackageUp({ cwd: dirname(base) });
33
+ // if the base is the root of a monorepo, stop searching
13
34
  const filesFromParent = parent?.path
14
35
  ? await getPresetterRCPaths(dirname(base))
15
36
  : [];
16
37
  return [...filesFromParent, ...filesFromBase];
17
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
+ */
18
44
  export async function getPresetterRC(root) {
45
+ // locate all possible configuration files
19
46
  const paths = await getPresetterRCPaths(root);
20
47
  if (!paths.length) {
21
48
  throw new Error('missing presetter configuration file');
@@ -25,14 +52,23 @@ export async function getPresetterRC(root) {
25
52
  assertPresetterRC(mergedConfig);
26
53
  return mergedConfig;
27
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
+ */
28
60
  export async function updatePresetterRC(root, config) {
29
61
  const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
30
62
  writeFileSync(resolve(root, `${PRESETTERRC}.json`), JSON.stringify(merge(existingPresetterRC, config), null, JSON_INDENT));
31
63
  }
64
+ /**
65
+ * check that the configuration is valid
66
+ * @param value content from a configuration file
67
+ */
32
68
  export function assertPresetterRC(value) {
33
69
  if (!isJSON(value) ||
34
70
  (typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
35
71
  throw new Error(`invalid presetter configuration file`);
36
72
  }
37
73
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU01QyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFFbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBT3RCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFHM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxFQUFFLElBQUk7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxPQUFPLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBT0QsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBWTtJQUUvQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQU9ELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLElBQVksRUFDWixNQUF1QjtJQUV2QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFekUsYUFBYSxDQUNYLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxXQUFXLE9BQU8sQ0FBQyxFQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQ3RFLENBQUM7QUFDSixDQUFDO0FBTUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjO0lBRWQsSUFDRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDZCxDQUFDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDeEU7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDekQ7QUFDSCxDQUFDIn0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsdUNBQXVDO0FBQ3ZDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0Qsd0RBQXdEO0lBQ3hELE1BQU0sZUFBZSxHQUFHLE1BQU0sRUFBRSxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQy9DLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFZLEVBQ1osTUFBdUI7SUFFdkIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpFLGFBQWEsQ0FDWCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxPQUFPLENBQUMsRUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYztJQUVkLElBQ0UsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2QsQ0FBQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3hFO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQyJ9
@@ -1,2 +1,6 @@
1
+ /**
2
+ * get the merged scripts templates
3
+ * @returns scripts template
4
+ */
1
5
  export declare function getScripts(): Promise<Record<string, string>>;
2
6
  //# sourceMappingURL=scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../source/preset/scripts.ts"],"names":[],"mappings":"AAuBA,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAMlE"}
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../source/preset/scripts.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAMlE"}
@@ -1,10 +1,28 @@
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 computing the final scripts
9
+ *
10
+ * @author Alvis HT Tang <alvis@hilbert.space>
11
+ * @license MIT
12
+ * @copyright Copyright (c) 2020 - All Rights Reserved.
13
+ * -------------------------------------------------------------------------
14
+ */
1
15
  import { resolveContext, resolveScripts } from '../content.js';
2
16
  import { getContext } from './context.js';
3
17
  import { getPresetGraph } from './graph.js';
18
+ /**
19
+ * get the merged scripts templates
20
+ * @returns scripts template
21
+ */
4
22
  export async function getScripts() {
5
23
  const context = await getContext();
6
24
  const graph = await getPresetGraph(context);
7
25
  const resolvedContext = await resolveContext({ graph, context });
8
26
  return resolveScripts({ graph, context: resolvedContext });
9
27
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNekMsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVqRSxPQUFPLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDIn0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVTtJQUM5QixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFakUsT0FBTyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFDN0QsQ0FBQyJ9
@@ -1,7 +1,17 @@
1
+ /** collection of options for bootstrapping */
1
2
  interface BootstrapOptions {
3
+ /** whether to skip all checks */
2
4
  force?: boolean;
3
5
  }
6
+ /**
7
+ * bootstrap the preset to the current project root
8
+ * @param options collection of options
9
+ */
4
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
+ */
5
15
  export declare function setupPreset(...uris: string[]): Promise<void>;
6
16
  export {};
7
17
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../source/preset/setup.ts"],"names":[],"mappings":"AAiCA,UAAU,gBAAgB;IAExB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAUf;AAMD,wBAAsB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE"}
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,3 +1,17 @@
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
+ */
1
15
  import { info } from 'node:console';
2
16
  import { dirname } from 'node:path';
3
17
  import { readPackage } from 'read-pkg';
@@ -6,17 +20,30 @@ import { arePeerPackagesAutoInstalled, getPackage, reifyDependencies, } from '..
6
20
  import { bootstrapContent } from './content.js';
7
21
  import { getContext } from './context.js';
8
22
  import { updatePresetterRC } from './presetterRC.js';
23
+ /**
24
+ * bootstrap the preset to the current project root
25
+ * @param options collection of options
26
+ */
9
27
  export async function bootstrapPreset(options) {
10
28
  const context = await getContext();
29
+ // install all related packages first
11
30
  if (!arePeerPackagesAutoInstalled()) {
12
31
  await reifyDependencies({ root: context.target.root });
13
32
  }
33
+ // generate configurations
14
34
  await bootstrapContent(context, options);
15
35
  }
36
+ /**
37
+ * adopt a preset to the project
38
+ * @param uris list of name or git url of the preset
39
+ */
16
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.
17
43
  const { path } = await getPackage();
18
44
  const root = dirname(path);
19
45
  const packageBefore = (await readPackage({ cwd: root })).devDependencies;
46
+ // install presetter & the preset
20
47
  info(`Installing ${uris.join(' ')}... it may take a few moment...`);
21
48
  await reifyDependencies({
22
49
  root,
@@ -24,20 +51,30 @@ export async function setupPreset(...uris) {
24
51
  saveAs: 'dev',
25
52
  lockFile: true,
26
53
  });
54
+ // extract the name of the installed preset
27
55
  const packageAfter = (await readPackage({ cwd: root })).devDependencies;
28
56
  const newPackages = getNewPackages({ ...packageBefore }, { ...packageAfter });
29
57
  const preset = newPackages.filter((name) => name !== 'presetter');
30
58
  info('Updating .presetterrc.json & package.json');
59
+ // update .presetterrc.json
31
60
  await updatePresetterRC(root, { preset });
61
+ // bootstrap configuration files with the new .presetterrc.json
32
62
  const context = await getContext();
33
63
  await bootstrapContent(context);
64
+ // insert post install script if not preset
34
65
  const json = context.target.package;
35
66
  const scripts = { prepare: 'presetter bootstrap', ...json.scripts };
36
67
  const patched = { ...json, scripts };
37
68
  await writePackage(root, patched);
38
69
  info('Done. Enjoy coding!');
39
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
+ */
40
77
  function getNewPackages(before, after) {
41
78
  return Object.keys(after).filter((name) => !before[name]);
42
79
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixVQUFVLEVBQ1YsaUJBQWlCLEdBQ2xCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWNsRCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsT0FBMEI7SUFFMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUduQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsRUFBRTtRQUNuQyxNQUFNLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN4RDtJQUdELE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFNRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFHakQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFDcEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUd6RSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBR0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO0lBRWxFLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBRWxELE1BQU0saUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUcxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFHaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEUsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBK0MsQ0FBQyxDQUFDO0lBRTFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFRRCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLGlCQUFpQixHQUNsQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLE9BQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFbkMscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxFQUFFO1FBQ25DLE1BQU0saUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFDakQsa0ZBQWtGO0lBQ2xGLHNGQUFzRjtJQUN0RixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBRXpFLGlDQUFpQztJQUNqQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsMkNBQTJDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztJQUVsRSxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNsRCwyQkFBMkI7SUFDM0IsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLCtEQUErRDtJQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEMsMkNBQTJDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQStDLENBQUMsQ0FBQztJQUUxRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
@@ -1,2 +1,5 @@
1
+ /**
2
+ * uninstall the preset from the current project root
3
+ */
1
4
  export declare function unsetPreset(): Promise<void>;
2
5
  //# sourceMappingURL=unset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unset.d.ts","sourceRoot":"","sources":["../../source/preset/unset.ts"],"names":[],"mappings":"AAwBA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD"}
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,8 +1,25 @@
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
+ */
1
15
  import { resolveContext, resolveTemplate } from '../content.js';
2
16
  import { unlinkFiles } from '../io.js';
3
17
  import { getContext } from './context.js';
4
18
  import { getPresetGraph } from './graph.js';
5
19
  import { getDestinationMap } from './mapping.js';
20
+ /**
21
+ * uninstall the preset from the current project root
22
+ */
6
23
  export async function unsetPreset() {
7
24
  const context = await getContext();
8
25
  const graph = await getPresetGraph(context);
@@ -11,4 +28,4 @@ export async function unsetPreset() {
11
28
  const configurationLink = await getDestinationMap(content, resolvedContext);
12
29
  unlinkFiles(context.target.root, configurationLink);
13
30
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUs5QyxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
@@ -1,5 +1,22 @@
1
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
+ */
2
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
+ */
3
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
+ */
4
21
  export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
5
22
  //# sourceMappingURL=resolution.d.ts.map
@@ -1 +1 @@
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;AAOzB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKrD;AAQD,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;AAQD,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"}
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"}