rimecms 0.28.2 → 0.28.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,7 @@ const write = (schema) => {
19
19
  fs.writeFileSync(outputFile, schema);
20
20
  }
21
21
  catch (err) {
22
- logger.error('Error writing schema', err.message);
22
+ throw new Error(`Error writing schema: ${err.message}`);
23
23
  }
24
24
  const pm = getPackageManager();
25
25
  const commandMap = {
@@ -33,11 +33,20 @@ const write = (schema) => {
33
33
  logger.info('[✓] Schema: generated at src/lib/server/schema.ts');
34
34
  console.log('============================================================');
35
35
  console.log(`\n ⚡︎ ${command} drizzle-kit generate \n`);
36
- spawnSync(command, ['drizzle-kit', 'generate'], { stdio: 'inherit' });
36
+ const generateResult = spawnSync(command, ['drizzle-kit', 'generate'], { stdio: 'inherit' });
37
+ if (generateResult.error || generateResult.status !== 0) {
38
+ throw new Error('drizzle-kit generate failed');
39
+ }
37
40
  console.log('\n============================================================');
38
41
  console.log(`\n ⚡︎ ${command} drizzle-kit migrate \n`);
39
- spawnSync(command, ['drizzle-kit', 'migrate'], { stdio: 'inherit' });
42
+ const migrateResult = spawnSync(command, ['drizzle-kit', 'migrate'], { stdio: 'inherit' });
43
+ if (migrateResult.error || migrateResult.status !== 0) {
44
+ throw new Error('drizzle-kit migrate failed');
45
+ }
40
46
  console.log('\n============================================================');
47
+ // Only mark the schema as in sync once generate + migrate both actually
48
+ // succeeded — otherwise a future run with an unchanged schema string would
49
+ // skip re-running drizzle-kit and the DB would stay silently out of sync.
41
50
  cache.set('schema', schema);
42
51
  };
43
52
  export default write;
@@ -29,27 +29,27 @@ export async function createRime(config) {
29
29
  // Generate schema, types, routes
30
30
  if (dev) {
31
31
  // A `rime generate` CLI run may be regenerating the same .rime cache
32
- // concurrently (e.g. a running dev server picking up its file writes).
33
- // Defer to it instead of racing on the shared config memo.
34
- if (process.env.RIME_CLI !== 'true') {
35
- let waited = 0;
36
- while (devCache.get('.cli') && waited < 30_000) {
37
- await new Promise((resolve) => setTimeout(resolve, 200));
38
- waited += 200;
39
- }
40
- }
41
- const changed = writeMemo(config);
42
- const valid = validate(config);
43
- if (!valid) {
44
- throw new RimeError('Config not valid');
45
- }
46
- if (changed) {
47
- generateRoutes(config);
48
- await generateSchema(config);
49
- await generateTypes(config);
32
+ // concurrently (e.g. a running dev server reloading off the CLI's file
33
+ // writes). Skip our own generation this cycle instead of racing it or
34
+ // blocking this request on it — the next natural reload will pick up
35
+ // what the CLI produced.
36
+ if (process.env.RIME_CLI !== 'true' && devCache.get('.cli')) {
37
+ logger.debug('Skipping generation, `rime generate` is already running');
50
38
  }
51
39
  else {
52
- logger.debug('Nothing to generate');
40
+ const changed = writeMemo(config);
41
+ const valid = validate(config);
42
+ if (!valid) {
43
+ throw new RimeError('Config not valid');
44
+ }
45
+ if (changed) {
46
+ generateRoutes(config);
47
+ await generateSchema(config);
48
+ await generateTypes(config);
49
+ }
50
+ else {
51
+ logger.debug('Nothing to generate');
52
+ }
53
53
  }
54
54
  }
55
55
  // Create adapter, consume the generated schema
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rimecms",
3
- "version": "0.28.2",
3
+ "version": "0.28.4",
4
4
  "homepage": "https://github.com/bienbiendev/rime",
5
5
  "scripts": {
6
6
  "dev": "vite dev",