@dotcom-tool-kit/package-json-hook 5.0.0-beta.0 → 5.0.0-beta.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json-helper.d.ts","sourceRoot":"","sources":["../src/package-json-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AASrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAc,MAAM,2BAA2B,CAAA;AAEhE,UAAU,mBAAmB;IAC3B,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,MAAM,CAAA;CAC9C;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,gBAAgB;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAA;CACtC;
|
|
1
|
+
{"version":3,"file":"package-json-helper.d.ts","sourceRoot":"","sources":["../src/package-json-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AASrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAc,MAAM,2BAA2B,CAAA;AAEhE,UAAU,mBAAmB;IAC3B,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,MAAM,CAAA;CAC9C;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,gBAAgB;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAA;CACtC;AAuED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,IAAI,CAAC,OAAO,iBAAiB,EAAE,gBAAgB,CAAC;IACvF,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C,YAAY,SAAiB;IAE7B,QAAQ,SAA8C;IAEtD,MAAM,CAAC,uBAAuB,CAC5B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,CAChB,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,GACpD,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CACjE,EAAE,GACF,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;IAexF,MAAM,CAAC,0BAA0B,CAC/B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,EACxE,kBAAkB,EAAE,CAChB,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,GACpD,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CACjE,EAAE,GACF,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE;IAsBlF,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAW9C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB/B,OAAO,CAAC,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgChE,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAe5D"}
|
|
@@ -46,6 +46,12 @@ function mergeInstallationResults(plugin, mergeable, unmergeable) {
|
|
|
46
46
|
}
|
|
47
47
|
return results;
|
|
48
48
|
}
|
|
49
|
+
// split the path on all unescaped full stops, then unescape all escaped full
|
|
50
|
+
// stops. this will mean we can pass fields to lodash functions taking a path
|
|
51
|
+
// even if the fields contain full stops.
|
|
52
|
+
function splitAndUnescapePath(path) {
|
|
53
|
+
return path.split(/(?<!\\)\./).map((component) => component.replace('\\.', '.'));
|
|
54
|
+
}
|
|
49
55
|
class PackageJson extends base_1.Hook {
|
|
50
56
|
constructor() {
|
|
51
57
|
super(...arguments);
|
|
@@ -101,7 +107,7 @@ class PackageJson extends base_1.Hook {
|
|
|
101
107
|
// missing, the check should fail.
|
|
102
108
|
for (const [field, object] of Object.entries(this.options)) {
|
|
103
109
|
for (const [key, command] of Object.entries(object)) {
|
|
104
|
-
const currentPackageJsonField = (0, get_1.default)(packageJson, [field, key]);
|
|
110
|
+
const currentPackageJsonField = (0, get_1.default)(packageJson, [...splitAndUnescapePath(field), key]);
|
|
105
111
|
if (!currentPackageJsonField || !currentPackageJsonField.includes(command)) {
|
|
106
112
|
return false;
|
|
107
113
|
}
|
|
@@ -139,9 +145,7 @@ class PackageJson extends base_1.Hook {
|
|
|
139
145
|
async commitInstall(state) {
|
|
140
146
|
const packageJson = await this.getPackageJson();
|
|
141
147
|
for (const [path, installation] of Object.entries(state)) {
|
|
142
|
-
(0, set_1.default)(packageJson,
|
|
143
|
-
// split the path on unescaped full stops
|
|
144
|
-
path.split(/(?<!\\)\./).map((component) => component.replace('\\.', '.')), `dotcom-tool-kit ${installation.commands.join(' ')}${installation.trailingString ? ' ' + installation.trailingString : ''}`);
|
|
148
|
+
(0, set_1.default)(packageJson, splitAndUnescapePath(path), `dotcom-tool-kit ${installation.commands.join(' ')}${installation.trailingString ? ' ' + installation.trailingString : ''}`);
|
|
145
149
|
}
|
|
146
150
|
await fs_1.default.promises.writeFile(this.filepath, JSON.stringify(packageJson, null, 2) + '\n');
|
|
147
151
|
}
|