feat: add build script (#13)

This commit adds pnpm scripts for compiling and running the
  typocomath package, and a convenience script `pnpm go` that does
  both in succession. It also configure pnpm to use a shell
  emulator so that it should work on Windows as well. Finally,
  it changes the directory for object files from obj to build.
  Resolves #9.

Reviewed-on: #13
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
This commit is contained in:
Glen Whitney 2023-08-23 03:20:10 +00:00 committed by Glen Whitney
parent f06943ba1a
commit 76e144bc2a
6 changed files with 13 additions and 8 deletions

2
.gitignore vendored
View File

@ -2,7 +2,7 @@
*~ *~
# Typescript # Typescript
# emitted code # emitted code
obj build
# ---> Node # ---> Node
# Logs # Logs

1
.npmrc Normal file
View File

@ -0,0 +1 @@
shell-emulator=true

View File

@ -2,10 +2,9 @@
A final (?) prototype for a refactor of mathjs, culminating the picomath, pocomath, typomath series. Provides an extensible core with "fuzzy" types for its operations, that can at any time generate exact .d.ts file for its current state. A final (?) prototype for a refactor of mathjs, culminating the picomath, pocomath, typomath series. Provides an extensible core with "fuzzy" types for its operations, that can at any time generate exact .d.ts file for its current state.
To build and run the prototype, run:
``` Convenience scripts:
npx tsc
echo '{"type": "module"}' > obj/package.json * `pnpm build` -- compile the package
node obj * `pnpm exec` -- run the compiled code produced by `pnpm build`
``` * `pnpm go` -- both of the above in sequence.

1
etc/package.json Normal file
View File

@ -0,0 +1 @@
{"type": "module"}

View File

@ -5,7 +5,11 @@
main: 'index.ts', main: 'index.ts',
scripts: { scripts: {
test: 'echo "Error: no test specified" && exit 1', test: 'echo "Error: no test specified" && exit 1',
build: 'tsc && cp etc/package.json build',
exec: 'node build',
go: 'pnpm --sequential "/build|exec/"',
}, },
packageManager: 'pnpm',
keywords: [ keywords: [
'math', 'math',
'algebra', 'algebra',

View File

@ -2,7 +2,7 @@
"compilerOptions": { "compilerOptions": {
"target": "ES2022", "target": "ES2022",
"rootDir": "./src", "rootDir": "./src",
"outDir": "./obj", "outDir": "./build",
"moduleResolution": "nodenext" "moduleResolution": "nodenext"
} }
} }