@element-ts/silicon

A package to send and receive data using promises.

Usage no npm install needed!

<script type="module">
  import elementTsSilicon from 'https://cdn.skypack.dev/@element-ts/silicon';
</script>

README

silicon

silicon is a MongoDB driver. It wraps the official driver provided by MongoDB found here on NPM. silicon simplifies many processes by providing a type-safe object-oriented wrapper of the MongoDB driver. Also included in silicon is a powerful type-safe query driver.

Pages

View the wiki for more information.

Example

Create an interface for what types your class contains.

interface UserProps { name: string; age: number; }

Create a class by extending SiObjectOld<T extends object> and use your interface.

class User extends SiObjectOld<UserProps> {

    public constructor() { super("table-name"); }
    
}

Populate the props object on a new instance of your class by using the props property on your class. It will contain all the saved properties for your object.

const user: User = new User();

user.props.name = "Elijah";
user.props.age = 20;

Communicate with the database from your object by calling methods it contains.

await user.create();
await user.update();
await user.update("name");
await user.fetch();
await user.delete();

see more examples...

Features

Prototyping

Like the example above, you can very easily create an object and use it without having to directly talk to a database. To view more information on how you can do prototyping, view the object page.

Queries

You can make type-safe queries using the SiQuery class. Do helpful things like count(), find(), exists() and much more. View the query page for more information.

Type-Safety

Everything is type-safe when you program in TypeScript. Your class properties, and even queries are all using type checking. So you cannot query for a key that does not exist, try and get a value for an invalid property name, and much more.

About

Language

All of silicon is written in TypeScript. If you do not know how to use TypeScript don't worry. It is completely compatible with JavaScript.

Author/Maintainer

My name is Elijah Cobb. I am a computer science student at Michigan Technological University.