@platform/cell.schema
Version:
URI and database schemas for the `cell.os`.
57 lines (56 loc) • 1.56 kB
JavaScript
const ID = {
NS: `([A-Za-z0-9\.]*)`,
CELL: `([A-Z]+[0-9]+)`,
ROW: `([0-9]+)`,
COLUMN: `([A-Z]+)`,
FILE: `([A-Za-z0-9]+)`,
FILENAME: `([\-A-Za-z0-9\.\_\/]*)`,
};
const KEY = {
NS: `\\::ns${ID.NS}`,
CELL: `\:key${ID.CELL}`,
ROW: `\:key${ID.ROW}`,
COLUMN: `\:key${ID.COLUMN}`,
FILE: `\:file${ID.FILE}`,
FILENAME: `\:filename${ID.FILENAME}`,
};
export const ROUTES = {
WILDCARD: '*',
SYS: {
FAVICON: '/favicon.ico',
INFO: ['/', '/.sys(/?)'],
UID: '/uid(/?)',
},
LOCAL: {
FS: `/local/fs`,
},
FILE: {
BASE: `/file${KEY.NS}\\:${KEY.FILE}(/?)`,
INFO: `/file${KEY.NS}\\:${KEY.FILE}/info(/?)`,
UPLOADED: `/file${KEY.NS}\\:${KEY.FILE}/uploaded(/?)`,
},
NS: {
CELL: `/ns${KEY.NS}\\:${KEY.CELL}(/?)`,
INFO: `/ns${KEY.NS}(/?)`,
TYPES: `/ns${KEY.NS}/types`,
},
CELL: {
NS: `/cell${KEY.NS}(/?)`,
INFO: `/cell${KEY.NS}\\:${KEY.CELL}(/?)`,
FILE: {
BY_NAME: `/cell${KEY.NS}\\:${KEY.CELL}/file/${KEY.FILENAME}`,
BY_FILE_URI: `/cell${KEY.NS}\\:${KEY.CELL}/file\\:${KEY.FILENAME}`,
},
FILES: {
BASE: `/cell${KEY.NS}\\:${KEY.CELL}/files(/?)`,
UPLOAD: `/cell${KEY.NS}\\:${KEY.CELL}/files/upload`,
UPLOADED: `/cell${KEY.NS}\\:${KEY.CELL}/files/uploaded`,
},
},
ROW: {
INFO: `/cell${KEY.NS}\\:${KEY.ROW}(/?)`,
},
COLUMN: {
INFO: `/cell${KEY.NS}\\:${KEY.COLUMN}(/?)`,
},
};