presetter 5.0.0 → 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 (130) hide show
  1. package/lib/executable/entry.d.ts.map +1 -1
  2. package/lib/executable/entry.js +4 -43
  3. package/lib/executable/error.d.ts.map +1 -1
  4. package/lib/executable/error.js +1 -15
  5. package/lib/executable/index.js +1 -15
  6. package/lib/index.d.ts +4 -5
  7. package/lib/index.d.ts.map +1 -1
  8. package/lib/index.js +5 -20
  9. package/lib/io.d.ts +8 -42
  10. package/lib/io.d.ts.map +1 -1
  11. package/lib/io.js +24 -156
  12. package/lib/package.d.ts +2 -2
  13. package/lib/package.d.ts.map +1 -1
  14. package/lib/package.js +3 -17
  15. package/lib/preset/bootstrap.d.ts +5 -0
  16. package/lib/preset/bootstrap.d.ts.map +1 -0
  17. package/lib/preset/bootstrap.js +32 -0
  18. package/lib/preset/config/index.d.ts +3 -0
  19. package/lib/preset/config/index.d.ts.map +1 -0
  20. package/lib/preset/config/index.js +4 -0
  21. package/lib/preset/config/resolve.d.ts +8 -0
  22. package/lib/preset/config/resolve.d.ts.map +1 -0
  23. package/lib/preset/config/resolve.js +25 -0
  24. package/lib/preset/config/search.d.ts +7 -0
  25. package/lib/preset/config/search.d.ts.map +1 -0
  26. package/lib/preset/config/search.js +25 -0
  27. package/lib/preset/context.d.ts +2 -1
  28. package/lib/preset/context.d.ts.map +1 -1
  29. package/lib/preset/context.js +5 -24
  30. package/lib/preset/index.d.ts +5 -2
  31. package/lib/preset/index.d.ts.map +1 -1
  32. package/lib/preset/index.js +6 -18
  33. package/lib/preset/project.d.ts +8 -0
  34. package/lib/preset/project.d.ts.map +1 -0
  35. package/lib/preset/project.js +28 -0
  36. package/lib/preset/resolution/asset.d.ts +31 -0
  37. package/lib/preset/resolution/asset.d.ts.map +1 -0
  38. package/lib/preset/resolution/asset.js +78 -0
  39. package/lib/preset/resolution/content.d.ts +37 -0
  40. package/lib/preset/resolution/content.d.ts.map +1 -0
  41. package/lib/preset/resolution/content.js +55 -0
  42. package/lib/preset/resolution/debugger.d.ts +3 -0
  43. package/lib/preset/resolution/debugger.d.ts.map +1 -0
  44. package/lib/preset/resolution/debugger.js +3 -0
  45. package/lib/preset/resolution/index.d.ts +6 -0
  46. package/lib/preset/resolution/index.d.ts.map +1 -0
  47. package/lib/preset/resolution/index.js +7 -0
  48. package/lib/preset/resolution/object.d.ts +9 -0
  49. package/lib/preset/resolution/object.d.ts.map +1 -0
  50. package/lib/preset/resolution/object.js +10 -0
  51. package/lib/preset/resolution/preset.d.ts +9 -0
  52. package/lib/preset/resolution/preset.d.ts.map +1 -0
  53. package/lib/preset/resolution/preset.js +17 -0
  54. package/lib/preset/resolution/script.d.ts +9 -0
  55. package/lib/preset/resolution/script.d.ts.map +1 -0
  56. package/lib/preset/resolution/script.js +39 -0
  57. package/lib/preset/resolution/variable.d.ts +9 -0
  58. package/lib/preset/resolution/variable.d.ts.map +1 -0
  59. package/lib/preset/resolution/variable.js +33 -0
  60. package/lib/preset/scripts.d.ts.map +1 -1
  61. package/lib/preset/scripts.js +5 -22
  62. package/lib/resolve.d.ts +7 -0
  63. package/lib/resolve.d.ts.map +1 -0
  64. package/lib/resolve.js +27 -0
  65. package/lib/run.d.ts.map +1 -1
  66. package/lib/run.js +4 -19
  67. package/lib/scripts.d.ts.map +1 -1
  68. package/lib/scripts.js +3 -18
  69. package/lib/serialization.d.ts +15 -0
  70. package/lib/serialization.d.ts.map +1 -0
  71. package/lib/serialization.js +48 -0
  72. package/lib/task.d.ts.map +1 -1
  73. package/lib/task.js +1 -16
  74. package/lib/template/index.d.ts +3 -0
  75. package/lib/template/index.d.ts.map +1 -0
  76. package/lib/template/index.js +4 -0
  77. package/lib/template/merge.d.ts +33 -0
  78. package/lib/template/merge.d.ts.map +1 -0
  79. package/lib/template/merge.js +84 -0
  80. package/lib/template/substitute.d.ts +11 -0
  81. package/lib/template/substitute.d.ts.map +1 -0
  82. package/lib/template/substitute.js +19 -0
  83. package/lib/utilities/display.d.ts +15 -0
  84. package/lib/utilities/display.d.ts.map +1 -0
  85. package/lib/utilities/display.js +51 -0
  86. package/lib/utilities/index.d.ts +3 -1
  87. package/lib/utilities/index.d.ts.map +1 -1
  88. package/lib/utilities/index.js +4 -16
  89. package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
  90. package/lib/utilities/mapping.d.ts.map +1 -0
  91. package/lib/utilities/mapping.js +10 -0
  92. package/lib/utilities/object.d.ts +20 -0
  93. package/lib/utilities/object.d.ts.map +1 -0
  94. package/lib/utilities/object.js +37 -0
  95. package/package.json +10 -7
  96. package/lib/content.d.ts +0 -123
  97. package/lib/content.d.ts.map +0 -1
  98. package/lib/content.js +0 -244
  99. package/lib/directive.d.ts +0 -34
  100. package/lib/directive.d.ts.map +0 -1
  101. package/lib/directive.js +0 -172
  102. package/lib/error.d.ts +0 -8
  103. package/lib/error.d.ts.map +0 -1
  104. package/lib/error.js +0 -32
  105. package/lib/preset/content.d.ts +0 -14
  106. package/lib/preset/content.d.ts.map +0 -1
  107. package/lib/preset/content.js +0 -32
  108. package/lib/preset/graph.d.ts +0 -22
  109. package/lib/preset/graph.d.ts.map +0 -1
  110. package/lib/preset/graph.js +0 -53
  111. package/lib/preset/mapping.d.ts +0 -9
  112. package/lib/preset/mapping.d.ts.map +0 -1
  113. package/lib/preset/mapping.js +0 -41
  114. package/lib/preset/presetterRC.d.ts +0 -25
  115. package/lib/preset/presetterRC.d.ts.map +0 -1
  116. package/lib/preset/presetterRC.js +0 -76
  117. package/lib/preset/setup.d.ts +0 -17
  118. package/lib/preset/setup.d.ts.map +0 -1
  119. package/lib/preset/setup.js +0 -80
  120. package/lib/preset/unset.d.ts +0 -5
  121. package/lib/preset/unset.d.ts.map +0 -1
  122. package/lib/preset/unset.js +0 -31
  123. package/lib/resolution.d.ts +0 -22
  124. package/lib/resolution.d.ts.map +0 -1
  125. package/lib/resolution.js +0 -61
  126. package/lib/template.d.ts +0 -64
  127. package/lib/template.d.ts.map +0 -1
  128. package/lib/template.js +0 -199
  129. package/lib/utilities/mapValues.d.ts.map +0 -1
  130. package/lib/utilities/mapValues.js +0 -24
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFhaEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBZ0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUVyRCw0Q0FBNEM7SUFDNUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFHLFlBQVksUUFBUTtRQUNyQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBZ0MsQ0FBQztRQUM3QyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUNmLENBQUMsR0FBRyxDQUNILEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBMEIsRUFBRSxDQUFDO1FBQ3ZELFlBQVk7UUFDWixNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBZ0MsQ0FBQztLQUMzRCxDQUNGLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztBQUNILENBQUMifQ==
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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"}
package/lib/template.js DELETED
@@ -1,199 +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 template related helpers
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2020 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- import { basename, extname } from 'node:path';
16
- import pupa from 'pupa';
17
- export function filter(subject, ...ignores) {
18
- // compute the list of fields in config to be ignored
19
- const fieldsToIgnore = ignores.filter((ignore) => typeof ignore !== 'object');
20
- // filter the unwanted item in an array
21
- if (Array.isArray(subject)) {
22
- return subject.filter((_, key) => !fieldsToIgnore.includes(key));
23
- }
24
- // filter the unwanted fields below
25
- const distilled = Object.fromEntries(Object.entries(subject).filter(([key, _]) => !fieldsToIgnore.includes(key)));
26
- // compute the left over and process them further below
27
- const moreRules = ignores.filter((ignore) => typeof ignore !== 'string');
28
- // continue filtering the left over
29
- return moreRules.reduce((furtherDistilled, ignoreTree) => Object.fromEntries(Object.entries(furtherDistilled).map(([key, value]) => [
30
- key,
31
- filterByPath(value, ignoreTree[key]),
32
- ])), distilled);
33
- }
34
- /**
35
- * filter a value according to the supplied ignore rules
36
- * @param value value to be filtered
37
- * @param path ignore rule to be applied
38
- * @returns filtered value
39
- */
40
- function filterByPath(value, path) {
41
- return path && typeof value === 'object'
42
- ? filter(value,
43
- // NOTE
44
- // if rule is an array, it means that it contains a list of fields to be ignored
45
- // otherwise, it contains rules in a tree form
46
- ...(Array.isArray(path) ? path : [path]))
47
- : value;
48
- }
49
- /**
50
- * indicate whether the supplied value is a JSON object
51
- * @param subject the subject to be tested
52
- * @returns true if the subject is a JSON object
53
- */
54
- export function isJSON(subject) {
55
- return [
56
- typeof subject === 'object',
57
- !Array.isArray(subject),
58
- subject !== null,
59
- ].every((value) => value);
60
- }
61
- /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
62
- /**
63
- * deep merge an object
64
- * @param source default object if no additional property is supplied
65
- * @param target properties to be merged with the default
66
- * @returns merged object
67
- */
68
- export function merge(source, target) {
69
- // LOGIC
70
- // S\R | Array | Object | Primitive
71
- // Array | EXTEND | AMEND | replace
72
- // Object | replace | MERGE | replace
73
- // Primitive | replace | replace | replace
74
- if (Array.isArray(source)) {
75
- return mergeArray(source, target);
76
- }
77
- else if (isJSON(source)) {
78
- return mergeObject(source, target);
79
- }
80
- return (target ?? source);
81
- }
82
- /**
83
- * merge an array with any value
84
- * @param source the source array to be merged
85
- * @param target new replacement
86
- * @returns merged value
87
- */
88
- export function mergeArray(source, target) {
89
- // NOTE
90
- // merging can only be done in two ways:
91
- // 1. the target is also an array, then merge the two arrays
92
- // 2. the target is an object with numeric keys representing the index of the value to be merged
93
- if (Array.isArray(target)) {
94
- return mergeArrays(source, target);
95
- }
96
- else if (isJSON(target) &&
97
- [...Object.keys(target)].every((key) => parseInt(key) >= 0)) {
98
- return [...source].map((value, key) => merge(value, target[key]));
99
- }
100
- // if a merge isn't possible return the replacement or the original if no replacement is found
101
- return (target ?? source);
102
- }
103
- /**
104
- * merge two arrays
105
- * @param source the source array to be merged
106
- * @param target new replacement
107
- * @returns merged array
108
- */
109
- export function mergeArrays(source, target) {
110
- const isPrimitive = source.every((value) => !isJSON(value)) &&
111
- target.every((value) => !isJSON(value));
112
- // if there is no object in both list, perform an union
113
- // (['a'], ['a']) => ['a']
114
- // (['a'], ['b']) => ['a', 'b']
115
- // (['a'], ['a', 'b']) => ['a', 'b']
116
- if (isPrimitive) {
117
- return [...new Set([...source, ...target])];
118
- }
119
- // if there is an object in any of the list, perform a replacement
120
- // (['a', 'b'], [{ c: 1 }]) => [{ c: 1 }]
121
- // ([{ a: 1 }], [{ b: 2 }]) => [{ b: 2 }]
122
- // ([{ a: 1 }, 'c'], [{ b: 2 }]) => [{ b: 2 }]
123
- // (['a'], ['b', { c: 1 }]) => ['b', { c: 1 }]
124
- // (['a', { c: 1 }], ['b', { d: 2 }]) => ['b', { d: 2 }]
125
- // if a merge isn't possible return the replacement
126
- return target;
127
- }
128
- /**
129
- * merge an object with any value
130
- * @param source the source object to be merged
131
- * @param target new replacement
132
- * @returns merged value
133
- */
134
- export function mergeObject(source, target) {
135
- if (isJSON(target)) {
136
- // merge two objects together
137
- const mergedSource = Object.fromEntries(Object.entries(source).map(([key, value]) => [
138
- key,
139
- merge(value, target[key]),
140
- ]));
141
- return {
142
- ...mergedSource,
143
- ...target,
144
- ...mergedSource,
145
- };
146
- }
147
- // otherwise replace the source with target
148
- return (target ?? source);
149
- }
150
- /**
151
- * merge templates
152
- * @param source current template
153
- * @param target new template content
154
- * @returns customized configuration
155
- */
156
- export function mergeTemplate(source, target) {
157
- const mergedSource = Object.fromEntries(Object.entries(source).map(([path, template]) => {
158
- const replacement = target[path];
159
- const isIgnoreFile = !extname(path) &&
160
- basename(path).startsWith('.') &&
161
- typeof template === 'string' &&
162
- typeof replacement === 'string';
163
- // NOTE
164
- // for JSON content, merge with the specified mode
165
- // for string content, there are two scenarios:
166
- // 1. if the content is a list such as an ignore file, merge as appendion
167
- // 2. for others such as a typescript file, merge as override
168
- if (isIgnoreFile) {
169
- const mergedSet = new Set([
170
- ...template.split('\n'),
171
- ...replacement.split('\n'),
172
- ]);
173
- return [path, [...mergedSet].join('\n')];
174
- }
175
- else if (typeof template === typeof replacement) {
176
- return [path, merge(template, replacement)];
177
- }
178
- return [path, template];
179
- }));
180
- return { ...target, ...mergedSource };
181
- }
182
- export function template(content, parameter) {
183
- if (typeof content === 'string') {
184
- return pupa(content, parameter, { ignoreMissing: true });
185
- }
186
- else if (Array.isArray(content)) {
187
- return content.map((value) => template(value, parameter));
188
- }
189
- else if (isJSON(content)) {
190
- return Object.fromEntries(Object.entries(content).map(([key, value]) => {
191
- return [template(key, parameter), template(value, parameter)];
192
- }));
193
- }
194
- else {
195
- return content;
196
- }
197
- }
198
- /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQThCeEIsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsT0FBNEMsRUFDNUMsR0FBRyxPQUFxQjtJQUV4QixxREFBcUQ7SUFDckQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxNQUFNLEVBQTZCLEVBQUUsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQ2xFLENBQUM7SUFFRix1Q0FBdUM7SUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDNUUsQ0FBQztJQUVGLHVEQUF1RDtJQUN2RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QixDQUFDLE1BQU0sRUFBd0MsRUFBRSxDQUMvQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQzdCLENBQUM7SUFFRixtQ0FBbUM7SUFDbkMsT0FBTyxTQUFTLENBQUMs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
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapValues.d.ts","sourceRoot":"","sources":["../../source/utilities/mapValues.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB"}
@@ -1,24 +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 A helper to map the values of an object to a new object
9
- *
10
- * @author Alvis HT Tang <alvis@hilbert.space>
11
- * @license MIT
12
- * @copyright Copyright (c) 2023 - All Rights Reserved.
13
- * -------------------------------------------------------------------------
14
- */
15
- /**
16
- * map the values of an object to a new object with the same keys
17
- * @param obj the object to be mapped
18
- * @param fn the mapping function
19
- * @returns the mapped object
20
- */
21
- export function mapValues(obj, fn) {
22
- return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3V0aWxpdGllcy9tYXBWYWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsR0FBc0IsRUFDdEIsRUFBbUI7SUFFbkIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUM1RCxDQUFDO0FBQ0osQ0FBQyJ9