Skip to content

Commit 9a8e1bf

Browse files
imcottonmhegazy
authored andcommitted
Add ES2017 string padding (#12152)
* add es2017.string.d.ts for String.prototype.{padStart,padEnd} * append es2017.string.d.ts into es2017.d.ts * add es2017.string into commandLineParser * append es2017.string into error message for unit tests of commandLineParser * append es2017.string into Gulpfile * append es2017.string into Jakefile
1 parent 205ce32 commit 9a8e1bf

7 files changed

+42
-11
lines changed

Gulpfile.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ const es2016LibrarySourceMap = es2016LibrarySource.map(function(source) {
128128

129129
const es2017LibrarySource = [
130130
"es2017.object.d.ts",
131-
"es2017.sharedmemory.d.ts"
131+
"es2017.sharedmemory.d.ts",
132+
"es2017.string.d.ts",
132133
];
133134

134135
const es2017LibrarySourceMap = es2017LibrarySource.map(function(source) {

Jakefile.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,8 @@ var es2016LibrarySourceMap = es2016LibrarySource.map(function (source) {
303303

304304
var es2017LibrarySource = [
305305
"es2017.object.d.ts",
306-
"es2017.sharedmemory.d.ts"
306+
"es2017.sharedmemory.d.ts",
307+
"es2017.string.d.ts",
307308
];
308309

309310
var es2017LibrarySourceMap = es2017LibrarySource.map(function (source) {

src/compiler/commandLineParser.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,8 @@ namespace ts {
434434
"es2015.symbol.wellknown": "lib.es2015.symbol.wellknown.d.ts",
435435
"es2016.array.include": "lib.es2016.array.include.d.ts",
436436
"es2017.object": "lib.es2017.object.d.ts",
437-
"es2017.sharedmemory": "lib.es2017.sharedmemory.d.ts"
437+
"es2017.sharedmemory": "lib.es2017.sharedmemory.d.ts",
438+
"es2017.string": "lib.es2017.string.d.ts",
438439
}),
439440
},
440441
description: Diagnostics.Specify_library_files_to_be_included_in_the_compilation_Colon

src/harness/unittests/commandLineParsing.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ namespace ts {
6060
assertParseResult(["--lib", "es5,invalidOption", "0.ts"],
6161
{
6262
errors: [{
63-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
63+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
6464
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
6565
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
6666

@@ -263,7 +263,7 @@ namespace ts {
263263
assertParseResult(["--lib", "es5,", "es7", "0.ts"],
264264
{
265265
errors: [{
266-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
266+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
267267
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
268268
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
269269

@@ -283,7 +283,7 @@ namespace ts {
283283
assertParseResult(["--lib", "es5, ", "es7", "0.ts"],
284284
{
285285
errors: [{
286-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
286+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
287287
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
288288
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
289289

src/harness/unittests/convertCompilerOptionsFromJson.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ namespace ts {
233233
file: undefined,
234234
start: 0,
235235
length: 0,
236-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
236+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
237237
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
238238
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
239239
}]
@@ -264,7 +264,7 @@ namespace ts {
264264
file: undefined,
265265
start: 0,
266266
length: 0,
267-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
267+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
268268
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
269269
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
270270
}]
@@ -295,7 +295,7 @@ namespace ts {
295295
file: undefined,
296296
start: 0,
297297
length: 0,
298-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
298+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
299299
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
300300
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
301301
}]
@@ -326,7 +326,7 @@ namespace ts {
326326
file: undefined,
327327
start: 0,
328328
length: 0,
329-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory'",
329+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string'",
330330
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
331331
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
332332
}]

src/lib/es2017.d.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/// <reference path="lib.es2016.d.ts" />
22
/// <reference path="lib.es2017.object.d.ts" />
3-
/// <reference path="lib.es2017.sharedmemory.d.ts" />
3+
/// <reference path="lib.es2017.sharedmemory.d.ts" />
4+
/// <reference path="lib.es2017.string.d.ts" />

src/lib/es2017.string.d.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
interface String {
2+
/**
3+
* Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
4+
* The padding is applied from the start (left) of the current string.
5+
*
6+
* @param maxLength The length of the resulting string once the current string has been padded.
7+
* If this parameter is smaller than the current string's length, the current string will be returned as it is.
8+
*
9+
* @param fillString The string to pad the current string with.
10+
* If this string is too long, it will be truncated and the left-most part will be applied.
11+
* The default value for this parameter is " " (U+0020).
12+
*/
13+
padStart(maxLength: number, fillString?: string): string;
14+
15+
/**
16+
* Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
17+
* The padding is applied from the end (right) of the current string.
18+
*
19+
* @param maxLength The length of the resulting string once the current string has been padded.
20+
* If this parameter is smaller than the current string's length, the current string will be returned as it is.
21+
*
22+
* @param fillString The string to pad the current string with.
23+
* If this string is too long, it will be truncated and the left-most part will be applied.
24+
* The default value for this parameter is " " (U+0020).
25+
*/
26+
padEnd(maxLength: number, fillString?: string): string;
27+
}

0 commit comments

Comments
 (0)