Skip to content

Commit

Permalink
Fix substring method
Browse files Browse the repository at this point in the history
  • Loading branch information
edoardocavazza committed Mar 10, 2024
1 parent ff1eb1d commit 8427bec
Show file tree
Hide file tree
Showing 7 changed files with 169 additions and 34 deletions.
4 changes: 2 additions & 2 deletions packages/esbuild-plugin-worker/lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ export default function ({ constructors = ['Worker', 'SharedWorker'], proxy = fa
const isStringLiteral = argument.type === 'StringLiteral';
const isIdentifier = argument.type === 'Identifier';
if ((isStringLiteral || isIdentifier) && proxy) {
const arg = code.substring(argument.start, argument.end);
const arg = helpers.substring(argument.start, argument.end);
helpers.overwrite(
argument.start,
argument.end,
Expand Down Expand Up @@ -185,7 +185,7 @@ export default function ({ constructors = ['Worker', 'SharedWorker'], proxy = fa

if (typeof value !== 'string') {
if (proxy) {
const arg = code.substring(argument.start, argument.end);
const arg = helpers.substring(argument.start, argument.end);
helpers.overwrite(
argument.start,
argument.end,
Expand Down
13 changes: 0 additions & 13 deletions packages/estransform/build.js

This file was deleted.

24 changes: 18 additions & 6 deletions packages/estransform/lib/parser.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import MagicString from 'magic-string';
import { Buffer } from 'buffer';
import { MagicString } from '@napi-rs/magic-string';
import { parseAsync } from 'oxc-parser';
import { inlineSourcemap, loadSourcemap, mergeSourcemaps, removeInlineSourcemap } from './sourcemaps.js';

Expand Down Expand Up @@ -53,6 +54,7 @@ export async function walk(root, visitors) {
*/
export async function parse(inputCode, filePath) {
const code = removeInlineSourcemap(inputCode);
const buffer = Buffer.from(code);
const magicCode = new MagicString(code);
const result = await parseAsync(code, { sourceType: 'module', sourceFilename: filePath });
const ast = JSON.parse(result.program);
Expand All @@ -63,6 +65,14 @@ export async function parse(inputCode, filePath) {
ast,
comments: result.comments,
helpers: {
/**
* @param {number} start
* @param {number} end
* @returns {string}
*/
substring(start, end) {
return buffer.subarray(start, end).toString('utf8');
},
/**
* @param {string} code
* @param {number} [index]
Expand Down Expand Up @@ -109,11 +119,13 @@ export async function parse(inputCode, filePath) {
if (options.sourcemap) {
const inputSourcemap = await loadSourcemap(inputCode, filePath);
const newSourcemap = /** @type {import('./sourcemaps.js').SourceMap} */ (
magicCode.generateMap({
source: filePath,
includeContent: options.sourcesContent,
hires: true,
})
magicCode
.generateMap({
source: filePath,
includeContent: options.sourcesContent || false,
hires: true,
})
.toMap()
);

map = inputSourcemap ? await mergeSourcemaps([inputSourcemap, newSourcemap]) : newSourcemap;
Expand Down
13 changes: 5 additions & 8 deletions packages/estransform/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"type": "module",
"version": "0.18.1",
"description": "Execute multiple transformations on JavaScript sources with full sourcemaps support.",
"main": "dist/index.js",
"main": "lib/index.js",
"typings": "./types/index.d.ts",
"author": "Chialab <dev@chialab.io> (https://www.chialab.it)",
"license": "MIT",
Expand All @@ -18,11 +18,8 @@
"transform",
"sourcemaps"
],
"scripts": {
"build": "rimraf dist && node build.js"
},
"files": [
"dist",
"lib",
"types",
"package.json",
"README.md",
Expand All @@ -32,13 +29,13 @@
"node": ">=18"
},
"dependencies": {
"@napi-rs/magic-string": "^0.3.4",
"@parcel/source-map": "^2.0.0",
"cjs-module-lexer": "^1.2.2",
"es-module-lexer": "^1.0.0",
"oxc-parser": "^0.8.0"
},
"devDependencies": {
"cjs-module-lexer": "^1.2.2",
"es-module-lexer": "^1.0.0",
"magic-string": "^0.30.3",
"rimraf": "^5.0.1",
"typescript": "^5.0.0"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/wds-plugin-hmr/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ esbuild.build({
sourcemap: true,
format: 'esm',
platform: 'node',
external: ['@chialab/es-dev-server'],
external: ['@chialab/esbuild-plugin-require-resolve', '@chialab/es-dev-server'],
banner: {
js: `import { dirname as __pathDirname } from 'path';
import { createRequire as __moduleCreateRequire } from 'module';
Expand Down
4 changes: 2 additions & 2 deletions packages/wds-plugin-hmr/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
"node": ">=18"
},
"dependencies": {
"@chialab/es-dev-server": "^0.18.0"
"@chialab/es-dev-server": "^0.18.0",
"@chialab/esbuild-plugin-require-resolve": "^0.18.0"
},
"devDependencies": {
"@chialab/esbuild-plugin-require-resolve": "^0.18.0",
"@web/dev-server-hmr": "^0.4.0",
"rimraf": "^5.0.1",
"typescript": "^5.0.0"
Expand Down
143 changes: 141 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2041,10 +2041,10 @@ __metadata:
version: 0.0.0-use.local
resolution: "@chialab/estransform@workspace:packages/estransform"
dependencies:
"@napi-rs/magic-string": ^0.3.4
"@parcel/source-map": ^2.0.0
cjs-module-lexer: ^1.2.2
es-module-lexer: ^1.0.0
magic-string: ^0.30.3
oxc-parser: ^0.8.0
rimraf: ^5.0.1
typescript: ^5.0.0
Expand Down Expand Up @@ -3525,6 +3525,145 @@ __metadata:
languageName: node
linkType: hard

"@napi-rs/magic-string-android-arm-eabi@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-android-arm-eabi@npm:0.3.4"
conditions: os=android & cpu=arm
languageName: node
linkType: hard

"@napi-rs/magic-string-android-arm64@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-android-arm64@npm:0.3.4"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard

"@napi-rs/magic-string-darwin-arm64@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-darwin-arm64@npm:0.3.4"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard

"@napi-rs/magic-string-darwin-x64@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-darwin-x64@npm:0.3.4"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard

"@napi-rs/magic-string-freebsd-x64@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-freebsd-x64@npm:0.3.4"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard

"@napi-rs/magic-string-linux-arm-gnueabihf@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-linux-arm-gnueabihf@npm:0.3.4"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard

"@napi-rs/magic-string-linux-arm64-gnu@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-linux-arm64-gnu@npm:0.3.4"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard

"@napi-rs/magic-string-linux-arm64-musl@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-linux-arm64-musl@npm:0.3.4"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard

"@napi-rs/magic-string-linux-x64-gnu@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-linux-x64-gnu@npm:0.3.4"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard

"@napi-rs/magic-string-linux-x64-musl@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-linux-x64-musl@npm:0.3.4"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard

"@napi-rs/magic-string-win32-arm64-msvc@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-win32-arm64-msvc@npm:0.3.4"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard

"@napi-rs/magic-string-win32-ia32-msvc@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-win32-ia32-msvc@npm:0.3.4"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard

"@napi-rs/magic-string-win32-x64-msvc@npm:0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string-win32-x64-msvc@npm:0.3.4"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard

"@napi-rs/magic-string@npm:^0.3.4":
version: 0.3.4
resolution: "@napi-rs/magic-string@npm:0.3.4"
dependencies:
"@napi-rs/magic-string-android-arm-eabi": 0.3.4
"@napi-rs/magic-string-android-arm64": 0.3.4
"@napi-rs/magic-string-darwin-arm64": 0.3.4
"@napi-rs/magic-string-darwin-x64": 0.3.4
"@napi-rs/magic-string-freebsd-x64": 0.3.4
"@napi-rs/magic-string-linux-arm-gnueabihf": 0.3.4
"@napi-rs/magic-string-linux-arm64-gnu": 0.3.4
"@napi-rs/magic-string-linux-arm64-musl": 0.3.4
"@napi-rs/magic-string-linux-x64-gnu": 0.3.4
"@napi-rs/magic-string-linux-x64-musl": 0.3.4
"@napi-rs/magic-string-win32-arm64-msvc": 0.3.4
"@napi-rs/magic-string-win32-ia32-msvc": 0.3.4
"@napi-rs/magic-string-win32-x64-msvc": 0.3.4
dependenciesMeta:
"@napi-rs/magic-string-android-arm-eabi":
optional: true
"@napi-rs/magic-string-android-arm64":
optional: true
"@napi-rs/magic-string-darwin-arm64":
optional: true
"@napi-rs/magic-string-darwin-x64":
optional: true
"@napi-rs/magic-string-freebsd-x64":
optional: true
"@napi-rs/magic-string-linux-arm-gnueabihf":
optional: true
"@napi-rs/magic-string-linux-arm64-gnu":
optional: true
"@napi-rs/magic-string-linux-arm64-musl":
optional: true
"@napi-rs/magic-string-linux-x64-gnu":
optional: true
"@napi-rs/magic-string-linux-x64-musl":
optional: true
"@napi-rs/magic-string-win32-arm64-msvc":
optional: true
"@napi-rs/magic-string-win32-ia32-msvc":
optional: true
"@napi-rs/magic-string-win32-x64-msvc":
optional: true
checksum: b138f5ba72511f80b20ac068edb124cae3693a5650cb574b8fcff781c149bb76db286a314d172e15cf688bd176e0a693929422c3e0c20663fda00a8e954beaf5
languageName: node
linkType: hard

"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1":
version: 5.1.1-v1
resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1"
Expand Down Expand Up @@ -11257,7 +11396,7 @@ __metadata:
languageName: node
linkType: hard

"magic-string@npm:^0.30.3, magic-string@npm:^0.30.5, magic-string@npm:^0.30.7":
"magic-string@npm:^0.30.5, magic-string@npm:^0.30.7":
version: 0.30.8
resolution: "magic-string@npm:0.30.8"
dependencies:
Expand Down

0 comments on commit 8427bec

Please sign in to comment.