๐Ÿ“ฆ TomDo1234 / svelte-kit-cms

svelte-kit-cms

โ˜… 1 stars โ‘‚ 0 forks ๐Ÿ‘ 1 watching โš–๏ธ MIT License
๐Ÿ“ฅ Clone https://github.com/TomDo1234/svelte-kit-cms.git
HTTPS git clone https://github.com/TomDo1234/svelte-kit-cms.git
SSH git clone git@github.com:TomDo1234/svelte-kit-cms.git
CLI gh repo clone TomDo1234/svelte-kit-cms
TomDo1234 TomDo1234 Merge pull request #1 from TomDo1234/dependabot/npm_and_yarn/vite-4.3.9 57fe2cc 2 years ago ๐Ÿ“ History
๐Ÿ“‚ main View all commits โ†’
๐Ÿ“ prisma
๐Ÿ“ src
๐Ÿ“ static
๐Ÿ“ tests
๐Ÿ“„ .eslintignore
๐Ÿ“„ .eslintrc.cjs
๐Ÿ“„ .gitignore
๐Ÿ“„ .npmignore
๐Ÿ“„ .npmrc
๐Ÿ“„ .prettierignore
๐Ÿ“„ .prettierrc
๐Ÿ“„ docker-compose.yml
๐Ÿ“„ license.txt
๐Ÿ“„ package.json
๐Ÿ“„ postcss.config.js
๐Ÿ“„ README.md
๐Ÿ“„ svelte.config.js
๐Ÿ“„ tailwind.config.js
๐Ÿ“„ tsconfig.json
๐Ÿ“„ vite.config.ts
๐Ÿ“„ yarn.lock
๐Ÿ“„ README.md

svelte-kit-cms

This is a CMS I am working on for sveltekit, simply define a json config and the prisma code will be automatically generated for you + endpoints.

Creating the Config

create a siriusconfig.ts file in src/sirius of your sveltekit project, if you dont have the folder create it.

the types are exported (SiriusConfig type) from the package so make sure you export it to get type hinting and the structure

Example Config

import post from "./models/post";
import user from "./models/user";
import copy from './models/copy';
import type { SiriusConfig } from "@tomdo1234/svelte-kit-cms";

const siriusconfig: SiriusConfig = {
    provider: "postgresql",
    url: "postgresql://postgres:mysecretpassword@localhost:5432/mydatabase",
    models: [
      user,
      post,
      copy,
    ],
}

export default siriusconfig;

provider: string is the db provider used for prisma url: url string models: is an array of models

Example Model

import { Model } from "@tomdo1234/svelte-kit-cms";

const user: Model = {
    name: 'User',
    fields: [
      {
        name: 'id',
        type: 'Int',
        id: true
      },
      {
        name: 'name',
        type: 'String',
      },
      {
        name: 'email',
        type: 'String',
        unique: true
      },
    ],
  };
  
  export default user;

each model has a name: property (name of model in prisma) fields is an array of the Field type which has a name of the column, its type and that is about it at the moment besides other special properties like id, unique and createdAt and updatedAt

Generating the Code and Routes

after making your siriusconfig.ts, run

npx siriusgenerate

and the prisma schema file + endpoitns and routes for your sveltekit app will be generated