From ce0d27f3031daf9e96274510c0a01d794b887cf6 Mon Sep 17 00:00:00 2001 From: Ilyar Date: Tue, 26 Aug 2025 09:54:35 +0200 Subject: [PATCH] chore: refactor exports --- CHANGELOG.md | 4 ++ index.ts | 6 --- jest.config.js | 6 --- jest.config.ts | 10 +++++ package.json | 56 ++++++++++++++++++++++----- main.ts => src/cli.ts | 2 +- src/index.ts | 6 +++ src/main.ts | 6 +-- generate_tests.ts => test/generate.ts | 6 +-- tsconfig.json | 9 ++++- 10 files changed, 81 insertions(+), 30 deletions(-) delete mode 100644 index.ts delete mode 100644 jest.config.js create mode 100644 jest.config.ts rename main.ts => src/cli.ts (96%) create mode 100644 src/index.ts rename generate_tests.ts => test/generate.ts (58%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 529956e..d46764a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.0.0-beta.3] – 2025-08-25 + +- Make export friendly use in web + ## [2.0.0-beta.2] – 2025-08-25 - Make friendly for use in web diff --git a/index.ts b/index.ts deleted file mode 100644 index 4c857cd..0000000 --- a/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { getTLBCodeByAST, generateCodeByAST, generateCodeFromData } from './src/main'; -export { generateCode, getTLBCode, generateCodeWithGenerator } from './src/node'; -export * from './src/ast'; -export { isBigInt as isBigIntForJson, isBigIntExpr as isBigIntExprForJson } from './src/generators/typescript/utils'; -export type { CodeGenerator } from './src/generators/generator'; -export { TypescriptGenerator } from './src/generators/typescript/generator'; diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 330b5be..0000000 --- a/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @type {import('ts-jest').JestConfigWithTsJest} */ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['**/?(*.)+(spec|test).[j]s?(x)'], -}; diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..94a9d27 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,10 @@ +import type { Config } from 'jest'; + +const config: Config = { + verbose: true, + testEnvironment: 'node', + testMatch: ['**/*.spec.ts'], + preset: 'ts-jest', +}; + +export default config; diff --git a/package.json b/package.json index d223d20..7431f41 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,60 @@ { "name": "@ton-community/tlb-codegen", - "version": "2.0.0-beta.2", - "description": "", - "main": "build/index.js", + "version": "2.0.0-beta.3", + "description": "TLB code generator", + "files": [ + "./build/*", + "LICENSE", + "README.md" + ], + "main": "./build/index.js", + "module": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "import": "./build/index.js", + "require": "./build/index.js", + "default": "./index.js" + }, + "./node": { + "types": "./build/node.d.ts", + "import": "./build/node.js", + "require": "./build/node.js", + "default": "./build/node.js" + } + }, + "typesVersions": { + "*": { + "*": ["*"] + } + }, + "bin": { + "tlb": "./build/cli.js" + }, + "publishConfig": { + "access": "public" + }, "prettier": "@ton/toolchain/prettier", "scripts": { "lint": "eslint . --max-warnings 0", "lint:fix": "eslint . --max-warnings 0 --fix", + "test:gen": "ts-node test/generate.ts", "test": "jest", "build": "npm run compile", + "prepublishOnly": "npm run build", "compile": "tsc" }, - "bin": { - "tlb": "build/main.js" - }, - "keywords": [], - "author": "", - "license": "ISC", + "keywords": [ + "ton", + "tlb", + "tl-b", + "codegen", + "react-native", + "browser" + ], + "author": "TON Tech", + "license": "MIT", "devDependencies": { "@jest/globals": "^29.7.0", "@ton/toolchain": "github:the-ton-tech/toolchain#v1.4.0", diff --git a/main.ts b/src/cli.ts similarity index 96% rename from main.ts rename to src/cli.ts index 09052df..2b6dbc0 100755 --- a/main.ts +++ b/src/cli.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node import meow from 'meow'; -import { generateCode } from './src/node'; +import { generateCode } from './node'; const cli = meow( ` diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..670ec3a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,6 @@ +export * from './ast'; +export { getTLBCodeByAST, generateCodeByAST, generateCodeFromData } from './main'; +export { generateCode, getTLBCode, generateCodeWithGenerator } from './node'; +export { isBigInt, isBigIntExpr } from './generators/typescript/utils'; +export type { CodeGenerator } from './generators/generator'; +export { TypescriptGenerator } from './generators/typescript/generator'; diff --git a/src/main.ts b/src/main.ts index b58407f..051f003 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,13 +8,11 @@ import { CodeBuilder } from './generators/CodeBuilder'; import { CodeGenerator, CommonGenDeclaration } from './generators/generator'; import { TypescriptGenerator } from './generators/typescript/generator'; -export function getTLBCodeByAST(tree: Program, input: string) { +export function getTLBCodeByAST(tree: Program, input: string): TLBCode { let oldTlbCode: TLBCodeBuild = { types: new Map() }; let splittedInput = input.split('\n'); fillConstructors(tree.declarations, oldTlbCode, splittedInput); - let tlbCode: TLBCode = convertCodeToReadonly(oldTlbCode); - - return tlbCode; + return convertCodeToReadonly(oldTlbCode); } export function generateCodeByAST(tree: Program, input: string, getGenerator: (tlbCode: TLBCode) => CodeGenerator) { diff --git a/generate_tests.ts b/test/generate.ts similarity index 58% rename from generate_tests.ts rename to test/generate.ts index 1890e66..3653a2f 100644 --- a/generate_tests.ts +++ b/test/generate.ts @@ -1,11 +1,11 @@ import path from 'path'; -import { generateCode } from './src/node'; +import { generateCode } from '../src/node'; function genCodeForTest(name: string) { - const fixturesDir = path.resolve(__dirname, 'test'); + const fixturesDir = path.resolve(__dirname, 'tlb'); generateCode( - path.resolve(fixturesDir, 'tlb', name + '.tlb'), + path.resolve(fixturesDir, name + '.tlb'), 'test/generated_files/generated_' + name + '.ts', 'typescript', ); diff --git a/tsconfig.json b/tsconfig.json index 52c3fcb..fd3c923 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,5 +7,12 @@ "strict": true, /* Enable all strict type-checking options. */ "skipLibCheck": true, /* Skip type checking all .d.ts files. */ "outDir": "build", - } + "declaration": true, + "allowSyntheticDefaultImports": true, + "moduleResolution": "node", + "isolatedModules": false + }, + "include": [ + "src/**/*" + ] }