update to v0.23.1
+ package version bump to 0.22.0 + support for PB v0.23.1 collections
This commit is contained in:
parent
ce03fd9991
commit
df56216609
7
csv.ts
7
csv.ts
@ -64,7 +64,7 @@ async function importCsv() {
|
|||||||
const _authResponse = await pb.admins.authWithPassword(adminName, adminPass);
|
const _authResponse = await pb.admins.authWithPassword(adminName, adminPass);
|
||||||
|
|
||||||
// collection schema object
|
// collection schema object
|
||||||
const schema = createSchema(data, options.id, "csv");
|
const fields = createSchema(data, options.id, "csv");
|
||||||
|
|
||||||
const creationDate = new Date().toISOString();
|
const creationDate = new Date().toISOString();
|
||||||
|
|
||||||
@ -73,14 +73,13 @@ async function importCsv() {
|
|||||||
name: collectName,
|
name: collectName,
|
||||||
type: "base",
|
type: "base",
|
||||||
system: false,
|
system: false,
|
||||||
schema,
|
fields,
|
||||||
indexes: [],
|
indexes: [],
|
||||||
listRule: null,
|
listRule: null,
|
||||||
viewRule: null,
|
viewRule: null,
|
||||||
createRule: null,
|
createRule: null,
|
||||||
updateRule: null,
|
updateRule: null,
|
||||||
deleteRule: null,
|
deleteRule: null,
|
||||||
options: {},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// show the submitted collection
|
// show the submitted collection
|
||||||
@ -96,7 +95,7 @@ async function importCsv() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// rows to be sent via PocketBase API
|
// rows to be sent via PocketBase API
|
||||||
const rows = parseData(data, schema);
|
const rows = parseData(data, fields);
|
||||||
|
|
||||||
console.log(`[Import] Importing ${rows.length} rows...`);
|
console.log(`[Import] Importing ${rows.length} rows...`);
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
"dev": "deno run --watch main.ts"
|
"dev": "deno run --watch main.ts"
|
||||||
},
|
},
|
||||||
"imports": {
|
"imports": {
|
||||||
"pocketbase": "npm:pocketbase@^0.21.5"
|
"pocketbase": "npm:pocketbase@^0.22.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
8
deno.lock
generated
8
deno.lock
generated
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"version": "4",
|
"version": "4",
|
||||||
"specifiers": {
|
"specifiers": {
|
||||||
"npm:pocketbase@~0.21.5": "0.21.5"
|
"npm:pocketbase@0.22": "0.22.0"
|
||||||
},
|
},
|
||||||
"npm": {
|
"npm": {
|
||||||
"pocketbase@0.21.5": {
|
"pocketbase@0.22.0": {
|
||||||
"integrity": "sha512-bnI/uinnQps+ElSlzxkc4yvwuSFfKcoszDtXH/4QT2FhGq2mJVUvDlxn+rjRXVntUjPfmMG5LEPZ1eGqV6ssog=="
|
"integrity": "sha512-jhP0Dcf2Z/4q+SNxqpgV+SJWLZeU0rOJA4TKMxwU7X2olFSBr0jhLu+G6Pc+RIQ40IYrC3WMGwbASPrK6rxQOw=="
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"remote": {
|
"remote": {
|
||||||
@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
"workspace": {
|
"workspace": {
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
"npm:pocketbase@~0.21.5"
|
"npm:pocketbase@0.22"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
json.ts
5
json.ts
@ -48,21 +48,20 @@ async function importJson() {
|
|||||||
const _authResponse = await pb.admins.authWithPassword(adminName, adminPass);
|
const _authResponse = await pb.admins.authWithPassword(adminName, adminPass);
|
||||||
|
|
||||||
// collection schema object
|
// collection schema object
|
||||||
const schema = createSchema(data, options.id, "json");
|
const fields = createSchema(data, options.id, "json");
|
||||||
|
|
||||||
// the new collection
|
// the new collection
|
||||||
const collection: Collection = {
|
const collection: Collection = {
|
||||||
name: collectName,
|
name: collectName,
|
||||||
type: "base",
|
type: "base",
|
||||||
system: false,
|
system: false,
|
||||||
schema,
|
fields,
|
||||||
indexes: [],
|
indexes: [],
|
||||||
listRule: null,
|
listRule: null,
|
||||||
viewRule: null,
|
viewRule: null,
|
||||||
createRule: null,
|
createRule: null,
|
||||||
updateRule: null,
|
updateRule: null,
|
||||||
deleteRule: null,
|
deleteRule: null,
|
||||||
options: {},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// show the submitted collection
|
// show the submitted collection
|
||||||
|
@ -34,32 +34,69 @@ export const POCKETBASE_SYSFIELD = [
|
|||||||
"updated",
|
"updated",
|
||||||
];
|
];
|
||||||
|
|
||||||
export type Options = {
|
export interface SchemaField {
|
||||||
[key: string]: any;
|
hidden: boolean;
|
||||||
};
|
|
||||||
|
|
||||||
export type SchemaField = {
|
|
||||||
id?: string;
|
id?: string;
|
||||||
name: string;
|
name: string;
|
||||||
type: PocketbaseType;
|
presentable: boolean;
|
||||||
required: boolean;
|
required: boolean;
|
||||||
system: boolean;
|
system: boolean;
|
||||||
presentable: boolean;
|
type: PocketbaseType;
|
||||||
unique: boolean;
|
|
||||||
options: Options;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Collection = {
|
export interface BoolField extends SchemaField {
|
||||||
|
type: "bool";
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface NumberField extends SchemaField {
|
||||||
|
max?: number;
|
||||||
|
min?: number;
|
||||||
|
onlyInt: boolean;
|
||||||
|
type: "number";
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface TextField extends SchemaField {
|
||||||
|
autogeneratePattern: string;
|
||||||
|
max?: number;
|
||||||
|
min?: number;
|
||||||
|
pattern: string;
|
||||||
|
primaryKey: boolean;
|
||||||
|
type: "text";
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface EmailField extends SchemaField {
|
||||||
|
exceptDomains?: string[];
|
||||||
|
onlyDomains?: string[];
|
||||||
|
type: "email";
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface DateField extends SchemaField {
|
||||||
|
max: string;
|
||||||
|
min: string;
|
||||||
|
type: "date";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JsonField extends SchemaField {
|
||||||
|
maxSize: number;
|
||||||
|
type: "json";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UrlField extends SchemaField {
|
||||||
|
exceptDomains?: string[];
|
||||||
|
onlyDomains?: string[];
|
||||||
|
type: "url";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Collection {
|
||||||
id?: string;
|
id?: string;
|
||||||
name: string;
|
name: string;
|
||||||
type: string;
|
type: string;
|
||||||
system: boolean;
|
system: boolean;
|
||||||
schema: SchemaField[];
|
fields: SchemaField[];
|
||||||
indexes: string[];
|
indexes: string[];
|
||||||
listRule: string | null;
|
listRule: string | null;
|
||||||
viewRule: string | null;
|
viewRule: string | null;
|
||||||
createRule: string | null;
|
createRule: string | null;
|
||||||
updateRule: string | null;
|
updateRule: string | null;
|
||||||
deleteRule: string | null;
|
deleteRule: string | null;
|
||||||
options: Options;
|
|
||||||
};
|
};
|
||||||
|
@ -4,7 +4,14 @@ import {
|
|||||||
POCKETBASE_TYPE,
|
POCKETBASE_TYPE,
|
||||||
PocketbaseRowSchema,
|
PocketbaseRowSchema,
|
||||||
PocketbaseType,
|
PocketbaseType,
|
||||||
SchemaField
|
SchemaField,
|
||||||
|
BoolField,
|
||||||
|
NumberField,
|
||||||
|
TextField,
|
||||||
|
EmailField,
|
||||||
|
JsonField,
|
||||||
|
DateField,
|
||||||
|
UrlField
|
||||||
} from "../types/pocketbase.ts";
|
} from "../types/pocketbase.ts";
|
||||||
import { addSchemaField as addCsvSchemaField } from "./csv.ts";
|
import { addSchemaField as addCsvSchemaField } from "./csv.ts";
|
||||||
import { addSchemaField as addJsonSchemaField } from "./json.ts";
|
import { addSchemaField as addJsonSchemaField } from "./json.ts";
|
||||||
@ -28,39 +35,19 @@ export function getSchemaType(
|
|||||||
"color: red",
|
"color: red",
|
||||||
);
|
);
|
||||||
Deno.exit(-1);
|
Deno.exit(-1);
|
||||||
return "text"
|
return "text";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (schemaField.type) {
|
if (schemaField.type == null) {
|
||||||
case POCKETBASE_TYPE.BOOL:
|
|
||||||
return POCKETBASE_TYPE.BOOL;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.NUMBER:
|
|
||||||
return POCKETBASE_TYPE.NUMBER;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.PLAIN_TEXT:
|
|
||||||
return POCKETBASE_TYPE.PLAIN_TEXT;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.EMAIL:
|
|
||||||
return POCKETBASE_TYPE.EMAIL;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.JSON:
|
|
||||||
return POCKETBASE_TYPE.JSON;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.DATETIME:
|
|
||||||
return POCKETBASE_TYPE.DATETIME;
|
|
||||||
|
|
||||||
case POCKETBASE_TYPE.URL:
|
|
||||||
return POCKETBASE_TYPE.URL;
|
|
||||||
|
|
||||||
default:
|
|
||||||
console.error(
|
console.error(
|
||||||
`%cPbTypeError: Unsupported type '${schemaField.type}'`,
|
`%cSchemaError: Column type missing for '${column}'`,
|
||||||
"color: red",
|
"color: red",
|
||||||
);
|
);
|
||||||
Deno.exit(-2);
|
Deno.exit(-1);
|
||||||
return "text"
|
return "text";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return schemaField.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -76,93 +63,82 @@ export function createSchemaField(
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case POCKETBASE_TYPE.BOOL:
|
case POCKETBASE_TYPE.BOOL:
|
||||||
return {
|
return {
|
||||||
|
hidden: false,
|
||||||
name,
|
name,
|
||||||
type,
|
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
presentable: false,
|
||||||
unique: false,
|
required: false,
|
||||||
options: {},
|
system: false,
|
||||||
};
|
type,
|
||||||
|
} as BoolField;
|
||||||
case POCKETBASE_TYPE.NUMBER:
|
case POCKETBASE_TYPE.NUMBER:
|
||||||
return {
|
return {
|
||||||
|
hidden: false,
|
||||||
|
max: undefined,
|
||||||
|
min: undefined,
|
||||||
name,
|
name,
|
||||||
type,
|
onlyInt: false,
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
presentable: false,
|
||||||
unique: false,
|
required: false,
|
||||||
options: {
|
system: false,
|
||||||
min: null,
|
type,
|
||||||
max: null,
|
} as NumberField;
|
||||||
noDecimal: false,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
case POCKETBASE_TYPE.PLAIN_TEXT:
|
case POCKETBASE_TYPE.PLAIN_TEXT:
|
||||||
return {
|
return {
|
||||||
|
autogeneratePattern: "",
|
||||||
|
hidden: false,
|
||||||
|
max: 0,
|
||||||
|
min: 0,
|
||||||
name,
|
name,
|
||||||
type,
|
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
|
||||||
unique: false,
|
|
||||||
options: {
|
|
||||||
min: null,
|
|
||||||
max: null,
|
|
||||||
pattern: "",
|
pattern: "",
|
||||||
},
|
presentable: false,
|
||||||
};
|
primaryKey: false,
|
||||||
|
required: false,
|
||||||
|
system: false,
|
||||||
|
type,
|
||||||
|
} as TextField;
|
||||||
case POCKETBASE_TYPE.EMAIL:
|
case POCKETBASE_TYPE.EMAIL:
|
||||||
return {
|
return {
|
||||||
|
exceptDomains: undefined,
|
||||||
|
hidden: false,
|
||||||
name,
|
name,
|
||||||
type,
|
onlyDomains: undefined,
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
presentable: false,
|
||||||
unique: false,
|
required: false,
|
||||||
options: {
|
system: false,
|
||||||
exceptDomains: null,
|
type,
|
||||||
onlyDomains: null,
|
} as EmailField;
|
||||||
},
|
|
||||||
};
|
|
||||||
case POCKETBASE_TYPE.JSON:
|
case POCKETBASE_TYPE.JSON:
|
||||||
return {
|
return {
|
||||||
|
hidden: false,
|
||||||
|
maxSize: 0,
|
||||||
name,
|
name,
|
||||||
type,
|
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
presentable: false,
|
||||||
unique: false,
|
required: false,
|
||||||
options: {
|
system: false,
|
||||||
maxSize: 2000000
|
type,
|
||||||
},
|
} as JsonField;
|
||||||
};
|
|
||||||
case POCKETBASE_TYPE.DATETIME:
|
case POCKETBASE_TYPE.DATETIME:
|
||||||
return {
|
return {
|
||||||
name,
|
hidden: false,
|
||||||
type,
|
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
|
||||||
unique: false,
|
|
||||||
options: {
|
|
||||||
min: "",
|
|
||||||
max: "",
|
max: "",
|
||||||
},
|
min: "",
|
||||||
};
|
name,
|
||||||
|
presentable: false,
|
||||||
|
required: false,
|
||||||
|
system: false,
|
||||||
|
type,
|
||||||
|
} as DateField;
|
||||||
case POCKETBASE_TYPE.URL:
|
case POCKETBASE_TYPE.URL:
|
||||||
return {
|
return {
|
||||||
|
hidden: false,
|
||||||
|
exceptDomains: undefined,
|
||||||
name,
|
name,
|
||||||
type,
|
onlyDomains: undefined,
|
||||||
system: false,
|
|
||||||
required: false,
|
|
||||||
presentable: false,
|
presentable: false,
|
||||||
unique: false,
|
required: false,
|
||||||
options: {
|
system: false,
|
||||||
exceptDomains: null,
|
type,
|
||||||
onlyDomains: null,
|
} as UrlField;
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user