@revojs/storage 0.2.26 → 0.2.28

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.
@@ -1,5 +1,4 @@
1
- import { STORAGE_CONTEXT } from "../index.js";
2
- import { getContext } from "revojs";
1
+ import { useStorageContext } from "../index.js";
3
2
  import { defineCommand } from "revojs/module";
4
3
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
5
4
  import { join, resolve } from "path";
@@ -15,7 +14,7 @@ var generate_default = defineCommand({
15
14
  async run(scope, context) {
16
15
  const databases = new Array();
17
16
  const names = /* @__PURE__ */ new Set();
18
- for (const files of Object.values(getContext(scope, STORAGE_CONTEXT))) for (const [name, database] of Object.entries(files)) {
17
+ for (const files of Object.values(useStorageContext(scope))) for (const [name, database] of Object.entries(files)) {
19
18
  if (names.has(name)) throw new Error("Migration database names must be unique across storage scopes.");
20
19
  names.add(name);
21
20
  databases.push({
package/dist/index.d.ts CHANGED
@@ -374,6 +374,7 @@ export declare function mergeTable<TTable extends Table, TColumns extends Record
374
374
  };
375
375
  export declare function useReferenceStorage<TSchema extends Record<string, Table>>(scope: Scope, references: TSchema): Database<TSchema>;
376
376
  export declare function useStorageProvider<TProvider>(scope: Scope, providers: ReadonlyArray<TProvider>, getReferences: (provider: TProvider) => Record<string, Table>): TProvider;
377
+ export declare function useStorageContext(scope: Scope): Record<string, Record<string, Database<Record<string, Table<string, Record<string, Column<unknown>>>>>>>;
377
378
  export declare function useStorage<TSource extends Source<Resolvable<Awaitable<Database>>> = typeof import("#storage").default, TScope extends SourceScope<TSource> = SourceScope<TSource>>(scope: Scope, scopeName: TScope): { [TKey in SourceValue<TSource, TScope>]: Awaited<ReturnType<Awaited<ReturnType<TSource[TScope][TKey]>>>>; };
378
379
  export declare const STORAGE_CONTEXT: import("revojs").Descriptor<Record<string, Record<string, Database<Record<string, Table<string, Record<string, Column<unknown>>>>>>>>;
379
380
  export {};
package/dist/index.js CHANGED
@@ -901,7 +901,7 @@ function useReferenceStorage(scope, references) {
901
901
  const tables = Object.values(references);
902
902
  if (tables.length === 0) throw new Error("Expected at least one table reference.");
903
903
  const databases = new Array();
904
- for (const files of Object.values(getContext(scope, STORAGE_CONTEXT))) for (const database of Object.values(files)) {
904
+ for (const files of Object.values(useStorageContext(scope))) for (const database of Object.values(files)) {
905
905
  let matches = true;
906
906
  for (const reference of tables) {
907
907
  let found = false;
@@ -921,7 +921,8 @@ function useReferenceStorage(scope, references) {
921
921
  return databases[0];
922
922
  }
923
923
  function useStorageProvider(scope, providers, getReferences) {
924
- const databases = Object.values(getContext(scope, STORAGE_CONTEXT)).flatMap((files) => Object.values(files));
924
+ const databases = new Array();
925
+ for (const files of Object.values(useStorageContext(scope))) for (const database of Object.values(files)) databases.push(database);
925
926
  const matches = new Array();
926
927
  for (const provider of providers) {
927
928
  const tables = Object.values(getReferences(provider));
@@ -932,8 +933,11 @@ function useStorageProvider(scope, providers, getReferences) {
932
933
  useReferenceStorage(scope, getReferences(matches[0]));
933
934
  return matches[0];
934
935
  }
936
+ function useStorageContext(scope) {
937
+ return getContext(scope, STORAGE_CONTEXT);
938
+ }
935
939
  function useStorage(scope, scopeName) {
936
- const storages = getContext(scope, STORAGE_CONTEXT);
940
+ const storages = useStorageContext(scope);
937
941
  const storage = storages[scopeName] ?? {};
938
942
  storages[scopeName] = storage;
939
943
  setContext(scope, STORAGE_CONTEXT, storages);
@@ -941,4 +945,4 @@ function useStorage(scope, scopeName) {
941
945
  }
942
946
  var STORAGE_CONTEXT = defineContext("STORAGE_CONTEXT");
943
947
  //#endregion
944
- export { CheckConstraint, Column, Database, DeleteStatement, ForeignKeyConstraint, Index, InsertStatement, Migration, Parameter, PreparedQuery, PrimaryKeyConstraint, STORAGE_CONTEXT, SelectStatement, Session, Sql, Statement, Table, UniqueConstraint, UniqueIndex, UpdateStatement, and, asc, between, combine, contains, desc, equals, exists, greater, greaterEquals, like, lower, lowerEquals, mergeTable, not, nullish, or, sql, toParameter, useReferenceStorage, useStorage, useStorageProvider };
948
+ export { CheckConstraint, Column, Database, DeleteStatement, ForeignKeyConstraint, Index, InsertStatement, Migration, Parameter, PreparedQuery, PrimaryKeyConstraint, STORAGE_CONTEXT, SelectStatement, Session, Sql, Statement, Table, UniqueConstraint, UniqueIndex, UpdateStatement, and, asc, between, combine, contains, desc, equals, exists, greater, greaterEquals, like, lower, lowerEquals, mergeTable, not, nullish, or, sql, toParameter, useReferenceStorage, useStorage, useStorageContext, useStorageProvider };
@@ -0,0 +1,17 @@
1
+ import { STORAGE_CONTEXT, useStorageContext } from "../index.js";
2
+ import { definePlugin, setContext } from "revojs";
3
+ //#region src/plugins/index.server.ts
4
+ var index_server_default = definePlugin({ async setup(scope) {
5
+ const databases = useStorageContext(scope);
6
+ for (const [scopeName, files] of Object.entries((await import("#storage")).default)) {
7
+ const entries = databases[scopeName] ?? {};
8
+ for (const [name, resolve] of Object.entries(files)) {
9
+ if (entries[name]) continue;
10
+ entries[name] = await (await resolve())(scope);
11
+ }
12
+ databases[scopeName] = entries;
13
+ }
14
+ setContext(scope, STORAGE_CONTEXT, databases);
15
+ } });
16
+ //#endregion
17
+ export { index_server_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revojs/storage",
3
- "version": "0.2.26",
3
+ "version": "0.2.28",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,20 +0,0 @@
1
- import { STORAGE_CONTEXT } from "../index.js";
2
- import { definePlugin, getContext, setContext } from "revojs";
3
- import { isServer } from "#variables";
4
- //#region src/plugins/index.ts
5
- var plugins_default = definePlugin({ async setup(scope) {
6
- if (isServer) {
7
- const databases = getContext(scope, STORAGE_CONTEXT);
8
- for (const [scopeName, files] of Object.entries((await import("#storage")).default)) {
9
- const entries = databases[scopeName] ?? {};
10
- for (const [name, resolve] of Object.entries(files)) {
11
- if (entries[name]) continue;
12
- entries[name] = await (await resolve())(scope);
13
- }
14
- databases[scopeName] = entries;
15
- }
16
- setContext(scope, STORAGE_CONTEXT, databases);
17
- }
18
- } });
19
- //#endregion
20
- export { plugins_default as default };
File without changes