Skip to content

Commit

Permalink
Merge pull request #983 from forcedotcom/sm/ts-patch
Browse files Browse the repository at this point in the history
feat: ts5 and ts-patch
  • Loading branch information
WillieRuemmele authored Nov 10, 2023
2 parents 4dbd64a + 4e66905 commit 2b6556b
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .sfdevrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
},
"wireit": {
"compile": {
"command": "ttsc -p . --pretty --incremental",
"command": "tspc -p . --pretty --incremental",
"files": ["src/**/*.ts", "tsconfig.json", "messages", "messageTransformer"],
"output": ["lib/**", "*.tsbuildinfo"],
"clean": "if-file-deleted"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ The Messages class, by default, loads message text during run time. It's optimiz

If you're using @salesforce/core or other code that uses its Messages class in a bundler (webpack, esbuild, etc) it may struggle with these runtime references.

src/messageTransformer will "inline" the messages into the js files during TS compile using `https://github.com/cevek/ttypescript`.
src/messageTransformer will "inline" the messages into the js files during TS compile using `https://github.com/nonara/ts-patch`.

In your plugin or library,

`yarn add --dev ttypescript`
`yarn add --dev ts-patch`

> tsconfig.json
Expand All @@ -54,7 +54,7 @@ In your plugin or library,
```json
"wireit": {
"compile": {
"command": "ttsc -p . --pretty --incremental",
"command": "tspc -p . --pretty --incremental",
"files": [
"src/**/*.ts",
"tsconfig.json",
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@
"benchmark": "^2.1.4",
"chai-string": "^1.5.0",
"ts-node": "^10.9.1",
"ttypescript": "^1.5.15",
"typescript": "^4.9.5"
"ts-patch": "^3.0.2",
"typescript": "^5.2.2"
},
"repository": {
"type": "git",
Expand All @@ -86,7 +86,7 @@
]
},
"compile": {
"command": "ttsc -p . --pretty --incremental",
"command": "tspc -p . --pretty --incremental",
"files": [
"src/**/*.ts",
"tsconfig.json",
Expand Down
4 changes: 2 additions & 2 deletions src/messageTransformer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const messageTransformer = (): ts.TransformerFactory<ts.SourceFile> => {
if (ts.isExpressionStatement(node) && node.getText().includes('importMessagesDirectory')) {
// importMessagesDirectory now happens at compile, not in runtime
// returning undefined removes the node
return undefined;
return ts.factory.createEmptyStatement();
}
if (
// transform a runtime load call into hardcoded messages values
Expand Down Expand Up @@ -57,7 +57,7 @@ export const messageTransformer = (): ts.TransformerFactory<ts.SourceFile> => {
// it might be a node that contains one of the things we're interested in, so keep digging
return ts.visitEachChild(node, visitor, context);
};
return ts.visitNode(sourceFile, visitor);
return ts.visitNode(sourceFile, visitor, ts.isSourceFile);
};
return transformerFactory;
};
Expand Down
52 changes: 39 additions & 13 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1292,7 +1292,7 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"

chalk@^4.0.0, chalk@^4.1.0:
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
Expand Down Expand Up @@ -2416,6 +2416,15 @@ global-dirs@^0.1.1:
dependencies:
ini "^1.3.4"

global-prefix@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
dependencies:
ini "^1.3.5"
kind-of "^6.0.2"
which "^1.3.1"

globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
Expand Down Expand Up @@ -2649,7 +2658,7 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==

ini@^1.3.4:
ini@^1.3.4, ini@^1.3.5:
version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
Expand Down Expand Up @@ -3149,7 +3158,7 @@ jws@^3.2.2:
jwa "^1.4.1"
safe-buffer "^5.0.1"

kind-of@^6.0.3:
kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
Expand Down Expand Up @@ -3443,7 +3452,7 @@ [email protected]:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"

minimist@^1.2.0, minimist@^1.2.6:
minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
Expand Down Expand Up @@ -4196,7 +4205,7 @@ [email protected], resolve-global@^1.0.0:
dependencies:
global-dirs "^0.1.1"

resolve@>=1.9.0, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.4:
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.2, resolve@^1.22.4:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
Expand Down Expand Up @@ -4320,7 +4329,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==

semver@^7.3.4, semver@^7.5.4:
semver@^7.3.4, semver@^7.3.8, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
Expand Down Expand Up @@ -4745,6 +4754,18 @@ ts-node@^10.8.1, ts-node@^10.9.1:
v8-compile-cache-lib "^3.0.1"
yn "3.1.1"

ts-patch@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/ts-patch/-/ts-patch-3.0.2.tgz#cbdf88e4dfb596e4dab8f2c8269361d33270a0ba"
integrity sha512-iTg8euqiNsNM1VDfOsVIsP0bM4kAVXU38n7TGQSkky7YQX/syh6sDPIRkvSS0HjT8ZOr0pq1h+5Le6jdB3hiJQ==
dependencies:
chalk "^4.1.2"
global-prefix "^3.0.0"
minimist "^1.2.8"
resolve "^1.22.2"
semver "^7.3.8"
strip-ansi "^6.0.1"

ts-retry-promise@^0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ts-retry-promise/-/ts-retry-promise-0.7.1.tgz#176d6eee6415f07b6c7c286d3657355e284a6906"
Expand All @@ -4770,13 +4791,6 @@ tslib@^2.0.3, tslib@^2.6.1, tslib@^2.6.2:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==

ttypescript@^1.5.15:
version "1.5.15"
resolved "https://registry.yarnpkg.com/ttypescript/-/ttypescript-1.5.15.tgz#e45550ad69289d06d3bc3fd4a3c87e7c1ef3eba7"
integrity sha512-48ykDNHzFnPMnv4hYX1P8Q84TvCZyL1QlFxeuxsuZ48X2+ameBgPenvmCkHJtoOSxpoWTWi8NcgNrRnVDOmfSg==
dependencies:
resolve ">=1.9.0"

tunnel-agent@*:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
Expand Down Expand Up @@ -4887,6 +4901,11 @@ typescript@^4.6.4, typescript@^4.9.5:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==

typescript@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==

unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
Expand Down Expand Up @@ -5041,6 +5060,13 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13:
gopd "^1.0.1"
has-tostringtag "^1.0.0"

which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
dependencies:
isexe "^2.0.0"

which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
Expand Down

4 comments on commit 2b6556b

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logger Benchmarks - ubuntu-latest

Benchmark suite Current: 2b6556b Previous: 4e66905 Ratio
Child logger creation 485988 ops/sec (±1.35%) 372398 ops/sec (±0.33%) 0.77
Logging a string on root logger 752798 ops/sec (±7.66%) 690046 ops/sec (±14.73%) 0.92
Logging an object on root logger 563844 ops/sec (±7.51%) 403765 ops/sec (±11.21%) 0.72
Logging an object with a message on root logger 11117 ops/sec (±199.49%) 291689 ops/sec (±13.84%) 26.24
Logging an object with a redacted prop on root logger 394247 ops/sec (±13.08%) 5786 ops/sec (±208.25%) 0.014676078701930516
Logging a nested 3-level object on root logger 351134 ops/sec (±9.68%) 267245 ops/sec (±9.63%) 0.76

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Logger Benchmarks - ubuntu-latest'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 2b6556b Previous: 4e66905 Ratio
Logging an object with a message on root logger 11117 ops/sec (±199.49%) 291689 ops/sec (±13.84%) 26.24

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logger Benchmarks - windows-latest

Benchmark suite Current: 2b6556b Previous: 4e66905 Ratio
Child logger creation 198750 ops/sec (±7.20%) 338212 ops/sec (±0.96%) 1.70
Logging a string on root logger 448751 ops/sec (±8.49%) 844025 ops/sec (±8.19%) 1.88
Logging an object on root logger 318766 ops/sec (±18.53%) 644539 ops/sec (±5.69%) 2.02
Logging an object with a message on root logger 225606 ops/sec (±16.53%) 2624 ops/sec (±234.56%) 0.011630896341409359
Logging an object with a redacted prop on root logger 250078 ops/sec (±21.41%) 478225 ops/sec (±5.72%) 1.91
Logging a nested 3-level object on root logger 5621 ops/sec (±190.02%) 345902 ops/sec (±4.16%) 61.54

This comment was automatically generated by workflow using github-action-benchmark.

@svc-cli-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Logger Benchmarks - windows-latest'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: 2b6556b Previous: 4e66905 Ratio
Logging an object on root logger 318766 ops/sec (±18.53%) 644539 ops/sec (±5.69%) 2.02
Logging a nested 3-level object on root logger 5621 ops/sec (±190.02%) 345902 ops/sec (±4.16%) 61.54

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.