Comparing version 0.26.11-next.0 to 0.26.11-next.1
@@ -7,1 +7,2 @@ import { remultStatic } from './src/remult-static.js'; | ||
export const actionInfo = remultStatic.actionInfo; | ||
export { flags } from './src/remult3/remult3.js'; |
@@ -166,7 +166,7 @@ import { remult as defaultRemult } from '../src/remult-proxy.js'; | ||
c.dataProvider = sql; | ||
let JobsInQueueEntity = (await import('../server/expressBridge.js')) | ||
let JobsInQueueEntity = (await import('../server/remult-api-server.js')) | ||
.JobsInQueueEntity; | ||
let e = c.repo(JobsInQueueEntity); | ||
await sql.ensureSchema([e.metadata]); | ||
return new (await import('../server/expressBridge.js')).EntityQueueStorage(c.repo(JobsInQueueEntity)); | ||
return new (await import('../server/remult-api-server.js')).EntityQueueStorage(c.repo(JobsInQueueEntity)); | ||
} | ||
@@ -173,0 +173,0 @@ export class PostgresSchemaWrapper { |
@@ -1,2 +0,2 @@ | ||
import { createRemultServerCore } from './server/expressBridge.js'; | ||
import { createRemultServerCore } from './server/remult-api-server.js'; | ||
export function remultFresh(options, response) { | ||
@@ -3,0 +3,0 @@ const server = createRemultServerCore(options, { |
@@ -1,4 +0,4 @@ | ||
export { createRemultServerCore, } from './expressBridge.js'; | ||
export { createRemultServerCore, } from './remult-api-server.js'; | ||
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js'; | ||
export { SseSubscriptionServer } from '../SseSubscriptionServer.js'; | ||
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js'; |
@@ -1,2 +0,2 @@ | ||
import { createRemultServerCore } from './expressBridge.js'; | ||
import { createRemultServerCore } from './remult-api-server.js'; | ||
import { initAsyncHooks } from './initAsyncHooks.js'; | ||
@@ -3,0 +3,0 @@ export { SseSubscriptionServer } from '../SseSubscriptionServer.js'; |
import { RestDataProviderHttpProviderUsingFetch } from './data-providers/rest-data-provider.js'; | ||
import { flags } from './remult3/remult3.js'; | ||
export function buildRestDataProvider(provider) { | ||
@@ -54,7 +55,7 @@ if (!provider) | ||
err.status == 500) && | ||
i++ < 50) { | ||
i++ < flags.error500RetryCount) { | ||
await new Promise((res, req) => { | ||
setTimeout(() => { | ||
res({}); | ||
}, 250); | ||
}, 500); | ||
}); | ||
@@ -61,0 +62,0 @@ continue; |
@@ -137,3 +137,3 @@ import { CompoundIdField } from '../CompoundIdField.js'; | ||
} | ||
throw new Error("couldn't find id to update: " + id); | ||
throw new Error(`ArrayEntityDataProvider: Couldn't find row with id "${id}" in entity "${this.entity.key}" to update`); | ||
} | ||
@@ -149,3 +149,3 @@ async delete(id) { | ||
} | ||
throw new Error("couldn't find id to delete: " + id); | ||
throw new Error(`ArrayEntityDataProvider: Couldn't find row with id "${id}" in entity "${this.entity.key}" to delete`); | ||
} | ||
@@ -152,0 +152,0 @@ async insert(data) { |
@@ -103,3 +103,3 @@ import { FilterConsumerBridgeToSqlRequest, dbNamesOf, isDbReadonly, } from '../filter/filter-consumer-bridge-to-sql-request.js'; | ||
} | ||
static async filterToRaw(repo, condition, sqlCommand, dbNames, wrapIdentifier = (x) => x) { | ||
static async filterToRaw(repo, condition, sqlCommand, dbNames, wrapIdentifier) { | ||
if (!sqlCommand) { | ||
@@ -106,0 +106,0 @@ sqlCommand = new myDummySQLCommand(); |
@@ -70,3 +70,3 @@ import { buildRestDataProvider } from '../buildRestDataProvider.js'; | ||
} | ||
closeIfNoListeners() { | ||
_actuallyClose() { | ||
if (this.client) | ||
@@ -80,2 +80,8 @@ if (this.queries.size === 0 && this.channels.size === 0) { | ||
} | ||
keepAliveMs = 1000; | ||
closeIfNoListeners() { | ||
setTimeout(() => { | ||
this._actuallyClose(); | ||
}, this.keepAliveMs); | ||
} | ||
subscribe(repo, options, listener) { | ||
@@ -167,3 +173,4 @@ let alive = true; | ||
for (const q of this.queries.values()) { | ||
ids.push(q.queryChannel); | ||
if (q.gotAnyResult) | ||
ids.push(q.queryChannel); | ||
} | ||
@@ -170,0 +177,0 @@ if (ids.length > 0) { |
import { buildRestDataProvider } from '../buildRestDataProvider.js'; | ||
import { remult } from '../remult-proxy.js'; | ||
import { remultStatic } from '../remult-static.js'; | ||
import { flags } from '../remult3/remult3.js'; | ||
import { streamUrl } from './SubscriptionChannel.js'; | ||
@@ -37,2 +38,3 @@ export class SseSubscriptionClient { | ||
createConnection(); | ||
let retryCount = 0; | ||
function createConnection() { | ||
@@ -51,5 +53,7 @@ if (source) | ||
source.close(); | ||
setTimeout(() => { | ||
createConnection(); | ||
}, 500); | ||
if (retryCount++ < flags.error500RetryCount) { | ||
setTimeout(() => { | ||
createConnection(); | ||
}, 500); | ||
} | ||
}; | ||
@@ -56,0 +60,0 @@ source.addEventListener('connectionId', async (e) => { |
@@ -13,2 +13,3 @@ import { v4 as uuid } from 'uuid'; | ||
} | ||
gotAnyResult = false; | ||
queryChannel; | ||
@@ -18,2 +19,3 @@ subscribeCode; | ||
async setAllItems(result) { | ||
this.gotAnyResult = true; | ||
const items = await getRepositoryInternals(this.repo)._fromJsonArray(result, this.query.options); | ||
@@ -20,0 +22,0 @@ this.forListeners((listener) => { |
@@ -1,14 +0,10 @@ | ||
export {}; | ||
export const flags = { | ||
error500RetryCount: 4, | ||
}; | ||
//y2 - soft-delete-discussion https://discord.com/channels/975754286384418847/1230386433093533698/1230386433093533698 | ||
//y1 - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue | ||
/*y1 - The retry on server error is too wide (error 500, basically any server error) 50 retries is annoying | ||
- vite doesn't say proxy error, so we can't listen to that to know that we are in dev | ||
- Our SSE has it's own separate retry every 500 ms that is also problematic | ||
- when using concurrently - on any server error - the terminal is flooded by the error messages | ||
//y1 - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity` | ||
//y2 - readonly key: keyof MembersOnly<entityType> & string | ||
//y1 - live query with count #436 | ||
//y1 - live query errort that appears in tests but I can't understand why - `open connection error ` | ||
//y1 TODO - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue | ||
//y1 TODO - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity` | ||
//y1 TODO - readonly key: keyof MembersOnly<entityType> & string | ||
//y1 - talk about insert / update / delete with relations | ||
@@ -33,4 +29,4 @@ /* | ||
//p1 - return error on connection error | ||
//p1 - reconsider key typing to be keyof & string | ||
//p1 - article on displayValue including it's definition for entities that is used in relations | ||
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth | ||
//p2 -fix remult admin not to load the html into memory until used | ||
@@ -40,3 +36,2 @@ //y2 - currently for string fields we default for 255 in knex (which is their default) why not just use text (varchar max) - and only use exact length when one is provided? | ||
//p2 - admin url1 - pocketbase use /_ for the admin //{allowed?:Allowed,url?:string} also checkout the admin* as it should probably be something else and didn't work in hono | ||
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth | ||
//y2 - fix validators cache | ||
@@ -91,3 +86,2 @@ //y2 - should we validate relations | ||
//p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial) | ||
//p2 - when subscribe is forbidden - the query still runs after the renew process | ||
//p2 - 'update tasks set where id = $1 | ||
@@ -94,0 +88,0 @@ //p2 - type metadata.key - to keyof entity - based on cwis input |
@@ -15,1 +15,2 @@ export { getRelationInfo, getRelationFieldInfo, RelationFieldInfo, RelationInfo, RelationFields, } from './src/remult3/relationInfoMember.js'; | ||
export { ClassType } from './classType.js'; | ||
export { flags } from './src/remult3/remult3.js'; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.actionInfo = exports.__updateEntityBasedOnWhere = exports.getEntitySettings = exports.getControllerRef = exports.controllerRefImpl = exports.decorateColumnSettings = exports.getRelationFieldInfo = exports.getRelationInfo = void 0; | ||
exports.flags = exports.actionInfo = exports.__updateEntityBasedOnWhere = exports.getEntitySettings = exports.getControllerRef = exports.controllerRefImpl = exports.decorateColumnSettings = exports.getRelationFieldInfo = exports.getRelationInfo = void 0; | ||
var remult_static_js_1 = require("./src/remult-static.js"); | ||
@@ -17,1 +17,3 @@ var relationInfoMember_js_1 = require("./src/remult3/relationInfoMember.js"); | ||
exports.actionInfo = remult_static_js_1.remultStatic.actionInfo; | ||
var remult3_js_1 = require("./src/remult3/remult3.js"); | ||
Object.defineProperty(exports, "flags", { enumerable: true, get: function () { return remult3_js_1.flags; } }); |
{ | ||
"name": "remult", | ||
"version": "0.26.11-next.0", | ||
"version": "0.26.11-next.1", | ||
"description": "A CRUD framework for full-stack TypeScript", | ||
@@ -5,0 +5,0 @@ "homepage": "https://remult.dev", |
@@ -48,3 +48,3 @@ import type { ClientBase, PoolConfig, QueryResult } from 'pg'; | ||
}): Promise<SqlDatabase>; | ||
export declare function preparePostgresQueueStorage(sql: SqlDatabase): Promise<import("../server/expressBridge.js").EntityQueueStorage>; | ||
export declare function preparePostgresQueueStorage(sql: SqlDatabase): Promise<import("../server/remult-api-server.js").EntityQueueStorage>; | ||
export declare class PostgresSchemaWrapper implements PostgresPool { | ||
@@ -51,0 +51,0 @@ private pool; |
@@ -251,3 +251,3 @@ "use strict"; | ||
c.dataProvider = sql; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/expressBridge.js')); })]; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/remult-api-server.js')); })]; | ||
case 1: | ||
@@ -260,3 +260,3 @@ JobsInQueueEntity = (_a.sent()) | ||
_a.sent(); | ||
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/expressBridge.js')); })]; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/remult-api-server.js')); })]; | ||
case 3: return [2 /*return*/, new (_a.sent()).EntityQueueStorage(c.repo(JobsInQueueEntity))]; | ||
@@ -263,0 +263,0 @@ } |
import * as express from 'express'; | ||
import type { RemultServer, RemultServerCore, RemultServerOptions } from './server/expressBridge.js'; | ||
import type { RemultServer, RemultServerCore, RemultServerOptions } from './server/remult-api-server.js'; | ||
export declare function remultExpress(options?: RemultServerOptions<express.Request> & { | ||
@@ -4,0 +4,0 @@ bodyParser?: boolean; |
import type { FastifyPluginCallback, FastifyRequest } from 'fastify'; | ||
import type { RemultServerCore, RemultServerOptions, RemultServer } from './server/expressBridge.js'; | ||
import type { RemultServerCore, RemultServerOptions, RemultServer } from './server/remult-api-server.js'; | ||
export declare function remultFastify(options: RemultServerOptions<FastifyRequest>): RemultFastifyServer; | ||
@@ -4,0 +4,0 @@ export type RemultFastifyServer = FastifyPluginCallback & RemultServerCore<FastifyRequest> & { |
@@ -1,2 +0,2 @@ | ||
import type { RemultServerCore, RemultServerOptions } from './server/expressBridge.js'; | ||
import type { RemultServerCore, RemultServerOptions } from './server/remult-api-server.js'; | ||
export declare function remultFresh(options: RemultServerOptions<FreshRequest>, response: FreshResponse): RemultFresh; | ||
@@ -3,0 +3,0 @@ export interface RemultFresh extends RemultServerCore<FreshRequest> { |
@@ -5,6 +5,6 @@ "use strict"; | ||
var tslib_1 = require("tslib"); | ||
var expressBridge_js_1 = require("./server/expressBridge.js"); | ||
var remult_api_server_js_1 = require("./server/remult-api-server.js"); | ||
function remultFresh(options, response) { | ||
var _this = this; | ||
var server = (0, expressBridge_js_1.createRemultServerCore)(options, { | ||
var server = (0, remult_api_server_js_1.createRemultServerCore)(options, { | ||
buildGenericRequestInfo: function (r) { return r; }, | ||
@@ -11,0 +11,0 @@ getRequestBody: function (req) { return req.json(); }, |
@@ -1,4 +0,4 @@ | ||
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer, } from './expressBridge.js'; | ||
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer, } from './remult-api-server.js'; | ||
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js'; | ||
export { SseSubscriptionServer } from '../SseSubscriptionServer.js'; | ||
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js'; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.DataProviderLiveQueryStorage = exports.SseSubscriptionServer = exports.JsonFileDataProvider = exports.JsonEntityFileStorage = exports.createRemultServerCore = void 0; | ||
var expressBridge_js_1 = require("./expressBridge.js"); | ||
Object.defineProperty(exports, "createRemultServerCore", { enumerable: true, get: function () { return expressBridge_js_1.createRemultServerCore; } }); | ||
var remult_api_server_js_1 = require("./remult-api-server.js"); | ||
Object.defineProperty(exports, "createRemultServerCore", { enumerable: true, get: function () { return remult_api_server_js_1.createRemultServerCore; } }); | ||
var JsonEntityFileStorage_js_1 = require("./JsonEntityFileStorage.js"); | ||
@@ -7,0 +7,0 @@ Object.defineProperty(exports, "JsonEntityFileStorage", { enumerable: true, get: function () { return JsonEntityFileStorage_js_1.JsonEntityFileStorage; } }); |
@@ -1,6 +0,6 @@ | ||
import type { RemultServer, RemultServerOptions, ServerCoreOptions } from './expressBridge.js'; | ||
import type { RemultServer, RemultServerOptions, ServerCoreOptions } from './remult-api-server.js'; | ||
export { SseSubscriptionServer } from '../SseSubscriptionServer.js'; | ||
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js'; | ||
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js'; | ||
export { GenericRequestHandler, GenericRequestInfo, GenericResponse, GenericRouter, InitRequestOptions, QueueStorage, RemultServer, RemultServerCore, RemultServerOptions, SpecificRoute, queuedJobInfo, } from './expressBridge.js'; | ||
export { GenericRequestHandler, GenericRequestInfo, GenericResponse, GenericRouter, InitRequestOptions, QueueStorage, RemultServer, RemultServerCore, RemultServerOptions, SpecificRoute, queuedJobInfo, } from './remult-api-server.js'; | ||
export declare function createRemultServer<RequestType>(options: RemultServerOptions<RequestType>, serverCoreOptions?: ServerCoreOptions<RequestType>): RemultServer<RequestType>; |
@@ -5,3 +5,3 @@ "use strict"; | ||
var tslib_1 = require("tslib"); | ||
var expressBridge_js_1 = require("./expressBridge.js"); | ||
var remult_api_server_js_1 = require("./remult-api-server.js"); | ||
var initAsyncHooks_js_1 = require("./initAsyncHooks.js"); | ||
@@ -18,3 +18,3 @@ var SseSubscriptionServer_js_1 = require("../SseSubscriptionServer.js"); | ||
(0, initAsyncHooks_js_1.initAsyncHooks)(); | ||
return (0, expressBridge_js_1.createRemultServerCore)(options, serverCoreOptions || { | ||
return (0, remult_api_server_js_1.createRemultServerCore)(options, serverCoreOptions || { | ||
buildGenericRequestInfo: function (req) { return req; }, | ||
@@ -21,0 +21,0 @@ getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { |
@@ -6,2 +6,3 @@ "use strict"; | ||
var rest_data_provider_js_1 = require("./data-providers/rest-data-provider.js"); | ||
var remult3_js_1 = require("./remult3/remult3.js"); | ||
function buildRestDataProvider(provider) { | ||
@@ -89,7 +90,7 @@ if (!provider) | ||
err_1.status == 500) && | ||
i++ < 50)) return [3 /*break*/, 6]; | ||
i++ < remult3_js_1.flags.error500RetryCount)) return [3 /*break*/, 6]; | ||
return [4 /*yield*/, new Promise(function (res, req) { | ||
setTimeout(function () { | ||
res({}); | ||
}, 250); | ||
}, 500); | ||
})]; | ||
@@ -96,0 +97,0 @@ case 5: |
@@ -232,3 +232,3 @@ "use strict"; | ||
} | ||
throw new Error("couldn't find id to update: " + id); | ||
throw new Error("ArrayEntityDataProvider: Couldn't find row with id \"".concat(id, "\" in entity \"").concat(this.entity.key, "\" to update")); | ||
} | ||
@@ -253,3 +253,3 @@ }); | ||
} | ||
throw new Error("couldn't find id to delete: " + id); | ||
throw new Error("ArrayEntityDataProvider: Couldn't find row with id \"".concat(id, "\" in entity \"").concat(this.entity.key, "\" to delete")); | ||
} | ||
@@ -256,0 +256,0 @@ }); |
@@ -170,3 +170,2 @@ "use strict"; | ||
SqlDatabase.filterToRaw = function (repo, condition, sqlCommand, dbNames, wrapIdentifier) { | ||
if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; } | ||
return tslib_1.__awaiter(this, void 0, void 0, function () { | ||
@@ -173,0 +172,0 @@ var r, b, _a, _b, _c; |
@@ -17,2 +17,3 @@ "use strict"; | ||
this.channels = new Map(); | ||
this.keepAliveMs = 1000; | ||
} | ||
@@ -91,3 +92,3 @@ LiveQueryClient.prototype.wrapMessageHandling = function (handleMessage) { | ||
}; | ||
LiveQueryClient.prototype.closeIfNoListeners = function () { | ||
LiveQueryClient.prototype._actuallyClose = function () { | ||
if (this.client) | ||
@@ -101,2 +102,8 @@ if (this.queries.size === 0 && this.channels.size === 0) { | ||
}; | ||
LiveQueryClient.prototype.closeIfNoListeners = function () { | ||
var _this = this; | ||
setTimeout(function () { | ||
_this._actuallyClose(); | ||
}, this.keepAliveMs); | ||
}; | ||
LiveQueryClient.prototype.subscribe = function (repo, options, listener) { | ||
@@ -195,3 +202,4 @@ var _this = this; | ||
q = _b.value; | ||
ids.push(q.queryChannel); | ||
if (q.gotAnyResult) | ||
ids.push(q.queryChannel); | ||
} | ||
@@ -198,0 +206,0 @@ } |
@@ -8,2 +8,3 @@ "use strict"; | ||
var remult_static_js_1 = require("../remult-static.js"); | ||
var remult3_js_1 = require("../remult3/remult3.js"); | ||
var SubscriptionChannel_js_1 = require("./SubscriptionChannel.js"); | ||
@@ -58,2 +59,3 @@ var SseSubscriptionClient = /** @class */ (function () { | ||
createConnection(); | ||
var retryCount = 0; | ||
function createConnection() { | ||
@@ -73,5 +75,7 @@ var _this = this; | ||
source.close(); | ||
setTimeout(function () { | ||
createConnection(); | ||
}, 500); | ||
if (retryCount++ < remult3_js_1.flags.error500RetryCount) { | ||
setTimeout(function () { | ||
createConnection(); | ||
}, 500); | ||
} | ||
}; | ||
@@ -78,0 +82,0 @@ source.addEventListener('connectionId', function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () { |
@@ -15,2 +15,3 @@ "use strict"; | ||
this.query = query; | ||
this.gotAnyResult = false; | ||
this.unsubscribe = function () { }; | ||
@@ -32,3 +33,5 @@ this.defaultQueryState = []; | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(this.repo)._fromJsonArray(result, this.query.options)]; | ||
case 0: | ||
this.gotAnyResult = true; | ||
return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(this.repo)._fromJsonArray(result, this.query.options)]; | ||
case 1: | ||
@@ -35,0 +38,0 @@ items = _a.sent(); |
@@ -679,1 +679,4 @@ import type { ErrorInfo, FieldOptions } from '../../index.js'; | ||
export type ClassFieldDecorator<entityType, valueType> = (target: any, context: string | ClassFieldDecoratorContextStub<entityType, valueType | undefined>, c?: any) => void; | ||
export declare const flags: { | ||
error500RetryCount: number; | ||
}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.flags = void 0; | ||
exports.flags = { | ||
error500RetryCount: 4, | ||
}; | ||
//y2 - soft-delete-discussion https://discord.com/channels/975754286384418847/1230386433093533698/1230386433093533698 | ||
//y1 - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue | ||
/*y1 - The retry on server error is too wide (error 500, basically any server error) 50 retries is annoying | ||
- vite doesn't say proxy error, so we can't listen to that to know that we are in dev | ||
- Our SSE has it's own separate retry every 500 ms that is also problematic | ||
- when using concurrently - on any server error - the terminal is flooded by the error messages | ||
//y1 - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity` | ||
//y2 - readonly key: keyof MembersOnly<entityType> & string | ||
//y1 - live query with count #436 | ||
//y1 - live query errort that appears in tests but I can't understand why - `open connection error ` | ||
//y1 TODO - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue | ||
//y1 TODO - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity` | ||
//y1 TODO - readonly key: keyof MembersOnly<entityType> & string | ||
//y1 - talk about insert / update / delete with relations | ||
@@ -34,4 +32,4 @@ /* | ||
//p1 - return error on connection error | ||
//p1 - reconsider key typing to be keyof & string | ||
//p1 - article on displayValue including it's definition for entities that is used in relations | ||
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth | ||
//p2 -fix remult admin not to load the html into memory until used | ||
@@ -41,3 +39,2 @@ //y2 - currently for string fields we default for 255 in knex (which is their default) why not just use text (varchar max) - and only use exact length when one is provided? | ||
//p2 - admin url1 - pocketbase use /_ for the admin //{allowed?:Allowed,url?:string} also checkout the admin* as it should probably be something else and didn't work in hono | ||
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth | ||
//y2 - fix validators cache | ||
@@ -92,3 +89,2 @@ //y2 - should we validate relations | ||
//p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial) | ||
//p2 - when subscribe is forbidden - the query still runs after the renew process | ||
//p2 - 'update tasks set where id = $1 | ||
@@ -95,0 +91,0 @@ //p2 - type metadata.key - to keyof entity - based on cwis input |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5058058
51926