jspm 2.0.0-beta.6 → 3.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.
- package/LICENSE +1 -1
- package/README.md +20 -26
- package/dist/cli.js +1391 -0
- package/jspm.js +10 -0
- package/package.json +23 -50
- package/CHANGELOG.md +0 -21
- package/bin/jspm +0 -46
- package/lib/api.d.ts +0 -10
- package/lib/api.js +0 -71
- package/lib/api.js.map +0 -1
- package/lib/build/index.d.ts +0 -24
- package/lib/build/index.js +0 -163
- package/lib/build/index.js.map +0 -1
- package/lib/cli.d.ts +0 -1
- package/lib/cli.js +0 -701
- package/lib/cli.js.map +0 -1
- package/lib/compile/cjs-convert.d.ts +0 -7
- package/lib/compile/cjs-convert.js +0 -375
- package/lib/compile/cjs-convert.js.map +0 -1
- package/lib/compile/dew-resolve.d.ts +0 -9
- package/lib/compile/dew-resolve.js +0 -117
- package/lib/compile/dew-resolve.js.map +0 -1
- package/lib/compile/dew-worker.d.ts +0 -1
- package/lib/compile/dew-worker.js +0 -302
- package/lib/compile/dew-worker.js.map +0 -1
- package/lib/config/config-file.d.ts +0 -67
- package/lib/config/config-file.js +0 -591
- package/lib/config/config-file.js.map +0 -1
- package/lib/config/global-config-file.d.ts +0 -8
- package/lib/config/global-config-file.js +0 -89
- package/lib/config/global-config-file.js.map +0 -1
- package/lib/config/index.d.ts +0 -15
- package/lib/config/index.js +0 -59
- package/lib/config/index.js.map +0 -1
- package/lib/config/jspm-file.d.ts +0 -8
- package/lib/config/jspm-file.js +0 -84
- package/lib/config/jspm-file.js.map +0 -1
- package/lib/config/package-json-file.d.ts +0 -49
- package/lib/config/package-json-file.js +0 -332
- package/lib/config/package-json-file.js.map +0 -1
- package/lib/exec/index.d.ts +0 -12
- package/lib/exec/index.js +0 -117
- package/lib/exec/index.js.map +0 -1
- package/lib/install/bin.d.ts +0 -2
- package/lib/install/bin.js +0 -86
- package/lib/install/bin.js.map +0 -1
- package/lib/install/binary-build.d.ts +0 -2
- package/lib/install/binary-build.js +0 -89
- package/lib/install/binary-build.js.map +0 -1
- package/lib/install/fetch.d.ts +0 -53
- package/lib/install/fetch.js +0 -270
- package/lib/install/fetch.js.map +0 -1
- package/lib/install/index.d.ts +0 -66
- package/lib/install/index.js +0 -1164
- package/lib/install/index.js.map +0 -1
- package/lib/install/package.d.ts +0 -142
- package/lib/install/package.js +0 -625
- package/lib/install/package.js.map +0 -1
- package/lib/install/publish.d.ts +0 -14
- package/lib/install/publish.js +0 -186
- package/lib/install/publish.js.map +0 -1
- package/lib/install/registry-manager.d.ts +0 -134
- package/lib/install/registry-manager.js +0 -521
- package/lib/install/registry-manager.js.map +0 -1
- package/lib/install/source.d.ts +0 -10
- package/lib/install/source.js +0 -378
- package/lib/install/source.js.map +0 -1
- package/lib/map/common.d.ts +0 -13
- package/lib/map/common.js +0 -180
- package/lib/map/common.js.map +0 -1
- package/lib/map/esm-lexer.d.ts +0 -17
- package/lib/map/esm-lexer.js +0 -506
- package/lib/map/esm-lexer.js.map +0 -1
- package/lib/map/index.d.ts +0 -15
- package/lib/map/index.js +0 -356
- package/lib/map/index.js.map +0 -1
- package/lib/map/utils.d.ts +0 -10
- package/lib/map/utils.js +0 -181
- package/lib/map/utils.js.map +0 -1
- package/lib/overrides.d.ts +0 -3
- package/lib/overrides.js +0 -29
- package/lib/overrides.js.map +0 -1
- package/lib/project.d.ts +0 -71
- package/lib/project.js +0 -434
- package/lib/project.js.map +0 -1
- package/lib/utils/cache.d.ts +0 -11
- package/lib/utils/cache.js +0 -121
- package/lib/utils/cache.js.map +0 -1
- package/lib/utils/common.d.ts +0 -55
- package/lib/utils/common.js +0 -267
- package/lib/utils/common.js.map +0 -1
- package/lib/utils/opts.d.ts +0 -6
- package/lib/utils/opts.js +0 -200
- package/lib/utils/opts.js.map +0 -1
- package/lib/utils/run-cmd.d.ts +0 -4
- package/lib/utils/run-cmd.js +0 -39
- package/lib/utils/run-cmd.js.map +0 -1
- package/lib/utils/ui.d.ts +0 -38
- package/lib/utils/ui.js +0 -496
- package/lib/utils/ui.js.map +0 -1
|
@@ -1,591 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2014-2019 Guy Bedford (http://guybedford.com)
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const path = require("path");
|
|
19
|
-
const fs = require("graceful-fs");
|
|
20
|
-
const mkdirp = require("mkdirp");
|
|
21
|
-
const lockfile = require("proper-lockfile");
|
|
22
|
-
const common_1 = require("../utils/common");
|
|
23
|
-
/*
|
|
24
|
-
* Configuration base class
|
|
25
|
-
* For creating and managing configurations which sync to files
|
|
26
|
-
*/
|
|
27
|
-
class ConfigFile {
|
|
28
|
-
constructor(fileName, ordering) {
|
|
29
|
-
this.style = null;
|
|
30
|
-
this.timestamp = null;
|
|
31
|
-
/*
|
|
32
|
-
* Properties are stored as an ordered array of { key, value } paris
|
|
33
|
-
* Nested object are in turn array values
|
|
34
|
-
* Value properties are { value } objects
|
|
35
|
-
*/
|
|
36
|
-
this.properties = [];
|
|
37
|
-
this.changeEvents = [];
|
|
38
|
-
// we only write when the file has actually changed
|
|
39
|
-
this.changed = false;
|
|
40
|
-
// keep track of originalName when renaming
|
|
41
|
-
this.originalName = undefined;
|
|
42
|
-
this.locked = false;
|
|
43
|
-
this.fileName = path.resolve(fileName);
|
|
44
|
-
this.ordering = ordering;
|
|
45
|
-
}
|
|
46
|
-
rename(newName) {
|
|
47
|
-
newName = path.resolve(newName);
|
|
48
|
-
if (this.fileName === newName)
|
|
49
|
-
return;
|
|
50
|
-
this.originalName = this.originalName || this.timestamp !== -1 && this.fileName;
|
|
51
|
-
this.fileName = newName;
|
|
52
|
-
try {
|
|
53
|
-
this.timestamp = fs.statSync(this.fileName).mtime.getTime();
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
if (e.code !== 'ENOENT')
|
|
57
|
-
throw e;
|
|
58
|
-
this.timestamp = -1;
|
|
59
|
-
}
|
|
60
|
-
this.changed = true;
|
|
61
|
-
}
|
|
62
|
-
// only applies to values
|
|
63
|
-
// Returns undefined for no value
|
|
64
|
-
// throws if an object, with a fileName reference
|
|
65
|
-
// member lookups not in objects throw
|
|
66
|
-
// type is optional, and can be 'array', 'number', 'boolean', 'string' to add simple type checking
|
|
67
|
-
getValue(memberArray, type) {
|
|
68
|
-
var parentProps = this.getProperties(memberArray.slice(0, memberArray.length - 1));
|
|
69
|
-
if (!parentProps)
|
|
70
|
-
return;
|
|
71
|
-
var prop = getProperty(parentProps, memberArray[memberArray.length - 1]).property;
|
|
72
|
-
if (prop === undefined)
|
|
73
|
-
return;
|
|
74
|
-
if (Array.isArray(prop.value))
|
|
75
|
-
configError.call(this, memberArray, 'must be a value');
|
|
76
|
-
var value = prop.value.value;
|
|
77
|
-
if (type === 'array' && !Array.isArray(value) || (type && type !== 'array' && typeof value !== type))
|
|
78
|
-
configError.call(this, memberArray, 'must be a' + (type === 'array' ? 'n ' : ' ') + type + ' value');
|
|
79
|
-
return value;
|
|
80
|
-
}
|
|
81
|
-
// returns properties array
|
|
82
|
-
// If not a properties array, returns undefined
|
|
83
|
-
// If any member is a value instead of an object, returns undefined
|
|
84
|
-
// When createIfUndefined is set, object is created with the correct ordering
|
|
85
|
-
// setting changed: true in the process if necessary
|
|
86
|
-
// If any member is a value with createIfUndefined, throws an error
|
|
87
|
-
getProperties(memberArray, createIfUndefined = false) {
|
|
88
|
-
var properties = this.properties;
|
|
89
|
-
var ordering = this.ordering;
|
|
90
|
-
var self = this;
|
|
91
|
-
memberArray.some((member, index) => {
|
|
92
|
-
var prop = getProperty(properties, member).property;
|
|
93
|
-
if (prop) {
|
|
94
|
-
properties = prop.value;
|
|
95
|
-
if (!Array.isArray(properties)) {
|
|
96
|
-
if (createIfUndefined) {
|
|
97
|
-
configError.call(self, memberArray.slice(0, index + 1), 'should be an object');
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
properties = undefined;
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
if (createIfUndefined) {
|
|
107
|
-
setProperty(properties, member, properties = [], ordering);
|
|
108
|
-
self.onChange(memberArray);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
properties = undefined;
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
ordering = getOrdering([member], ordering);
|
|
116
|
-
});
|
|
117
|
-
return properties;
|
|
118
|
-
}
|
|
119
|
-
// returns properties array as a readable JS object of values.
|
|
120
|
-
// Nested objects throw nice error unless nested is set to true
|
|
121
|
-
// if the object does not exist, returns undefined
|
|
122
|
-
// if the property corresponds to a value, throws
|
|
123
|
-
getObject(memberArray = [], nested = true, createIfUndefined = false) {
|
|
124
|
-
var properties = this.getProperties(memberArray, createIfUndefined);
|
|
125
|
-
if (!properties)
|
|
126
|
-
return;
|
|
127
|
-
var obj = propertiesToObject(properties);
|
|
128
|
-
var self = this;
|
|
129
|
-
if (!nested)
|
|
130
|
-
Object.keys(obj).forEach(key => {
|
|
131
|
-
if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key]))
|
|
132
|
-
configError.call(self, memberArray, 'should not contain a nested object at %' + key + '%');
|
|
133
|
-
});
|
|
134
|
-
return obj;
|
|
135
|
-
}
|
|
136
|
-
has(memberArray) {
|
|
137
|
-
var parentProps = this.getProperties(memberArray.slice(0, memberArray.length - 1));
|
|
138
|
-
if (!parentProps)
|
|
139
|
-
return false;
|
|
140
|
-
return getProperty(parentProps, memberArray[memberArray.length - 1]).property !== undefined;
|
|
141
|
-
}
|
|
142
|
-
// removes the given property member name if it exists
|
|
143
|
-
remove(memberArray, clearParentsIfMadeEmpty = false) {
|
|
144
|
-
var parentProps = this.getProperties(memberArray.slice(0, memberArray.length - 1));
|
|
145
|
-
if (!parentProps)
|
|
146
|
-
return false;
|
|
147
|
-
var self = this;
|
|
148
|
-
var removed = parentProps.some((prop, index) => {
|
|
149
|
-
if (prop.key === memberArray[memberArray.length - 1]) {
|
|
150
|
-
parentProps.splice(index, 1);
|
|
151
|
-
self.onChange(memberArray.slice(0, memberArray.length - 1));
|
|
152
|
-
return true;
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
if (clearParentsIfMadeEmpty && removed && parentProps.length === 0 && memberArray.length > 1)
|
|
156
|
-
this.remove(memberArray.slice(0, memberArray.length - 1), true);
|
|
157
|
-
return removed;
|
|
158
|
-
}
|
|
159
|
-
clearIfEmpty(memberArray) {
|
|
160
|
-
var props = this.getProperties(memberArray);
|
|
161
|
-
if (props && !props.length)
|
|
162
|
-
this.remove(memberArray);
|
|
163
|
-
}
|
|
164
|
-
// sets this.changed if a change
|
|
165
|
-
// retains property ordering
|
|
166
|
-
// overwrites anything already existing
|
|
167
|
-
// creates objects if not existing, at correct ordered location
|
|
168
|
-
setValue(memberArray, value, overwrite = true) {
|
|
169
|
-
var properties = this.getProperties(memberArray.slice(0, memberArray.length - 1), true);
|
|
170
|
-
var ordering = getOrdering(memberArray.slice(0, memberArray.length - 1), this.ordering);
|
|
171
|
-
if (setProperty(properties, memberArray[memberArray.length - 1], { value: value }, ordering, overwrite))
|
|
172
|
-
this.onChange(memberArray);
|
|
173
|
-
}
|
|
174
|
-
// handles nested objects, memberArray can be 0 length for base-level population
|
|
175
|
-
// where target object already exists, it overwrites retaining the same ordering
|
|
176
|
-
// default behaviour is to not write empty objects, but to also not clear objects made empty
|
|
177
|
-
// also avoids unnecessary changes
|
|
178
|
-
setProperties(memberArray, properties, clearIfEmpty = false, keepOrder = false, extend = true, overwrite = false) {
|
|
179
|
-
var targetProperties;
|
|
180
|
-
if (!properties.length) {
|
|
181
|
-
targetProperties = this.getProperties(memberArray);
|
|
182
|
-
if (targetProperties && targetProperties.length) {
|
|
183
|
-
if (clearIfEmpty)
|
|
184
|
-
this.remove(memberArray);
|
|
185
|
-
else
|
|
186
|
-
targetProperties.splice(0, targetProperties.length);
|
|
187
|
-
this.onChange(memberArray);
|
|
188
|
-
}
|
|
189
|
-
else if (!clearIfEmpty)
|
|
190
|
-
this.getProperties(memberArray, true);
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
targetProperties = this.getProperties(memberArray, true);
|
|
194
|
-
var ordering;
|
|
195
|
-
if (!keepOrder)
|
|
196
|
-
ordering = getOrdering(memberArray.slice(0, memberArray.length - 1), this.ordering);
|
|
197
|
-
var self = this;
|
|
198
|
-
var setKeys = [];
|
|
199
|
-
properties.forEach(prop => {
|
|
200
|
-
setKeys.push(prop.key);
|
|
201
|
-
if (setProperty(targetProperties, prop.key, prop.value, ordering, overwrite))
|
|
202
|
-
self.onChange(memberArray);
|
|
203
|
-
});
|
|
204
|
-
if (!extend)
|
|
205
|
-
for (var i = 0; i < targetProperties.length; i++) {
|
|
206
|
-
var prop = targetProperties[i];
|
|
207
|
-
if (setKeys.indexOf(prop.key) === -1) {
|
|
208
|
-
targetProperties.splice(i--, 1);
|
|
209
|
-
self.onChange(memberArray);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
// ensures the given property is first in its containing object property
|
|
214
|
-
// skips if the property does not exist
|
|
215
|
-
orderFirst(memberArray) {
|
|
216
|
-
var properties = this.getProperties(memberArray.slice(0, memberArray.length - 1));
|
|
217
|
-
if (!properties)
|
|
218
|
-
return;
|
|
219
|
-
var propIndex = getProperty(properties, memberArray[memberArray.length - 1]).index;
|
|
220
|
-
if (propIndex !== -1 && propIndex !== 0) {
|
|
221
|
-
properties.unshift(properties.splice(propIndex, 1)[0]);
|
|
222
|
-
this.onChange(memberArray.slice(0, memberArray.length - 1));
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// ensures the given property is last in its containing object property
|
|
226
|
-
// skips if the property does not exist
|
|
227
|
-
orderLast(memberArray) {
|
|
228
|
-
var properties = this.getProperties(memberArray.slice(0, memberArray.length - 1));
|
|
229
|
-
if (!properties)
|
|
230
|
-
return;
|
|
231
|
-
var propIndex = getProperty(properties, memberArray[memberArray.length - 1]).index;
|
|
232
|
-
if (propIndex !== -1 && propIndex !== properties.length - 1) {
|
|
233
|
-
properties.push(properties.splice(propIndex, 1)[0]);
|
|
234
|
-
this.onChange(memberArray.slice(0, memberArray.length - 1));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
// only clears on empty if not already existing as empty
|
|
238
|
-
// sets this.changed, retains ordering and overwrites as with setValue
|
|
239
|
-
// keepOrder indicates if new properties should be added in current iteration order
|
|
240
|
-
// instead of applying the ordering algorithm
|
|
241
|
-
setObject(memberArray = [], obj, clearIfEmpty = false, keepOrder = false) {
|
|
242
|
-
// convert object into a properties array
|
|
243
|
-
return this.setProperties(memberArray, objectToProperties(obj), clearIfEmpty, keepOrder, false);
|
|
244
|
-
}
|
|
245
|
-
extendObject(memberArray, obj, keepOrder = false) {
|
|
246
|
-
if (!Array.isArray(memberArray)) {
|
|
247
|
-
obj = memberArray;
|
|
248
|
-
memberArray = [];
|
|
249
|
-
}
|
|
250
|
-
return this.setProperties(memberArray, objectToProperties(obj), false, keepOrder, true);
|
|
251
|
-
}
|
|
252
|
-
prependObject(memberArray, obj, keepOrder = false) {
|
|
253
|
-
if (!Array.isArray(memberArray)) {
|
|
254
|
-
obj = memberArray;
|
|
255
|
-
memberArray = [];
|
|
256
|
-
}
|
|
257
|
-
return this.setProperties(memberArray, objectToProperties(obj), false, keepOrder, true, false);
|
|
258
|
-
}
|
|
259
|
-
// default serialization is as a JSON file, but these can be overridden
|
|
260
|
-
serialize(obj) {
|
|
261
|
-
return serializeJson(obj, this.style);
|
|
262
|
-
}
|
|
263
|
-
deserialize(source) {
|
|
264
|
-
return JSON.parse(source);
|
|
265
|
-
}
|
|
266
|
-
// note that the given proprety is changed
|
|
267
|
-
// also triggers change events
|
|
268
|
-
onChange(memberArray) {
|
|
269
|
-
// run any attached change events
|
|
270
|
-
if (!this.changeEvents.reduce((stopPropagation, evt) => stopPropagation || evt(memberArray), false))
|
|
271
|
-
this.changed = true;
|
|
272
|
-
}
|
|
273
|
-
lock(symlink = true) {
|
|
274
|
-
try {
|
|
275
|
-
this._unlock = lockfile.lockSync(this.fileName, symlink ? undefined : { realpath: false });
|
|
276
|
-
this.locked = true;
|
|
277
|
-
}
|
|
278
|
-
catch (e) {
|
|
279
|
-
if (symlink && e.code === 'ENOENT')
|
|
280
|
-
return this.lock(false);
|
|
281
|
-
if (e.code === 'ELOCKED')
|
|
282
|
-
throw new common_1.JspmUserError(`Configuration file ${common_1.bold(this.fileName)} is currently locked by another jspm process.`);
|
|
283
|
-
throw e;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
unlock() {
|
|
287
|
-
if (this._unlock) {
|
|
288
|
-
this._unlock();
|
|
289
|
-
this._unlock = undefined;
|
|
290
|
-
this.locked = false;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
exists() {
|
|
294
|
-
if (this.timestamp === null)
|
|
295
|
-
this.read();
|
|
296
|
-
return this.timestamp === -1 ? false : true;
|
|
297
|
-
}
|
|
298
|
-
// read and write are sync functions
|
|
299
|
-
read() {
|
|
300
|
-
var contents;
|
|
301
|
-
try {
|
|
302
|
-
this.timestamp = fs.statSync(this.fileName).mtime.getTime();
|
|
303
|
-
contents = fs.readFileSync(this.fileName).toString();
|
|
304
|
-
}
|
|
305
|
-
catch (e) {
|
|
306
|
-
if (e.code !== 'ENOENT')
|
|
307
|
-
throw e;
|
|
308
|
-
this.timestamp = -1;
|
|
309
|
-
contents = '';
|
|
310
|
-
}
|
|
311
|
-
this.style = detectStyle(contents);
|
|
312
|
-
var deserializedObj;
|
|
313
|
-
try {
|
|
314
|
-
deserializedObj = this.deserialize(contents || '{}') || {};
|
|
315
|
-
}
|
|
316
|
-
catch (e) {
|
|
317
|
-
configError.call(this, e.toString());
|
|
318
|
-
}
|
|
319
|
-
this.properties = [];
|
|
320
|
-
this._original = deserializedObj;
|
|
321
|
-
this.setObject([], deserializedObj, false, true);
|
|
322
|
-
this.changed = false;
|
|
323
|
-
}
|
|
324
|
-
write() {
|
|
325
|
-
var timestamp;
|
|
326
|
-
try {
|
|
327
|
-
timestamp = fs.statSync(this.fileName).mtime.getTime();
|
|
328
|
-
}
|
|
329
|
-
catch (e) {
|
|
330
|
-
if (e.code !== 'ENOENT')
|
|
331
|
-
throw e;
|
|
332
|
-
timestamp = -1;
|
|
333
|
-
}
|
|
334
|
-
if (timestamp !== this.timestamp)
|
|
335
|
-
throw new common_1.JspmUserError('Configuration file ' + path.relative(process.cwd(), this.fileName) + ' has been modified by another process.');
|
|
336
|
-
if (this.changed || timestamp === -1) {
|
|
337
|
-
// if the file doesn't exist make sure the folder exists
|
|
338
|
-
mkdirp.sync(path.dirname(this.fileName));
|
|
339
|
-
var obj = this.getObject([], true);
|
|
340
|
-
fs.writeFileSync(this.fileName, this.serialize(obj));
|
|
341
|
-
this.timestamp = fs.statSync(this.fileName).mtime.getTime();
|
|
342
|
-
this.changed = false;
|
|
343
|
-
// if the file was renamed, remove the old file now after writing
|
|
344
|
-
if (this.originalName) {
|
|
345
|
-
fs.unlinkSync(this.originalName);
|
|
346
|
-
this.originalName = null;
|
|
347
|
-
}
|
|
348
|
-
return true;
|
|
349
|
-
}
|
|
350
|
-
return false;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
exports.default = ConfigFile;
|
|
354
|
-
;
|
|
355
|
-
function configError(memberArray, msg) {
|
|
356
|
-
if (arguments.length === 1) {
|
|
357
|
-
msg = memberArray;
|
|
358
|
-
memberArray = [];
|
|
359
|
-
}
|
|
360
|
-
throw new common_1.JspmUserError(`Error reading ${common_1.bold(path.relative(process.cwd(), this.fileName))}\n\t` +
|
|
361
|
-
(memberArray.length ? common_1.bold(memberArray.join('.')) + ' ' : 'File ') + msg + '.');
|
|
362
|
-
}
|
|
363
|
-
function propertyEquals(propA, propB) {
|
|
364
|
-
if (Array.isArray(propA) || Array.isArray(propB)) {
|
|
365
|
-
if (!(Array.isArray(propA) && Array.isArray(propB)))
|
|
366
|
-
return false;
|
|
367
|
-
if (propA.length !== propB.length)
|
|
368
|
-
return false;
|
|
369
|
-
return !propA.some((itemA, index) => {
|
|
370
|
-
var itemB = propB[index];
|
|
371
|
-
return itemA.key !== itemB.key || !propertyEquals(itemA.value, itemB.value);
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
return propA.value === propB.value;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
// adds the new property to the given properties object
|
|
379
|
-
// if the property exists, it is updated to the new value
|
|
380
|
-
// if not the property is placed at the first appropriate position alphabetically
|
|
381
|
-
// returns true when an actual change is made
|
|
382
|
-
// ordering is an array representing the property order suggestion, to use to apply ordering algorithm
|
|
383
|
-
function setProperty(properties, key, value, ordering, overwrite = true) {
|
|
384
|
-
var changed = false;
|
|
385
|
-
if (properties.some(prop => {
|
|
386
|
-
if (prop.key === key) {
|
|
387
|
-
if (!overwrite)
|
|
388
|
-
return false;
|
|
389
|
-
// determine equality
|
|
390
|
-
if (!propertyEquals(prop.value, value))
|
|
391
|
-
changed = true;
|
|
392
|
-
prop.value = value;
|
|
393
|
-
return true;
|
|
394
|
-
}
|
|
395
|
-
}))
|
|
396
|
-
return changed;
|
|
397
|
-
if (!ordering || !ordering.length) {
|
|
398
|
-
properties.push({
|
|
399
|
-
key: key,
|
|
400
|
-
value: value
|
|
401
|
-
});
|
|
402
|
-
return true;
|
|
403
|
-
}
|
|
404
|
-
// apply ordering algorithm
|
|
405
|
-
var orderIndex = orderingIndex(ordering, key);
|
|
406
|
-
// find the max and minimum index in this property list given the ordering spec
|
|
407
|
-
var maxOrderIndex = properties.length, minOrderIndex = 0;
|
|
408
|
-
if (orderIndex !== -1)
|
|
409
|
-
properties.forEach((prop, index) => {
|
|
410
|
-
// get the ordering index of the current property
|
|
411
|
-
var propOrderIndex = orderingIndex(ordering, prop.key);
|
|
412
|
-
if (propOrderIndex !== -1) {
|
|
413
|
-
if (propOrderIndex < orderIndex && index + 1 > minOrderIndex && index < maxOrderIndex)
|
|
414
|
-
minOrderIndex = index + 1;
|
|
415
|
-
if (propOrderIndex > orderIndex && index < maxOrderIndex && index >= minOrderIndex)
|
|
416
|
-
maxOrderIndex = index;
|
|
417
|
-
}
|
|
418
|
-
});
|
|
419
|
-
// within the ordering range, use alphabetical ordering
|
|
420
|
-
orderIndex = -1;
|
|
421
|
-
for (var i = minOrderIndex; i < maxOrderIndex; i++)
|
|
422
|
-
if (properties[i].key > key) {
|
|
423
|
-
orderIndex = i;
|
|
424
|
-
break;
|
|
425
|
-
}
|
|
426
|
-
if (orderIndex === -1)
|
|
427
|
-
orderIndex = maxOrderIndex;
|
|
428
|
-
properties.splice(orderIndex, 0, {
|
|
429
|
-
key: key,
|
|
430
|
-
value: value
|
|
431
|
-
});
|
|
432
|
-
return true;
|
|
433
|
-
}
|
|
434
|
-
// returns a property object for a given key from the property list
|
|
435
|
-
// returns undefined if not found
|
|
436
|
-
// properties is already assumed to be an array
|
|
437
|
-
function getProperty(properties, key) {
|
|
438
|
-
var propMatch = {
|
|
439
|
-
index: -1,
|
|
440
|
-
property: undefined
|
|
441
|
-
};
|
|
442
|
-
properties.some((prop, index) => {
|
|
443
|
-
if (prop.key === key) {
|
|
444
|
-
propMatch = {
|
|
445
|
-
property: prop,
|
|
446
|
-
index: index
|
|
447
|
-
};
|
|
448
|
-
return true;
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
return propMatch;
|
|
452
|
-
}
|
|
453
|
-
function orderingIndex(ordering, key) {
|
|
454
|
-
for (var i = 0; i < ordering.length; i++)
|
|
455
|
-
if (ordering[i] === key || Array.isArray(ordering[i]) && ordering[i][0] === key)
|
|
456
|
-
return i;
|
|
457
|
-
return -1;
|
|
458
|
-
}
|
|
459
|
-
function getOrdering(memberArray, ordering) {
|
|
460
|
-
memberArray.some(member => {
|
|
461
|
-
let orderIndex = orderingIndex(ordering, member);
|
|
462
|
-
let orderingValue;
|
|
463
|
-
if (orderIndex !== -1)
|
|
464
|
-
orderingValue = ordering[orderIndex];
|
|
465
|
-
if (Array.isArray(orderingValue)) {
|
|
466
|
-
ordering = orderingValue[1];
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
ordering = [];
|
|
470
|
-
return true;
|
|
471
|
-
}
|
|
472
|
-
});
|
|
473
|
-
return ordering;
|
|
474
|
-
}
|
|
475
|
-
function propertiesToObject(properties) {
|
|
476
|
-
var obj = {};
|
|
477
|
-
properties.forEach(p => {
|
|
478
|
-
var prop = p.key;
|
|
479
|
-
var val = p.value;
|
|
480
|
-
if (Array.isArray(val))
|
|
481
|
-
obj[prop] = propertiesToObject(val);
|
|
482
|
-
else
|
|
483
|
-
obj[prop] = val.value;
|
|
484
|
-
});
|
|
485
|
-
return obj;
|
|
486
|
-
}
|
|
487
|
-
function objectToProperties(obj) {
|
|
488
|
-
var properties = [];
|
|
489
|
-
Object.keys(obj).forEach(key => {
|
|
490
|
-
var value = obj[key];
|
|
491
|
-
if (typeof value === 'object' && !Array.isArray(value) && value !== null)
|
|
492
|
-
value = objectToProperties(value);
|
|
493
|
-
else
|
|
494
|
-
value = { value: value };
|
|
495
|
-
properties.push({
|
|
496
|
-
key: key,
|
|
497
|
-
value: value
|
|
498
|
-
});
|
|
499
|
-
});
|
|
500
|
-
return properties;
|
|
501
|
-
}
|
|
502
|
-
;
|
|
503
|
-
async function readJSONStyled(filePath) {
|
|
504
|
-
try {
|
|
505
|
-
var source = await new Promise((resolve, reject) => {
|
|
506
|
-
fs.readFile(filePath, (err, source) => err ? reject(err) : resolve(source.toString()));
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
catch (e) {
|
|
510
|
-
if (e.code === 'ENOENT')
|
|
511
|
-
return { json, style };
|
|
512
|
-
throw e;
|
|
513
|
-
}
|
|
514
|
-
// remove any byte order mark
|
|
515
|
-
if (source.startsWith('\uFEFF'))
|
|
516
|
-
source = source.substr(1);
|
|
517
|
-
var style = detectStyle(source);
|
|
518
|
-
try {
|
|
519
|
-
var json = JSON.parse(source);
|
|
520
|
-
}
|
|
521
|
-
catch (e) {
|
|
522
|
-
throw new common_1.JspmError(`Error parsing JSON file ${filePath}.`);
|
|
523
|
-
}
|
|
524
|
-
return { json, style };
|
|
525
|
-
}
|
|
526
|
-
exports.readJSONStyled = readJSONStyled;
|
|
527
|
-
async function writeJSONStyled(filePath, json, style) {
|
|
528
|
-
await new Promise((resolve, reject) => fs.writeFile(filePath, serializeJson(json, style), err => err ? reject(err) : resolve()));
|
|
529
|
-
}
|
|
530
|
-
exports.writeJSONStyled = writeJSONStyled;
|
|
531
|
-
exports.defaultStyle = {
|
|
532
|
-
tab: ' ',
|
|
533
|
-
newline: require('os').EOL,
|
|
534
|
-
trailingNewline: true,
|
|
535
|
-
quote: '"'
|
|
536
|
-
};
|
|
537
|
-
function detectStyle(string) {
|
|
538
|
-
let style = Object.assign({}, exports.defaultStyle);
|
|
539
|
-
let newLineMatch = string.match(/\r?\n|\r(?!\n)/);
|
|
540
|
-
if (newLineMatch)
|
|
541
|
-
style.newline = newLineMatch[0];
|
|
542
|
-
// best-effort tab detection
|
|
543
|
-
// yes this is overkill, but it avoids possibly annoying edge cases
|
|
544
|
-
let tabSpaces = string.split(style.newline).map(line => line.match(/^[ \t]*/)[0]) || [];
|
|
545
|
-
let tabDifferenceFreqs = {};
|
|
546
|
-
let lastLength = 0;
|
|
547
|
-
tabSpaces.forEach(tabSpace => {
|
|
548
|
-
let diff = Math.abs(tabSpace.length - lastLength);
|
|
549
|
-
if (diff !== 0)
|
|
550
|
-
tabDifferenceFreqs[diff] = (tabDifferenceFreqs[diff] || 0) + 1;
|
|
551
|
-
lastLength = tabSpace.length;
|
|
552
|
-
});
|
|
553
|
-
let bestTabLength;
|
|
554
|
-
Object.keys(tabDifferenceFreqs).forEach(tabLength => {
|
|
555
|
-
if (!bestTabLength || tabDifferenceFreqs[tabLength] >= tabDifferenceFreqs[bestTabLength])
|
|
556
|
-
bestTabLength = tabLength;
|
|
557
|
-
});
|
|
558
|
-
// having determined the most common spacing difference length,
|
|
559
|
-
// generate samples of this tab length from the end of each line space
|
|
560
|
-
// the most common sample is then the tab string
|
|
561
|
-
let tabSamples = {};
|
|
562
|
-
tabSpaces.forEach(tabSpace => {
|
|
563
|
-
let sample = tabSpace.substr(tabSpace.length - bestTabLength);
|
|
564
|
-
tabSamples[sample] = (tabSamples[sample] || 0) + 1;
|
|
565
|
-
});
|
|
566
|
-
let bestTabSample;
|
|
567
|
-
Object.keys(tabSamples).forEach(sample => {
|
|
568
|
-
if (!bestTabSample || tabSamples[sample] > tabSamples[bestTabSample])
|
|
569
|
-
bestTabSample = sample;
|
|
570
|
-
});
|
|
571
|
-
if (bestTabSample)
|
|
572
|
-
style.tab = bestTabSample;
|
|
573
|
-
let quoteMatch = string.match(/"|'/);
|
|
574
|
-
if (quoteMatch)
|
|
575
|
-
style.quote = quoteMatch[0];
|
|
576
|
-
if (string && !string.match(new RegExp(style.newline + '$')))
|
|
577
|
-
style.trailingNewline = false;
|
|
578
|
-
return style;
|
|
579
|
-
}
|
|
580
|
-
exports.detectStyle = detectStyle;
|
|
581
|
-
function serializeJson(json, style) {
|
|
582
|
-
let jsonString = JSON.stringify(json, null, style.tab);
|
|
583
|
-
if (style.trailingNewline)
|
|
584
|
-
jsonString += style.newline;
|
|
585
|
-
return jsonString
|
|
586
|
-
.replace(/([^\\])""/g, '$1' + style.quote + style.quote) // empty strings
|
|
587
|
-
.replace(/([^\\])"/g, '$1' + style.quote)
|
|
588
|
-
.replace(/\n/g, style.newline);
|
|
589
|
-
}
|
|
590
|
-
exports.serializeJson = serializeJson;
|
|
591
|
-
//# sourceMappingURL=config-file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../src/config/config-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import ConfigFile from './config-file';
|
|
2
|
-
export declare class GlobalConfig extends ConfigFile {
|
|
3
|
-
constructor();
|
|
4
|
-
get(configName: string | string[]): any;
|
|
5
|
-
set(configName: string | string[], configValue: any[] | number | boolean | string): void;
|
|
6
|
-
}
|
|
7
|
-
declare const _default: GlobalConfig;
|
|
8
|
-
export default _default;
|