UNPKG

5 kBTypeScriptView Raw
1/**
2 * CORMO types
3 * @module types
4 * @namespace cormo
5 */
6/**
7 * Represents a string, used in model schemas.
8 * @namespace types
9 * @class String
10 */
11export interface CormoTypesString {
12 _type: 'string';
13 length?: number;
14}
15interface CormoTypesStringConstructor {
16 new (length?: number): CormoTypesString;
17 (length?: number): CormoTypesString;
18}
19declare const CormoTypesString: CormoTypesStringConstructor;
20/**
21 * Represents a double-precision floating-point, used in model schemas.
22 * @namespace types
23 * @class Number
24 */
25export interface CormoTypesNumber {
26 _type: 'number';
27}
28interface CormoTypesNumberConstructor {
29 new (): CormoTypesNumber;
30 (): CormoTypesNumber;
31}
32declare const CormoTypesNumber: CormoTypesNumberConstructor;
33/**
34 * Represents a boolean, used in model schemas.
35 * @namespace types
36 * @class Boolean
37 */
38export interface CormoTypesBoolean {
39 _type: 'boolean';
40}
41interface CormoTypesBooleanConstructor {
42 new (): CormoTypesBoolean;
43 (): CormoTypesBoolean;
44}
45declare const CormoTypesBoolean: CormoTypesBooleanConstructor;
46/**
47 * Represents a 32bit integer, used in model schemas.
48 * @namespace types
49 * @class Integer
50 */
51export interface CormoTypesInteger {
52 _type: 'integer';
53}
54interface CormoTypesIntegerConstructor {
55 new (): CormoTypesInteger;
56 (): CormoTypesInteger;
57}
58declare const CormoTypesInteger: CormoTypesIntegerConstructor;
59/**
60 * Represents a two-dimensional point, used in model schemas.
61 *
62 * This type is supported only in MongoDB and MySQL.
63 * @namespace types
64 * @class GeoPoint
65 */
66export interface CormoTypesGeoPoint {
67 _type: 'geopoint';
68}
69interface CormoTypesGeoPointConstructor {
70 new (): CormoTypesGeoPoint;
71 (): CormoTypesGeoPoint;
72}
73declare const CormoTypesGeoPoint: CormoTypesGeoPointConstructor;
74/**
75 * Represents a date, used in model schemas.
76 * @namespace types
77 * @class Date
78 */
79export interface CormoTypesDate {
80 _type: 'date';
81}
82interface CormoTypesDateConstructor {
83 new (): CormoTypesDate;
84 (): CormoTypesDate;
85}
86declare const CormoTypesDate: CormoTypesDateConstructor;
87/**
88 * Represents a general object, used in model schemas.
89 *
90 * A value of this type will be converted to a JSON string
91 * if the adapter does not support a general object.
92 * @namespace types
93 * @class Object
94 */
95export interface CormoTypesObject {
96 _type: 'object';
97}
98interface CormoTypesObjectConstructor {
99 new (): CormoTypesObject;
100 (): CormoTypesObject;
101}
102declare const CormoTypesObject: CormoTypesObjectConstructor;
103/**
104 * Represents a record id, used in model schemas.
105 * @namespace types
106 * @class RecordID
107 */
108export interface CormoTypesRecordID {
109 _type: 'recordid';
110}
111interface CormoTypesRecordIDConstructor {
112 new (): CormoTypesRecordID;
113 (): CormoTypesRecordID;
114}
115declare const CormoTypesRecordID: CormoTypesRecordIDConstructor;
116/**
117 * Represents a text, used in model schemas.
118 * @namespace types
119 * @class Text
120 */
121export interface CormoTypesText {
122 _type: 'text';
123}
124interface CormoTypesTextConstructor {
125 new (): CormoTypesText;
126 (): CormoTypesText;
127}
128declare const CormoTypesText: CormoTypesTextConstructor;
129export declare type ColumnTypeInternal = CormoTypesString | CormoTypesNumber | CormoTypesBoolean | CormoTypesDate | CormoTypesObject | CormoTypesInteger | CormoTypesGeoPoint | CormoTypesRecordID | CormoTypesText;
130export declare type ColumnTypeInternalConstructor = CormoTypesStringConstructor | CormoTypesNumberConstructor | CormoTypesBooleanConstructor | CormoTypesDateConstructor | CormoTypesObjectConstructor | CormoTypesIntegerConstructor | CormoTypesGeoPointConstructor | CormoTypesRecordIDConstructor | CormoTypesTextConstructor;
131declare type ColumnTypeNativeConstructor = StringConstructor | NumberConstructor | BooleanConstructor | DateConstructor | ObjectConstructor;
132declare type ColumnTypeString = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'integer' | 'geopoint' | 'recordid' | 'text';
133export declare type ColumnType = ColumnTypeInternal | ColumnTypeInternalConstructor | ColumnTypeNativeConstructor | ColumnTypeString;
134/**
135 * Converts JavaScript built-in class to CORMO type
136 * @private
137 */
138declare function _toCORMOType(type: ColumnType): ColumnTypeInternal;
139export { CormoTypesString as String, CormoTypesNumber as Number, CormoTypesBoolean as Boolean, CormoTypesInteger as Integer, CormoTypesGeoPoint as GeoPoint, CormoTypesDate as Date, CormoTypesObject as Object, CormoTypesRecordID as RecordID, CormoTypesText as Text, _toCORMOType, };
140/**
141 * A pseudo type represents a record's unique identifier.
142 *
143 * Its real type differs by adapters.
144 *
145 * * String for MongoDB
146 * * Integer for MySQL, SQLite3, PostegreSQL
147 * @namespace ptypes
148 */
149export declare type RecordID = string | number;
150/**
151 * A pseudo type represents an integer
152 * @namespace ptypes
153 */
154export declare type Integer = number;
155/**
156 * A pseudo type represents a two - dimensional point
157 * @namespace ptypes
158 */
159export declare type GeoPoint = [number, number];