# JS Wrapper DevExp
## Proposed Changes
1. Introduce a new wrapper type named "script"
- This can be used for any scripting language that requires a runtime engine (interpreter). For example: python, javascript.
- The runtime engine would be bundled as a wasm wrapper.
## DevExp
1. Create a new project
`polywrap create script typescript name-of-project`
```
src/
index.ts
schema.graphql
polywrap.yaml
package.json
tsconfig.json
```
`polywrap.yaml`
```yaml=
project:
name: foo
type: script/javascript
source:
module: ./src/index.ts
schema: ./schema.graphql
engine: wrap://ens/wrappers.polywrap.eth:js-engine@1.0.0
```
2. Define your schema
```graphql!
#import { Module } into Namespace from "wrapper"
type Module {
foo(
arg: String!
): Boolean!
}
type Object {
prop: UInt32!
}
```
3. Run codegen
`polywrap codegen`
```
src/
wrap/
index.ts
```