@angular/compiler-cli 13.0.0-rc.1 → 13.0.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.
- package/bundles/index.js +49 -49
- package/bundles/index.js.map +2 -2
- package/bundles/linker/babel/index.js +12 -12
- package/bundles/linker/babel/index.js.map +1 -1
- package/bundles/linker/index.js +12 -12
- package/bundles/linker/index.js.map +1 -1
- package/bundles/ngcc/index.js +124 -127
- package/bundles/ngcc/index.js.map +2 -2
- package/bundles/ngcc/main-ngcc.js +124 -127
- package/bundles/ngcc/main-ngcc.js.map +2 -2
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +28 -44
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +2 -2
- package/bundles/private/migrations.js +8 -6
- package/bundles/private/migrations.js.map +2 -2
- package/bundles/src/bin/ng_xi18n.js +48 -48
- package/bundles/src/bin/ng_xi18n.js.map +2 -2
- package/bundles/src/bin/ngc.js +48 -48
- package/bundles/src/bin/ngc.js.map +2 -2
- package/bundles_metadata.json +1 -1
- package/linker/src/file_linker/partial_linkers/util.d.ts +2 -2
- package/linker/src/file_linker/translator.d.ts +1 -1
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/entry_point.d.ts +5 -0
- package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/ng_module.d.ts +1 -2
- package/src/ngtsc/diagnostics/index.d.ts +4 -2
- package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
- package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
- package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
- package/src/ngtsc/typecheck/api/checker.d.ts +1 -1
- package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
package/bundles/index.js
CHANGED
|
@@ -446,7 +446,7 @@ import { StaticReflector, StaticSymbol } from "@angular/compiler";
|
|
|
446
446
|
|
|
447
447
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/version.mjs
|
|
448
448
|
import { Version } from "@angular/compiler";
|
|
449
|
-
var VERSION = new Version("13.0.
|
|
449
|
+
var VERSION = new Version("13.0.1");
|
|
450
450
|
|
|
451
451
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/metadata/collector.mjs
|
|
452
452
|
import ts4 from "typescript";
|
|
@@ -3126,9 +3126,6 @@ import ts73 from "typescript";
|
|
|
3126
3126
|
import { compileClassMetadata as compileClassMetadata3, compileComponentFromMetadata, compileDeclareClassMetadata as compileDeclareClassMetadata3, compileDeclareComponentFromMetadata, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DomElementSchemaRegistry, ExternalExpr as ExternalExpr7, FactoryTarget as FactoryTarget3, InterpolationConfig, makeBindingParser as makeBindingParser2, ParseSourceFile as ParseSourceFile2, parseTemplate, R3TargetBinder, SelectorMatcher, ViewEncapsulation, WrappedNodeExpr as WrappedNodeExpr6 } from "@angular/compiler";
|
|
3127
3127
|
import ts39 from "typescript";
|
|
3128
3128
|
|
|
3129
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error.mjs
|
|
3130
|
-
import ts10 from "typescript";
|
|
3131
|
-
|
|
3132
3129
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error_code.mjs
|
|
3133
3130
|
var ErrorCode;
|
|
3134
3131
|
(function(ErrorCode2) {
|
|
@@ -3179,7 +3176,8 @@ var ErrorCode;
|
|
|
3179
3176
|
ErrorCode2[ErrorCode2["SUGGEST_STRICT_TEMPLATES"] = 10001] = "SUGGEST_STRICT_TEMPLATES";
|
|
3180
3177
|
ErrorCode2[ErrorCode2["SUGGEST_SUBOPTIMAL_TYPE_INFERENCE"] = 10002] = "SUGGEST_SUBOPTIMAL_TYPE_INFERENCE";
|
|
3181
3178
|
})(ErrorCode || (ErrorCode = {}));
|
|
3182
|
-
|
|
3179
|
+
|
|
3180
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.mjs
|
|
3183
3181
|
var COMPILER_ERRORS_WITH_GUIDES = new Set([
|
|
3184
3182
|
ErrorCode.DECORATOR_ARG_NOT_LITERAL,
|
|
3185
3183
|
ErrorCode.IMPORT_CYCLE_DETECTED,
|
|
@@ -3189,6 +3187,15 @@ var COMPILER_ERRORS_WITH_GUIDES = new Set([
|
|
|
3189
3187
|
ErrorCode.MISSING_REFERENCE_TARGET,
|
|
3190
3188
|
ErrorCode.COMPONENT_INVALID_SHADOW_DOM_SELECTOR
|
|
3191
3189
|
]);
|
|
3190
|
+
|
|
3191
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error.mjs
|
|
3192
|
+
import ts10 from "typescript";
|
|
3193
|
+
|
|
3194
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/util.mjs
|
|
3195
|
+
var ERROR_CODE_MATCHER = /(\u001b\[\d+m ?)TS-99(\d+: ?\u001b\[\d+m)/g;
|
|
3196
|
+
function replaceTsWithNgInErrors(errors) {
|
|
3197
|
+
return errors.replace(ERROR_CODE_MATCHER, "$1NG$2");
|
|
3198
|
+
}
|
|
3192
3199
|
function ngErrorCode(code) {
|
|
3193
3200
|
return parseInt("-99" + code);
|
|
3194
3201
|
}
|
|
@@ -3230,11 +3237,8 @@ function makeRelatedInformation(node, messageText) {
|
|
|
3230
3237
|
};
|
|
3231
3238
|
}
|
|
3232
3239
|
|
|
3233
|
-
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/
|
|
3234
|
-
var
|
|
3235
|
-
function replaceTsWithNgInErrors(errors) {
|
|
3236
|
-
return errors.replace(ERROR_CODE_MATCHER, "$1NG$2");
|
|
3237
|
-
}
|
|
3240
|
+
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.mjs
|
|
3241
|
+
var ERROR_DETAILS_PAGE_BASE_URL = "https://angular.io/errors";
|
|
3238
3242
|
|
|
3239
3243
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/imports/src/alias.mjs
|
|
3240
3244
|
import { ExternalExpr as ExternalExpr2 } from "@angular/compiler";
|
|
@@ -8393,7 +8397,7 @@ function getInheritedUndecoratedCtorDiagnostic(node, baseClass, reader) {
|
|
|
8393
8397
|
}
|
|
8394
8398
|
|
|
8395
8399
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/directive.mjs
|
|
8396
|
-
import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr5, FactoryTarget, getSafePropertyAccessString, makeBindingParser, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
|
|
8400
|
+
import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, createMayBeForwardRefExpression, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr5, FactoryTarget, getSafePropertyAccessString, makeBindingParser, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
|
|
8397
8401
|
import ts37 from "typescript";
|
|
8398
8402
|
|
|
8399
8403
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/factory.mjs
|
|
@@ -8803,17 +8807,17 @@ function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, isCore
|
|
|
8803
8807
|
};
|
|
8804
8808
|
}
|
|
8805
8809
|
function extractQueryMetadata(exprNode, name, args, propertyName, reflector, evaluator) {
|
|
8806
|
-
var _a;
|
|
8807
8810
|
if (args.length === 0) {
|
|
8808
8811
|
throw new FatalDiagnosticError(ErrorCode.DECORATOR_ARITY_WRONG, exprNode, `@${name} must have arguments`);
|
|
8809
8812
|
}
|
|
8810
8813
|
const first = name === "ViewChild" || name === "ContentChild";
|
|
8811
|
-
const
|
|
8814
|
+
const forwardReferenceTarget = tryUnwrapForwardRef(args[0], reflector);
|
|
8815
|
+
const node = forwardReferenceTarget != null ? forwardReferenceTarget : args[0];
|
|
8812
8816
|
const arg = evaluator.evaluate(node);
|
|
8813
8817
|
let isStatic2 = false;
|
|
8814
8818
|
let predicate = null;
|
|
8815
8819
|
if (arg instanceof Reference || arg instanceof DynamicValue) {
|
|
8816
|
-
predicate = new WrappedNodeExpr4(node);
|
|
8820
|
+
predicate = createMayBeForwardRefExpression(new WrappedNodeExpr4(node), forwardReferenceTarget !== null ? 2 : 0);
|
|
8817
8821
|
} else if (typeof arg === "string") {
|
|
8818
8822
|
predicate = [arg];
|
|
8819
8823
|
} else if (isStringArrayOrDie(arg, `@${name} predicate`, node)) {
|
|
@@ -9058,7 +9062,7 @@ var QUERY_TYPES = new Set([
|
|
|
9058
9062
|
]);
|
|
9059
9063
|
|
|
9060
9064
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/ng_module.mjs
|
|
9061
|
-
import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, ExternalExpr as ExternalExpr6, FactoryTarget as FactoryTarget2, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2,
|
|
9065
|
+
import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, ExternalExpr as ExternalExpr6, FactoryTarget as FactoryTarget2, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2, NO_ERRORS_SCHEMA, R3Identifiers, WrappedNodeExpr as WrappedNodeExpr5 } from "@angular/compiler";
|
|
9062
9066
|
import ts38 from "typescript";
|
|
9063
9067
|
var NgModuleSymbol = class extends SemanticSymbol {
|
|
9064
9068
|
constructor() {
|
|
@@ -9105,7 +9109,7 @@ var NgModuleSymbol = class extends SemanticSymbol {
|
|
|
9105
9109
|
}
|
|
9106
9110
|
};
|
|
9107
9111
|
var NgModuleDecoratorHandler = class {
|
|
9108
|
-
constructor(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, factoryTracker, annotateForClosureCompiler, injectableRegistry, perf
|
|
9112
|
+
constructor(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, factoryTracker, annotateForClosureCompiler, injectableRegistry, perf) {
|
|
9109
9113
|
this.reflector = reflector;
|
|
9110
9114
|
this.evaluator = evaluator;
|
|
9111
9115
|
this.metaReader = metaReader;
|
|
@@ -9118,7 +9122,6 @@ var NgModuleDecoratorHandler = class {
|
|
|
9118
9122
|
this.annotateForClosureCompiler = annotateForClosureCompiler;
|
|
9119
9123
|
this.injectableRegistry = injectableRegistry;
|
|
9120
9124
|
this.perf = perf;
|
|
9121
|
-
this.localeId = localeId;
|
|
9122
9125
|
this.precedence = HandlerPrecedence.PRIMARY;
|
|
9123
9126
|
this.name = NgModuleDecoratorHandler.name;
|
|
9124
9127
|
}
|
|
@@ -9404,14 +9407,6 @@ var NgModuleDecoratorHandler = class {
|
|
|
9404
9407
|
type: injectorDef.type
|
|
9405
9408
|
}
|
|
9406
9409
|
];
|
|
9407
|
-
if (this.localeId) {
|
|
9408
|
-
res.push({
|
|
9409
|
-
name: "\u0275loc",
|
|
9410
|
-
initializer: new LiteralExpr3(this.localeId),
|
|
9411
|
-
statements: [],
|
|
9412
|
-
type: STRING_TYPE
|
|
9413
|
-
});
|
|
9414
|
-
}
|
|
9415
9410
|
return res;
|
|
9416
9411
|
}
|
|
9417
9412
|
_toR3Reference(valueRef, valueContext, typeContext) {
|
|
@@ -10385,7 +10380,7 @@ function checkCustomElementSelectorForErrors(selector) {
|
|
|
10385
10380
|
}
|
|
10386
10381
|
|
|
10387
10382
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
|
|
10388
|
-
import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclareInjectableFromMetadata, compileInjectable,
|
|
10383
|
+
import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclareInjectableFromMetadata, compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, FactoryTarget as FactoryTarget4, LiteralExpr as LiteralExpr3, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
|
|
10389
10384
|
import ts40 from "typescript";
|
|
10390
10385
|
var InjectableDecoratorHandler = class {
|
|
10391
10386
|
constructor(reflector, isCore, strictCtorDeps, injectableRegistry, perf, errorOnDuplicateProv = true) {
|
|
@@ -10473,7 +10468,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
|
|
|
10473
10468
|
type,
|
|
10474
10469
|
typeArgumentCount,
|
|
10475
10470
|
internalType,
|
|
10476
|
-
providedIn:
|
|
10471
|
+
providedIn: createMayBeForwardRefExpression2(new LiteralExpr3(null), 0)
|
|
10477
10472
|
};
|
|
10478
10473
|
} else if (decorator.args.length === 1) {
|
|
10479
10474
|
const metaNode = decorator.args[0];
|
|
@@ -10481,7 +10476,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
|
|
|
10481
10476
|
throw new FatalDiagnosticError(ErrorCode.DECORATOR_ARG_NOT_LITERAL, metaNode, `@Injectable argument must be an object literal`);
|
|
10482
10477
|
}
|
|
10483
10478
|
const meta = reflectObjectLiteral(metaNode);
|
|
10484
|
-
const providedIn = meta.has("providedIn") ? getProviderExpression(meta.get("providedIn"), reflector) :
|
|
10479
|
+
const providedIn = meta.has("providedIn") ? getProviderExpression(meta.get("providedIn"), reflector) : createMayBeForwardRefExpression2(new LiteralExpr3(null), 0);
|
|
10485
10480
|
let deps = void 0;
|
|
10486
10481
|
if ((meta.has("useClass") || meta.has("useFactory")) && meta.has("deps")) {
|
|
10487
10482
|
const depsExpr = meta.get("deps");
|
|
@@ -10509,7 +10504,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
|
|
|
10509
10504
|
}
|
|
10510
10505
|
function getProviderExpression(expression, reflector) {
|
|
10511
10506
|
const forwardRefValue = tryUnwrapForwardRef(expression, reflector);
|
|
10512
|
-
return
|
|
10507
|
+
return createMayBeForwardRefExpression2(new WrappedNodeExpr7(forwardRefValue != null ? forwardRefValue : expression), forwardRefValue !== null ? 2 : 0);
|
|
10513
10508
|
}
|
|
10514
10509
|
function extractInjectableCtorDeps(clazz, meta, decorator, reflector, isCore, strictCtorDeps) {
|
|
10515
10510
|
if (decorator.args === null) {
|
|
@@ -14585,12 +14580,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
|
|
|
14585
14580
|
let dirId = null;
|
|
14586
14581
|
const inputs = getBoundInputs(this.dir, this.node, this.tcb);
|
|
14587
14582
|
for (const input of inputs) {
|
|
14588
|
-
|
|
14589
|
-
if (!this.tcb.env.config.checkTypeOfInputBindings) {
|
|
14590
|
-
expr = tsCastToAny(expr);
|
|
14591
|
-
} else if (!this.tcb.env.config.strictNullInputBindings) {
|
|
14592
|
-
expr = ts67.createNonNullExpression(expr);
|
|
14593
|
-
}
|
|
14583
|
+
const expr = widenBinding(translateInput(input.attribute, this.tcb, this.scope), this.tcb);
|
|
14594
14584
|
let assignment = wrapForDiagnostics(expr);
|
|
14595
14585
|
for (const fieldName of input.fieldNames) {
|
|
14596
14586
|
let target;
|
|
@@ -14711,12 +14701,7 @@ var TcbUnclaimedInputsOp = class extends TcbOp {
|
|
|
14711
14701
|
if (binding.type === 0 && this.claimedInputs.has(binding.name)) {
|
|
14712
14702
|
continue;
|
|
14713
14703
|
}
|
|
14714
|
-
|
|
14715
|
-
if (!this.tcb.env.config.checkTypeOfInputBindings) {
|
|
14716
|
-
expr = tsCastToAny(expr);
|
|
14717
|
-
} else if (!this.tcb.env.config.strictNullInputBindings) {
|
|
14718
|
-
expr = ts67.createNonNullExpression(expr);
|
|
14719
|
-
}
|
|
14704
|
+
const expr = widenBinding(tcbExpression(binding.value, this.tcb, this.scope), this.tcb);
|
|
14720
14705
|
if (this.tcb.env.config.checkTypeOfDomBindings && binding.type === 0) {
|
|
14721
14706
|
if (binding.name !== "style" && binding.name !== "class") {
|
|
14722
14707
|
if (elId === null) {
|
|
@@ -15201,12 +15186,7 @@ function tcbCallTypeCtor(dir, tcb, inputs) {
|
|
|
15201
15186
|
const members = inputs.map((input) => {
|
|
15202
15187
|
const propertyName = ts67.createStringLiteral(input.field);
|
|
15203
15188
|
if (input.type === "binding") {
|
|
15204
|
-
|
|
15205
|
-
if (!tcb.env.config.checkTypeOfInputBindings) {
|
|
15206
|
-
expr = tsCastToAny(expr);
|
|
15207
|
-
} else if (!tcb.env.config.strictNullInputBindings) {
|
|
15208
|
-
expr = ts67.createNonNullExpression(expr);
|
|
15209
|
-
}
|
|
15189
|
+
const expr = widenBinding(input.expression, tcb);
|
|
15210
15190
|
const assignment = ts67.createPropertyAssignment(propertyName, wrapForDiagnostics(expr));
|
|
15211
15191
|
addParseSpanInfo(assignment, input.sourceSpan);
|
|
15212
15192
|
return assignment;
|
|
@@ -15243,6 +15223,19 @@ function translateInput(attr, tcb, scope) {
|
|
|
15243
15223
|
return ts67.createStringLiteral(attr.value);
|
|
15244
15224
|
}
|
|
15245
15225
|
}
|
|
15226
|
+
function widenBinding(expr, tcb) {
|
|
15227
|
+
if (!tcb.env.config.checkTypeOfInputBindings) {
|
|
15228
|
+
return tsCastToAny(expr);
|
|
15229
|
+
} else if (!tcb.env.config.strictNullInputBindings) {
|
|
15230
|
+
if (ts67.isObjectLiteralExpression(expr) || ts67.isArrayLiteralExpression(expr)) {
|
|
15231
|
+
return expr;
|
|
15232
|
+
} else {
|
|
15233
|
+
return ts67.createNonNullExpression(expr);
|
|
15234
|
+
}
|
|
15235
|
+
} else {
|
|
15236
|
+
return expr;
|
|
15237
|
+
}
|
|
15238
|
+
}
|
|
15246
15239
|
var EVENT_PARAMETER = "$event";
|
|
15247
15240
|
function tcbCreateEventHandler(event, tcb, scope, eventType) {
|
|
15248
15241
|
const handler = tcbEventHandlerExpression(event.handler, tcb, scope);
|
|
@@ -17261,7 +17254,7 @@ var NgCompiler = class {
|
|
|
17261
17254
|
new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, isCore, semanticDepGraphUpdater, this.closureCompilerEnabled, false, this.delegatingPerfRecorder),
|
|
17262
17255
|
new PipeDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder),
|
|
17263
17256
|
new InjectableDecoratorHandler(reflector, isCore, this.options.strictInjectionParameters || false, injectableRegistry, this.delegatingPerfRecorder),
|
|
17264
|
-
new NgModuleDecoratorHandler(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, this.adapter.factoryTracker, this.closureCompilerEnabled, injectableRegistry, this.delegatingPerfRecorder
|
|
17257
|
+
new NgModuleDecoratorHandler(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, this.adapter.factoryTracker, this.closureCompilerEnabled, injectableRegistry, this.delegatingPerfRecorder)
|
|
17265
17258
|
];
|
|
17266
17259
|
const traitCompiler = new TraitCompiler(handlers, reflector, this.delegatingPerfRecorder, this.incrementalCompilation, this.options.compileNonExportedClasses !== false, compilationMode, dtsTransforms, semanticDepGraphUpdater);
|
|
17267
17260
|
const notifyingDriver = new NotifyingProgramDriverWrapper(this.programDriver, (program) => {
|
|
@@ -17450,7 +17443,14 @@ import ts74 from "typescript";
|
|
|
17450
17443
|
|
|
17451
17444
|
// bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/diagnostics/typescript_version.mjs
|
|
17452
17445
|
function toNumbers(value) {
|
|
17453
|
-
|
|
17446
|
+
const suffixIndex = value.lastIndexOf("-");
|
|
17447
|
+
return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
|
|
17448
|
+
const parsed = parseInt(segment, 10);
|
|
17449
|
+
if (isNaN(parsed)) {
|
|
17450
|
+
throw Error(`Unable to parse version string ${value}.`);
|
|
17451
|
+
}
|
|
17452
|
+
return parsed;
|
|
17453
|
+
});
|
|
17454
17454
|
}
|
|
17455
17455
|
function compareNumbers(a, b) {
|
|
17456
17456
|
const max = Math.max(a.length, b.length);
|