MCPcopy Create free account
hub / github.com/parse-community/parse-server / constructor

Method constructor

src/Controllers/SchemaController.js:562–615  ·  view source on GitHub ↗
(allSchemas = [], protectedFields = {})

Source from the content-addressed store, hash-verified

560 __data: any;
561 __protectedFields: any;
562 constructor(allSchemas = [], protectedFields = {}) {
563 this.__data = {};
564 this.__protectedFields = protectedFields;
565 allSchemas.forEach(schema => {
566 if (volatileClasses.includes(schema.className)) {
567 return;
568 }
569 Object.defineProperty(this, schema.className, {
570 get: () => {
571 if (!this.__data[schema.className]) {
572 const data = {};
573 data.fields = injectDefaultSchema(schema).fields;
574 data.classLevelPermissions = structuredClone(schema.classLevelPermissions);
575 data.indexes = schema.indexes;
576
577 const classProtectedFields = this.__protectedFields[schema.className];
578 if (classProtectedFields) {
579 for (const key in classProtectedFields) {
580 const unq = new Set([
581 ...(data.classLevelPermissions.protectedFields[key] || []),
582 ...classProtectedFields[key],
583 ]);
584 data.classLevelPermissions.protectedFields[key] = Array.from(unq);
585 }
586 }
587
588 this.__data[schema.className] = data;
589 }
590 return this.__data[schema.className];
591 },
592 });
593 });
594
595 // Inject the in-memory classes
596 volatileClasses.forEach(className => {
597 Object.defineProperty(this, className, {
598 get: () => {
599 if (!this.__data[className]) {
600 const schema = injectDefaultSchema({
601 className,
602 fields: {},
603 classLevelPermissions: {},
604 });
605 const data = {};
606 data.fields = schema.fields;
607 data.classLevelPermissions = schema.classLevelPermissions;
608 data.indexes = schema.indexes;
609 this.__data[className] = data;
610 }
611 return this.__data[className];
612 },
613 });
614 });
615 }
616}
617
618const injectDefaultSchema = ({ className, fields, classLevelPermissions, indexes }: Schema) => {

Callers

nothing calls this directly

Calls 1

injectDefaultSchemaFunction · 0.85

Tested by

no test coverage detected