refactor: swc ain't ready for primetime

This commit is contained in:
cha0s 2024-06-22 08:02:23 -05:00
parent 630740e71e
commit f69ee95732
32 changed files with 36 additions and 33 deletions

3
app/astride/README.md Normal file
View File

@ -0,0 +1,3 @@
# ASTRide
Ride your AST :)

View File

@ -1,4 +1,4 @@
import {unwrap} from '@/swcx/types.js';
import {unwrap} from '@/astride/types.js';
const evaluators = Object.fromEntries(
Object.entries(

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates array of literals', async () => {
expect(evaluate(await expression('[1.5, 2, "three"]')))

View File

@ -1,7 +1,7 @@
import {
isComputed,
isMemberExpression,
} from '@/swcx/types.js';
} from '@/astride/types.js';
export default function(node, {evaluate, scope}) {
const {operator, left} = node;

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
const scopeTest = test.extend({
scope: async ({}, use) => {

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates await expressions', async () => {
const evaluated = evaluate(await expression('await 1'));

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates +', async () => {
expect(evaluate(await expression('10 + 2')))

View File

@ -3,7 +3,7 @@ import {
isComputed,
isMemberExpression,
unwrap,
} from '@/swcx/types.js';
} from '@/astride/types.js';
export default function(node, {evaluate, scope}) {
let asyncArgs = false;

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
const scopeTest = test.extend({
scope: async ({}, use) => {

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
const scopeTest = test.extend({
scope: async ({}, use) => {

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates numeric literals', async () => {
expect(evaluate(await expression('1')))

View File

@ -1,6 +1,6 @@
import {
isComputed,
} from '@/swcx/types.js';
} from '@/astride/types.js';
export default function({object, property, wrapper}, {evaluate, scope}) {
const member = (O, P) => (wrapper?.optional ? O?.[P] : O[P]);

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
const scopeTest = test.extend({
scope: async ({}, use) => {

View File

@ -5,7 +5,7 @@ import {
isNumericLiteral,
isSpreadElement,
isStringLiteral,
} from '@/swcx/types.js';
} from '@/astride/types.js';
export default function(node, {evaluate, scope}) {
const {properties} = node;

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates object expression', async () => {
let evaluated;

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
test('evaluates +', async () => {
expect(evaluate(await expression('+1')))

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import evaluate from '@/swcx/evaluate.js';
import expression from '@/swcx/test/expression.js';
import evaluate from '@/astride/evaluate.js';
import expression from '@/astride/test/expression.js';
const scopeTest = test.extend({
scope: async ({}, use) => {

View File

@ -1,6 +1,6 @@
import evaluate from '@/swcx/evaluate.js';
import Scope from '@/swcx/scope.js';
import traverse, {TRAVERSAL_PATH} from '@/swcx/traverse.js';
import evaluate from '@/astride/evaluate.js';
import Scope from '@/astride/scope.js';
import traverse, {TRAVERSAL_PATH} from '@/astride/traverse.js';
import {
isArrayPattern,
isBlockStatement,
@ -13,7 +13,7 @@ import {
isReturnStatement,
isVariableDeclarator,
isWhileStatement,
} from '@/swcx/types.js';
} from '@/astride/types.js';
export default class Sandbox {

View File

@ -1,7 +1,7 @@
import {expect, test} from 'vitest';
import {parse} from '@swc/core';
import Sandbox from '@/swcx/sandbox.js';
import Sandbox from '@/astride/sandbox.js';
test('declares variables', async () => {
const sandbox = new Sandbox(

View File

@ -1,4 +1,4 @@
import Sandbox from '@/swcx/sandbox.js';
import Sandbox from '@/astride/sandbox.js';
import TickingPromise from '@/util/ticking-promise.js';
import {LRUCache} from 'lru-cache';