From 9492765c1a383a95f39d048a64a72529862df7c4 Mon Sep 17 00:00:00 2001 From: Vishal Diyora Date: Tue, 28 Mar 2023 22:07:24 -0400 Subject: [PATCH 1/2] Changing branch --- components/persistor/index.d.ts | 11 +- components/persistor/index.ts | 9 +- components/persistor/lib/api.ts | 19 +- components/persistor/lib/index.ts | 59 +++-- components/persistor/lib/knex/db.ts | 26 ++- components/persistor/lib/knex/query.ts | 20 +- components/persistor/lib/knex/update.ts | 17 +- components/persistor/lib/mongo/db.ts | 2 +- components/persistor/lib/mongo/query.ts | 5 +- components/persistor/lib/mongo/update.ts | 5 +- .../lib/remote-doc/RemoteDocService.ts | 6 +- .../LocalStorageDocClient.ts | 2 +- .../remote-doc-clients/S3RemoteDocClient.ts | 41 ++-- .../lib/remote-doc/remote-doc-types/index.ts | 2 +- components/persistor/lib/schema.ts | 9 +- components/persistor/lib/types/index.ts | 6 +- components/persistor/lib/util.ts | 16 +- components/persistor/lib/validation.ts | 4 +- components/persistor/package-lock.json | 221 ++++++++++-------- components/persistor/package.json | 1 + components/persistor/test/animals.js | 9 +- components/persistor/test/persist_banking.js | 25 +- .../persistor/test/persist_banking_pgsql.js | 55 +++-- .../persistor/test/persist_banking_s3.js | 26 ++- components/persistor/test/persist_fetch.js | 58 +++-- .../persistor/test/persist_fetch_children.js | 49 ++-- components/persistor/test/persist_idmap.js | 11 +- .../persistor/test/persist_newapi_extend.js | 34 +-- .../persistor/test/persist_newapi_tests.js | 58 ++--- .../persistor/test/persist_parent_subset.js | 38 +-- .../persistor/test/persist_polymorphic.js | 62 ++--- .../test/persist_schema_indexdefchanges.js | 38 +-- .../persistor/test/persist_schema_updates.js | 60 ++--- .../persistor/test/persist_transaction.js | 67 +++--- .../persistor/test/supertype/Account.ts | 8 +- .../persistor/test/supertype/Address.ts | 8 +- .../persistor/test/supertype/Customer.ts | 6 +- .../persistor/test/supertype/Employee.ts | 4 +- .../test/supertype/ExtendedCustomer.ts | 4 +- .../test/supertype/Responsibility.ts | 4 +- .../persistor/test/supertype/ReturnedMail.ts | 4 +- components/persistor/test/supertype/Role.ts | 6 +- .../persistor/test/supertype/Transaction.ts | 4 +- .../test/supertype/one-to-manychecks.ts | 33 ++- .../test/supertype/persist_banking_pgsql.ts | 13 +- components/persistor/tsconfig.base.json | 4 +- components/persistor/tsconfig.json | 17 +- 47 files changed, 652 insertions(+), 534 deletions(-) diff --git a/components/persistor/index.d.ts b/components/persistor/index.d.ts index 29e63517..4b9a7691 100644 --- a/components/persistor/index.d.ts +++ b/components/persistor/index.d.ts @@ -1,6 +1,9 @@ -export {Persistable, ContainsPersistable, Persistor} from './lib/persistable'; -export {Supertype} from '@haventech/supertype'; -export { Schema } from './lib/types/Schema'; +export {Persistable, ContainsPersistable, Persistor} from './lib/persistable.js'; +export {Supertype} from '@haventech/supertype'; +export { Schema } from './lib/types/Schema.js'; export function property(props?: Object); -export function supertypeClass(target?: any); \ No newline at end of file +export function supertypeClass(target?: any); +export function persObj(_ObjectTemplate: any, _RemoteObjectTemplate: any, baseClassForPersist: any); +// declare const _default: (_ObjectTemplate: any, _RemoteObjectTemplate: any, baseClassForPersist: any) => any; +// export default _default; \ No newline at end of file diff --git a/components/persistor/index.ts b/components/persistor/index.ts index 07efc178..50c87a73 100644 --- a/components/persistor/index.ts +++ b/components/persistor/index.ts @@ -1 +1,8 @@ -module.exports = require('./lib/index.js') +// export { default } from "./lib/index.js"; +// import indexTemplate from './lib/index.js'; +// export {indexTemplate}; + +export * from './lib/index.js'; +// export default indexTemplate; + +// module.exports = require('./lib/index.js') \ No newline at end of file diff --git a/components/persistor/lib/api.ts b/components/persistor/lib/api.ts index 0f9400c9..f626194d 100644 --- a/components/persistor/lib/api.ts +++ b/components/persistor/lib/api.ts @@ -10,16 +10,20 @@ * */ -import { PersistorTransaction, RemoteDocConnectionOptions } from './types'; +import { PersistorTransaction, RemoteDocConnectionOptions } from './types/index.js'; +import * as supertypeRequire from '@haventech/supertype'; +import Promise from 'bluebird'; +// const {Promise} = bluebirdModule; +import * as _ from 'underscore'; +import * as knexModule from 'knex'; +const {knex }= knexModule; -module.exports = function (PersistObjectTemplate, baseClassForPersist) { + + +export default function (PersistObjectTemplate, baseClassForPersist) { const moduleName = `persistor/lib/api`; - let supertypeRequire = require('@haventech/supertype'); let statsDHelper = supertypeRequire.StatsdHelper; - var Promise = require('bluebird'); - var _ = require('underscore'); - function getTime() { return process.hrtime(); } @@ -1280,7 +1284,7 @@ module.exports = function (PersistObjectTemplate, baseClassForPersist) { PersistObjectTemplate.getPOJOFromMongoQuery(template, query, options, logger) : PersistObjectTemplate.getPOJOsFromKnexQuery(template, [], query, options, undefined, logger).then(function (pojos) { pojos.forEach(function (pojo) { - _.map(pojo, function (_val, prop) { + _.map(pojo, function (_val, prop: any) { if (prop.match(RegExp('^' + prefix + '___'))) { pojo[prop.replace(RegExp('^' + prefix + '___'), '')] = pojo[prop]; delete pojo[prop]; @@ -1354,7 +1358,6 @@ module.exports = function (PersistObjectTemplate, baseClassForPersist) { * @returns {*} */ PersistObjectTemplate.connect = function (config, schema) { - var knex = require('knex'); var connection = knex(config); this.setDB(connection, this.DB_Knex, config.client); this.setRemoteDocConnection(config); diff --git a/components/persistor/lib/index.ts b/components/persistor/lib/index.ts index 925a6b7d..f49f362d 100644 --- a/components/persistor/lib/index.ts +++ b/components/persistor/lib/index.ts @@ -51,9 +51,19 @@ */ var nextId = 1; var objectTemplate; -var supertype = require('@haventech/supertype'); - -module.exports = function (_ObjectTemplate, _RemoteObjectTemplate, baseClassForPersist) { //@TODO: Why is ObjectTemplate and RemoteObjectTemplate here? +import * as supertype from '@haventech/supertype'; +import api from './api.js'; +import schema from './schema.js'; +import util from './util.js'; +import mongoQuery from './mongo/query.js'; +import mongoUpdate from './mongo/update.js'; +import mongoDB from './mongo/db.js'; +import knexQuery from './knex/query.js'; +import knexUpdate from './knex/update.js'; +import knexDB from './knex/db.js'; +export { Schema } from './types/Schema.js'; + +export function persObj(_ObjectTemplate, _RemoteObjectTemplate, baseClassForPersist) { //@TODO: Why is ObjectTemplate and RemoteObjectTemplate here? var PersistObjectTemplate = baseClassForPersist._createObject(); PersistObjectTemplate.__id__ = nextId++; @@ -63,42 +73,44 @@ module.exports = function (_ObjectTemplate, _RemoteObjectTemplate, baseClassForP PersistObjectTemplate.dirtyObjects = {}; PersistObjectTemplate.savedObjects = {}; - require('./api.js')(PersistObjectTemplate, baseClassForPersist); - require('./schema.js')(PersistObjectTemplate); - require('./util.js')(PersistObjectTemplate); - require('./mongo/query.js')(PersistObjectTemplate); - require('./mongo/update.js')(PersistObjectTemplate); - require('./mongo/db.js')(PersistObjectTemplate); - require('./knex/query.js')(PersistObjectTemplate); - require('./knex/update.js')(PersistObjectTemplate); - require('./knex/db.js')(PersistObjectTemplate); + api(PersistObjectTemplate, baseClassForPersist); + schema(PersistObjectTemplate); + util(PersistObjectTemplate); + mongoQuery(PersistObjectTemplate); + mongoUpdate(PersistObjectTemplate); + mongoDB(PersistObjectTemplate); + knexQuery(PersistObjectTemplate); + knexUpdate(PersistObjectTemplate); + knexDB(PersistObjectTemplate); objectTemplate = PersistObjectTemplate; return PersistObjectTemplate; } -module.exports.supertypeClass = function (target) { +export const supertypeClass = function (target) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } return supertype.supertypeClass(target, objectTemplate) }; -module.exports.Supertype = function () { +export const Supertype = function () { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } return Reflect.construct( supertype.Supertype, [objectTemplate], this.constructor ); }; -module.exports.Supertype.prototype = supertype.Supertype.prototype; -module.exports.property = function (props) { +Supertype.prototype = supertype.Supertype.prototype; + +export const property = function (props) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } - return supertype.property(props, objectTemplate); + return supertype.property(props); } -var __extends = (this && this.__extends) || (function () { +// will need to come back here unblocked for now by removing this. +var __extends = (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; @@ -110,7 +122,7 @@ var __extends = (this && this.__extends) || (function () { })(); -module.exports.Persistable = function (Base) { +export const Persistable = function (Base) { return (function (_super) { __extends(class_1, _super); function class_1() { @@ -121,12 +133,13 @@ module.exports.Persistable = function (Base) { } let ObjectTemplate = supertype.default; -module.exports.Persistor = { - create: function () {return module.exports(ObjectTemplate, null, ObjectTemplate)} +export const Persistor = { + create: function () {return persObj(ObjectTemplate, null, ObjectTemplate)} } -Object.defineProperty(module.exports.Persistable.prototype, 'persistor', {get: function () { +Object.defineProperty(Persistable.prototype, 'persistor', {get: function () { return this.__objectTemplate__ }}); -module.exports.Schema = require('./types/Schema') \ No newline at end of file +// export Schema +// export default indexTemplate; \ No newline at end of file diff --git a/components/persistor/lib/knex/db.ts b/components/persistor/lib/knex/db.ts index 2d2144b1..6935647f 100644 --- a/components/persistor/lib/knex/db.ts +++ b/components/persistor/lib/knex/db.ts @@ -1,9 +1,11 @@ -import {RemoteDocService} from "../remote-doc/RemoteDocService"; +import {RemoteDocService} from "../remote-doc/RemoteDocService.js"; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import * as _ from 'underscore'; -module.exports = function (PersistObjectTemplate) { +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/knex/db`; - var Promise = require('bluebird'); - var _ = require('underscore'); + var processedList = []; /** @@ -297,7 +299,7 @@ module.exports = function (PersistObjectTemplate) { } var foreignKey = template.__schema__.children[property].id; var goodList = []; - _.each(obj[property], function(o) { + _.each(obj[property], function(o: any) { if (o._id) goodList.push(o._id); }); @@ -541,7 +543,7 @@ module.exports = function (PersistObjectTemplate) { if (!callBack) return; if (typeof callBack !== 'function') throw new Error('persistor can only notify the field changes through a callback'); - var fieldsChanged = _.reduce(_newFields, function(current, field, key) { + var fieldsChanged = _.reduce(_newFields, function(current, field: any, key) { return field.type !== Array ? current + ',' + key : current; }, ''); @@ -673,7 +675,7 @@ module.exports = function (PersistObjectTemplate) { function processValues(template) { var defineProperty = template.defineProperties ? template.defineProperties[prop] : null; if (defineProperty && defineProperty.values) - _.each(defineProperty.values, function (val, key) {values[(defineProperty.values instanceof Array ? val : key)] = true;}); + _.each(defineProperty.values, function (val, key) {values[(defineProperty.values instanceof Array ? val : key)as any] = true;}); if (template.__children__) _.each(template.__children__, processValues); } @@ -839,7 +841,7 @@ module.exports = function (PersistObjectTemplate) { }; var generateChanges = function (localtemplate, _value) { - return _.reduce(localtemplate.__children__, function (_curr, o) { + return _.reduce(localtemplate.__children__, function (_curr, o: any) { return Promise.resolve() .then(loadTableDef.bind(this, _dbschema, o.__name__)) .spread(diffTable) @@ -848,11 +850,11 @@ module.exports = function (PersistObjectTemplate) { }; var getFilteredTarget = function(src, target) { - return _.filter(target, function(o, _filterkey) { + return _.filter(target, function(o: any, _filterkey) { var currName = _.reduce(o.def.columns, function (name, col) { return name + '_' + col; }, 'idx_' + tableName); - return !_.find(src, function(cached) { + return !_.find(src, function(cached: any) { var cachedName = _.reduce(cached.def.columns, function (name, col) { return name + '_' + col; }, 'idx_' + tableName); @@ -865,7 +867,7 @@ module.exports = function (PersistObjectTemplate) { var dbChanges = {add: [], change: [], delete: []}; _.map(dbChanges, function(_object, key) { _.each(_changes, function(change) { - var uniqChanges = _.uniq(change[key], function(o) { + var uniqChanges = _.uniq(change[key], function(o: any) { return o.name; }); var filtered = getFilteredTarget(dbChanges[key], uniqChanges); @@ -1393,7 +1395,7 @@ module.exports = function (PersistObjectTemplate) { activity: 'commit' } }); - var knex = _.findWhere(this._db, {type: PersistObjectTemplate.DB_Knex}).connection; + var knex = (_.findWhere(this._db, {type: PersistObjectTemplate.DB_Knex})as any).connection; var dirtyObjects = persistorTransaction.dirtyObjects; var touchObjects = persistorTransaction.touchObjects; var savedObjects = persistorTransaction.savedObjects; diff --git a/components/persistor/lib/knex/query.ts b/components/persistor/lib/knex/query.ts index ebb8bc1a..660b9dba 100644 --- a/components/persistor/lib/knex/query.ts +++ b/components/persistor/lib/knex/query.ts @@ -1,11 +1,11 @@ -import { RemoteDocService } from '../remote-doc/RemoteDocService'; -import { PersistorUtils } from '../utils/PersistorUtils'; +import { RemoteDocService } from '../remote-doc/RemoteDocService.js'; +import { PersistorUtils } from '../utils/PersistorUtils.js'; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import * as _ from 'underscore'; -module.exports = function (PersistObjectTemplate) { +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/knex/query`; - var Promise = require('bluebird'); - var _ = require('underscore'); - PersistObjectTemplate.concurrency = 10; PersistObjectTemplate.getFromPersistWithKnexId = function (template, id, cascade, isTransient, idMap, isRefresh, logger, enableChangeTracking, projection) { @@ -130,7 +130,7 @@ module.exports = function (PersistObjectTemplate) { function processRequests() { var segLength = requests.length; //console.log("Processing " + segLength + " promises " + PersistObjectTemplate.concurrency); - return Promise.map(requests, function (request, _ix) { + return Promise.map(requests, function (request: any, _ix) { return request(); }, {concurrency: PersistObjectTemplate.concurrency}) .then(function () { @@ -420,7 +420,7 @@ module.exports = function (PersistObjectTemplate) { } function buildFilterQuery(query, foreignFilterKey, foreignFilterValue, alternateProps) { if (alternateProps) { - query['$or'] = _.map(alternateProps, function(prop) { + query['$or'] = _.map(alternateProps, function(prop: any) { var condition = {} condition[prop.foreignFilterKey] = prop.foreignFilterValue; return condition; @@ -462,7 +462,7 @@ module.exports = function (PersistObjectTemplate) { var closureType = defineProperty.type; var closureDefineProperty = defineProperty; - var join = _.find(joins, function (j) {return j.prop == prop}); + var join = _.find(joins, function (j) {return j.prop == prop}) as any; requests.push(generateQueryRequest.bind(this, join, query, closureProp, closurePersistorProp, closureCascade, closureForeignId, closureType, closureDefineProperty)); @@ -530,7 +530,7 @@ module.exports = function (PersistObjectTemplate) { return obj[foreignFilterKey] == foreignFilterValue; }); if (alternateProps) - _.each(alternateProps, function(alternateProp, alternatePropKey) { + _.each(alternateProps, function(alternateProp: any, alternatePropKey) { obj[alternatePropKey] = _.filter(objs, function (obj) { return obj[alternateProp.foreignFilterKey] == alternateProp.foreignFilterValue }) diff --git a/components/persistor/lib/knex/update.ts b/components/persistor/lib/knex/update.ts index c5d7dc5b..77a5650f 100644 --- a/components/persistor/lib/knex/update.ts +++ b/components/persistor/lib/knex/update.ts @@ -1,11 +1,12 @@ -import { RemoteDocService, UploadDocumentResponse } from '../remote-doc/RemoteDocService'; -import { PersistorTransaction } from '../types/PersistorTransaction'; -import { PersistorUtils } from '../utils/PersistorUtils'; - -module.exports = function (PersistObjectTemplate) { +import { RemoteDocService, UploadDocumentResponse } from '../remote-doc/RemoteDocService.js'; +import { PersistorTransaction } from '../types/PersistorTransaction.js'; +import { PersistorUtils } from '../utils/PersistorUtils.js'; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import * as _ from 'underscore'; + +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/knex/update`; - var Promise = require('bluebird'); - var _ = require('underscore'); /** * Save the object to persistent storage @@ -109,7 +110,7 @@ module.exports = function (PersistObjectTemplate) { throw new Error('Missing parent entry in ' + defineProperty.of.__name__ + ' for ' + templateName); // Go through each of the parents in the schema to find the one matching this reference - _.each(defineProperty.of.__schema__.parents, function(parentSchemaEntry, parentProp) { + _.each(defineProperty.of.__schema__.parents, function(parentSchemaEntry: any, parentProp) { if (parentSchemaEntry.id == childForeignKey) { diff --git a/components/persistor/lib/mongo/db.ts b/components/persistor/lib/mongo/db.ts index d118291f..409375ff 100644 --- a/components/persistor/lib/mongo/db.ts +++ b/components/persistor/lib/mongo/db.ts @@ -1,4 +1,4 @@ -module.exports = function (PersistObjectTemplate) { +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/mongo/db`; /* Mongo implementation of save */ PersistObjectTemplate.savePojoToMongo = function(obj, pojo, updateID, _txn, logger) { diff --git a/components/persistor/lib/mongo/query.ts b/components/persistor/lib/mongo/query.ts index f09f63e8..5b0420d4 100644 --- a/components/persistor/lib/mongo/query.ts +++ b/components/persistor/lib/mongo/query.ts @@ -1,6 +1,7 @@ -module.exports = function (PersistObjectTemplate) { +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/mongo/query`; - var Promise = require('bluebird'); PersistObjectTemplate.getFromPersistWithMongoId = function (template, id, cascade, isTransient, idMap, _logger) { return this.getFromPersistWithMongoQuery(template, {_id: PersistObjectTemplate.ObjectID(id.toString())}, cascade, null, null, isTransient, idMap) diff --git a/components/persistor/lib/mongo/update.ts b/components/persistor/lib/mongo/update.ts index e8fc2c68..e18d5aa3 100644 --- a/components/persistor/lib/mongo/update.ts +++ b/components/persistor/lib/mongo/update.ts @@ -1,6 +1,7 @@ -module.exports = function (PersistObjectTemplate) { +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +export default function (PersistObjectTemplate) { const moduleName = `persistor/lib/mongo/update`; - var Promise = require('bluebird'); /** * Save the object to persistent storage diff --git a/components/persistor/lib/remote-doc/RemoteDocService.ts b/components/persistor/lib/remote-doc/RemoteDocService.ts index 27d59757..c6eef0e5 100644 --- a/components/persistor/lib/remote-doc/RemoteDocService.ts +++ b/components/persistor/lib/remote-doc/RemoteDocService.ts @@ -1,6 +1,6 @@ -import { RemoteDocClient } from './remote-doc-types/index'; -import { LocalStorageDocClient } from './remote-doc-clients/LocalStorageDocClient'; -import { S3RemoteDocClient } from './remote-doc-clients/S3RemoteDocClient'; +import { RemoteDocClient } from './remote-doc-types/index.js'; +import { LocalStorageDocClient } from './remote-doc-clients/LocalStorageDocClient.js'; +import { S3RemoteDocClient } from './remote-doc-clients/S3RemoteDocClient.js'; export type UploadDocumentResponse = { key: string, diff --git a/components/persistor/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.ts b/components/persistor/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.ts index 11eeaae0..7000b967 100644 --- a/components/persistor/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.ts +++ b/components/persistor/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.ts @@ -1,7 +1,7 @@ import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; -import { RemoteDocClient } from '../remote-doc-types/index'; +import { RemoteDocClient } from '../remote-doc-types/index.js'; /** * mock remote object service - where we're writing these objects to the filesystem. diff --git a/components/persistor/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.ts b/components/persistor/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.ts index 89deb349..f5564133 100644 --- a/components/persistor/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.ts +++ b/components/persistor/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.ts @@ -1,9 +1,8 @@ -import { RemoteDocClient } from '../remote-doc-types/index'; -import { S3, AWSError } from 'aws-sdk'; - +import { RemoteDocClient } from '../remote-doc-types/index.js'; +import AWS from 'aws-sdk'; export class S3RemoteDocClient implements RemoteDocClient { - private S3Instance: S3; + private S3Instance: AWS.S3; private S3Host: string; constructor(remoteDocHost?: string) { @@ -13,22 +12,22 @@ export class S3RemoteDocClient implements RemoteDocClient { /** * establish connection to s3 * - * @returns {Promise} + * @returns {Promise} */ - private async getConnection(bucket: string): Promise { + private async getConnection(bucket: string): Promise { if (!this.hasCredentials() || (this.hasCredentials() && !this.isCredentialsValid())) { const endPoint = `${this.S3Host}${bucket}`; - let S3Instance = new S3({ + let S3Instance = new AWS.S3({ endpoint: endPoint, region: 'us-east-1', s3BucketEndpoint: true }); - return new Promise((resolve, reject) => { - S3Instance.config.getCredentials((err: AWS.AWSError) => { + return new Promise((resolve, reject) => { + S3Instance.config.getCredentials((err: any) => { if (err) { return reject(err); } else { @@ -43,18 +42,18 @@ export class S3RemoteDocClient implements RemoteDocClient { }; /** - * placing a document in S3 storage. + * placing a document in AWS.S3 storage. * handles both `create` and `update` scenarios. * * @param s3ObjectToBeUploaded - the specific item being uploaded to s3 * @param {string} key - the unique identifier for this item within its s3 bucket * @param {string} bucket - the name of the s3 bucket * @param {string} contentType - the mime type of the content being uploaded - * @returns {Promise} - standard aws result object following an s3 upload + * @returns {Promise} - standard aws result object following an s3 upload */ - public async uploadDocument(s3ObjectToBeUploaded: S3.Body, key: string, bucket: string, contentType?: string): Promise { + public async uploadDocument(s3ObjectToBeUploaded: AWS.S3.Body, key: string, bucket: string, contentType?: string): Promise { - const bucketParams: S3.PutObjectRequest = { + const bucketParams: AWS.S3.PutObjectRequest = { Bucket: bucket, Key: key, Body: s3ObjectToBeUploaded, @@ -64,7 +63,7 @@ export class S3RemoteDocClient implements RemoteDocClient { const s3Conn = await this.getConnection(bucket); return new Promise((resolve, reject) => { - (s3Conn).putObject(bucketParams, async (err: AWSError, data: S3.PutObjectOutput) => { + (s3Conn).putObject(bucketParams, async (err: any, data: AWS.S3.PutObjectOutput) => { if (err) { reject(err.message); } else { @@ -80,10 +79,10 @@ export class S3RemoteDocClient implements RemoteDocClient { * * @param {string} key - the unique identifier for this item within its s3 bucket * @param {string} bucket - the name of the s3 bucket - * @returns {Promise} - standard aws result object following an s3 download + * @returns {Promise} - standard aws result object following an s3 download */ public async downloadDocument(key: string, bucket: string): Promise { - const bucketParams: S3.GetObjectRequest = { + const bucketParams: AWS.S3.GetObjectRequest = { Bucket: bucket, Key: key }; @@ -91,7 +90,7 @@ export class S3RemoteDocClient implements RemoteDocClient { const s3Conn = await this.getConnection(bucket); return new Promise((resolve, reject) => { - s3Conn.getObject(bucketParams, (err: Error, data: S3.GetObjectOutput) => { + s3Conn.getObject(bucketParams, (err: Error, data: AWS.S3.GetObjectOutput) => { if (err) { reject(err); } else { @@ -102,9 +101,9 @@ export class S3RemoteDocClient implements RemoteDocClient { }; /** - * assuming a versioned S3 bucket, deleting a document without supplying a version ID places a delete marker + * assuming a versioned AWS.S3 bucket, deleting a document without supplying a version ID places a delete marker * on the object at the top of the stack. on subsequent get, the most recently placed object in that key space - * will be returned. without permanent deletion (passing in version ID), all docs still exist in S3. + * will be returned. without permanent deletion (passing in version ID), all docs still exist in AWS.S3. * * @param {string} key - the unique identifier for this item within its s3 bucket * @param {string} bucket - the name of the s3 bucket @@ -112,7 +111,7 @@ export class S3RemoteDocClient implements RemoteDocClient { * @returns {Promise} */ public async deleteDocument(key: string, bucket: string, versionId?: string) { - const params: S3.DeleteObjectRequest = { + const params: AWS.S3.DeleteObjectRequest = { Bucket: bucket, Key: key }; @@ -124,7 +123,7 @@ export class S3RemoteDocClient implements RemoteDocClient { const s3Conn = await this.getConnection(bucket); return new Promise((resolve, reject) => { - s3Conn.deleteObject(params, (err: Error, data: S3.DeleteObjectOutput) => { + s3Conn.deleteObject(params, (err: Error, data: AWS.S3.DeleteObjectOutput) => { if (err) { reject(err.message); } else { diff --git a/components/persistor/lib/remote-doc/remote-doc-types/index.ts b/components/persistor/lib/remote-doc/remote-doc-types/index.ts index 9f32e1af..43468d30 100644 --- a/components/persistor/lib/remote-doc/remote-doc-types/index.ts +++ b/components/persistor/lib/remote-doc/remote-doc-types/index.ts @@ -1 +1 @@ -export { RemoteDocClient } from './RemoteDocClient'; \ No newline at end of file +export { RemoteDocClient } from './RemoteDocClient.js'; \ No newline at end of file diff --git a/components/persistor/lib/schema.ts b/components/persistor/lib/schema.ts index 642115e6..50571393 100644 --- a/components/persistor/lib/schema.ts +++ b/components/persistor/lib/schema.ts @@ -1,8 +1,5 @@ -module.exports = function (PersistObjectTemplate) { - - var _ = require('underscore'); - - +import * as _ from 'underscore'; +export default function (PersistObjectTemplate) { PersistObjectTemplate.setSchema = function (schema) { this._schema = schema; } @@ -137,7 +134,7 @@ module.exports = function (PersistObjectTemplate) { var parentSchema = (parentTemplate && parentTemplate.type && this.__dictionary__[propType.__name__]) ? this.__dictionary__[propType.__name__].__schema__ : null; var isOTM = (parentSchema && parentSchema.children) ? - !!_.find(parentSchema.children, function(child) { return child.id == val.id}) : false; + !!_.find(parentSchema.children, function(child: any) { return child.id == val.id}) : false; // Add the entry mindful of avoiding duplicates schema.indexes = schema.indexes || []; diff --git a/components/persistor/lib/types/index.ts b/components/persistor/lib/types/index.ts index 8b48703c..9a7a2838 100644 --- a/components/persistor/lib/types/index.ts +++ b/components/persistor/lib/types/index.ts @@ -1,3 +1,3 @@ -export { PersistorTransaction } from './PersistorTransaction'; -export { RemoteDocConnectionOptions } from './RemoteDocConnectionOptions'; -export { Schema } from './Schema'; \ No newline at end of file +export { PersistorTransaction } from './PersistorTransaction.js'; +export { RemoteDocConnectionOptions } from './RemoteDocConnectionOptions.js'; +export { Schema } from './Schema.js'; \ No newline at end of file diff --git a/components/persistor/lib/util.ts b/components/persistor/lib/util.ts index 53a67feb..192604c2 100644 --- a/components/persistor/lib/util.ts +++ b/components/persistor/lib/util.ts @@ -1,9 +1,11 @@ -import ajv from "./validation" -module.exports = function (PersistObjectTemplate) { - - var Promise = require('bluebird'); - var _ = require('underscore'); - PersistObjectTemplate.ObjectID = require('mongodb').ObjectID; +import ajv from "./validation.js" +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import * as _ from 'underscore'; +import mongodbModule from 'mongodb'; +const { ObjectId } = mongodbModule; +export default function (PersistObjectTemplate) { + PersistObjectTemplate.ObjectID = ObjectId; PersistObjectTemplate.createTransientObject = function (cb) { var currentState = this.__transient__; @@ -66,7 +68,7 @@ module.exports = function (PersistObjectTemplate) { return; callback.call(null, obj); var props = obj.__template__.getProperties(); - _.map(props, function (defineProperty, prop) { + _.map(props, function (defineProperty: any, prop) { if (defineProperty.type == Array && defineProperty.of && defineProperty.of.isObjectTemplate) if (!idMap[obj.__id__ + '-' + prop]) { idMap[obj.__id__ + '-' + prop] = true; diff --git a/components/persistor/lib/validation.ts b/components/persistor/lib/validation.ts index da46a34b..fe41dd49 100644 --- a/components/persistor/lib/validation.ts +++ b/components/persistor/lib/validation.ts @@ -1,4 +1,4 @@ -const Ajv = require("ajv"); +import Ajv from "ajv"; const schemas = { 'persistSchema': { 'type': 'object', @@ -70,7 +70,7 @@ const schemas = { }; const ajv = new Ajv({ allErrors: true }); // cacheing schema compilation so we don't need to compile on every call. -ajv.addSchema(schemas['persistSchema'], "persistSchema"); +ajv.addSchema(schemas['persistSchema'], "persistSchema"); ajv.addSchema(schemas['fetchSchema'], "fetchSchema"); ajv.addSchema(schemas['commitSchema'], "commitSchema"); ajv.addSchema(schemas['fetchSpec'], "fetchSpec"); diff --git a/components/persistor/package-lock.json b/components/persistor/package-lock.json index 17decd1a..e7e4d453 100644 --- a/components/persistor/package-lock.json +++ b/components/persistor/package-lock.json @@ -879,9 +879,9 @@ "dev": true }, "node_modules/bson": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", - "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", "engines": { "node": ">=0.6.19" } @@ -1160,9 +1160,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/create-require": { "version": "1.1.1", @@ -1279,9 +1279,9 @@ } }, "node_modules/denque": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", "engines": { "node": ">=0.10" } @@ -3174,14 +3174,14 @@ } }, "node_modules/mongodb": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.5.tgz", - "integrity": "sha512-GCjDxR3UOltDq00Zcpzql6dQo1sVry60OXJY3TDmFc2SWFY6c8Gn1Ardidc5jDirvJrx2GC3knGOImKphbSL3A==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", "dependencies": { - "bl": "^2.2.0", - "bson": "^1.1.1", + "bl": "^2.2.1", + "bson": "^1.1.4", "denque": "^1.4.1", - "require_optional": "^1.0.1", + "optional-require": "^1.1.8", "safe-buffer": "^5.1.2" }, "engines": { @@ -3189,12 +3189,46 @@ }, "optionalDependencies": { "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } } }, "node_modules/mongodb/node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/ms": { "version": "2.1.2", @@ -3433,6 +3467,17 @@ "wrappy": "1" } }, + "node_modules/optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "dependencies": { + "require-at": "^1.0.6" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -3746,6 +3791,11 @@ "node": ">= 0.8.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "node_modules/process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -3812,24 +3862,19 @@ } }, "node_modules/readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, - "node_modules/readable-stream/node_modules/process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3900,13 +3945,12 @@ "node": ">=4" } }, - "node_modules/require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "dependencies": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" + "node_modules/require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==", + "engines": { + "node": ">=4" } }, "node_modules/require-directory": { @@ -3940,14 +3984,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -4055,6 +4091,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true, "bin": { "semver": "bin/semver" } @@ -4217,9 +4254,9 @@ "dev": true }, "node_modules/string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { "safe-buffer": "~5.1.0" } @@ -4562,7 +4599,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", @@ -5487,9 +5524,9 @@ "dev": true }, "bson": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", - "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" }, "buffer": { "version": "4.9.2", @@ -5705,9 +5742,9 @@ } }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "create-require": { "version": "1.1.1", @@ -5793,9 +5830,9 @@ } }, "denque": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" }, "diff": { "version": "4.0.2", @@ -7151,22 +7188,22 @@ "dev": true }, "mongodb": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.5.tgz", - "integrity": "sha512-GCjDxR3UOltDq00Zcpzql6dQo1sVry60OXJY3TDmFc2SWFY6c8Gn1Ardidc5jDirvJrx2GC3knGOImKphbSL3A==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", + "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", "requires": { - "bl": "^2.2.0", - "bson": "^1.1.1", + "bl": "^2.2.1", + "bson": "^1.1.4", "denque": "^1.4.1", - "require_optional": "^1.0.1", + "optional-require": "^1.1.8", "safe-buffer": "^5.1.2", "saslprep": "^1.0.0" }, "dependencies": { "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -7357,6 +7394,14 @@ "wrappy": "1" } }, + "optional-require": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", + "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", + "requires": { + "require-at": "^1.0.6" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -7595,6 +7640,11 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -7636,24 +7686,17 @@ } }, "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - } } }, "readdirp": { @@ -7705,14 +7748,10 @@ "es6-error": "^4.0.1" } }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" - } + "require-at": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", + "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" }, "require-directory": { "version": "2.1.1", @@ -7736,11 +7775,6 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7811,7 +7845,8 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true }, "serialize-javascript": { "version": "6.0.0", @@ -7941,9 +7976,9 @@ "dev": true }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } @@ -8190,7 +8225,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "v8-compile-cache-lib": { "version": "3.0.1", diff --git a/components/persistor/package.json b/components/persistor/package.json index 06658766..482b0636 100644 --- a/components/persistor/package.json +++ b/components/persistor/package.json @@ -5,6 +5,7 @@ "version": "11.0.0-es2020.beta.3", "main": "dist/index.js", "types": "dist/index.d.ts", + "type": "module", "dependencies": { "aws-sdk": "2.x", "bluebird": "x", diff --git a/components/persistor/test/animals.js b/components/persistor/test/animals.js index c3d8f314..20cece70 100644 --- a/components/persistor/test/animals.js +++ b/components/persistor/test/animals.js @@ -1,7 +1,8 @@ -var expect = require('chai').expect; -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); - +import { expect} from "chai"; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); /* Teacher Student Example */ var Animal = ObjectTemplate.create('Animal', { diff --git a/components/persistor/test/persist_banking.js b/components/persistor/test/persist_banking.js index 007e560f..5bc69ce0 100644 --- a/components/persistor/test/persist_banking.js +++ b/components/persistor/test/persist_banking.js @@ -4,9 +4,13 @@ * */ -var expect = require('chai').expect; -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +import {expect} from 'chai'; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +import MongoModule from 'mongodb'; +const {MongoClient} = MongoModule; var writing = true; /* PersistObjectTemplate.debug = function(m, t) { @@ -16,7 +20,8 @@ PersistObjectTemplate.debug = function(m, t) { } } */ -var Promise = require('bluebird'); +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; var Customer = PersistObjectTemplate.create('Customer', { init: function (first, middle, last) { @@ -231,7 +236,6 @@ var schema = { } } -var MongoClient = require('mongodb'); let db, client; function clearCollection(collectionName) { @@ -245,14 +249,17 @@ describe('Banking Example JS', function () { after('close db connection', function() { return client.close(); }); - it ('opens the database', function () { - return MongoClient.connect(`mongodb://${process.env.mongoHost}:27017/testpersist`).then(function (clientParam){ + it ('opens the database', async function () { + return MongoClient.connect(`mongodb://${process.env.mongoHost}:27017/testpersist`,{ useNewUrlParser: true }, function (error, clientParam){ + if(error) { + throw error; + } client = clientParam; - db = client.db(); + db = client.db('testpersist'); PersistObjectTemplate.setDB(db); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates - }).catch(function(e) {throw e;}); + }) }); it ('clears the bank', function () { diff --git a/components/persistor/test/persist_banking_pgsql.js b/components/persistor/test/persist_banking_pgsql.js index 6719a170..3970372e 100644 --- a/components/persistor/test/persist_banking_pgsql.js +++ b/components/persistor/test/persist_banking_pgsql.js @@ -4,14 +4,18 @@ * */ -var sinon = require('sinon'); -var LocalStorageDocClient = require('../dist/lib/remote-doc/remote-doc-clients/LocalStorageDocClient').LocalStorageDocClient; -var expect = require('chai').expect; -var util = require('util'); -var Promise = require('bluebird'); -var _ = require('underscore'); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +import sinon from 'sinon'; +import {LocalStorageDocClient } from '../dist/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.js'; +import {expect} from 'chai'; +import util from 'util' +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import * as _ from 'underscore'; +import SupertypeModule from '@haventech/supertype'; +var ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +import knex from 'knex'; var writing = true; var logLevel = process.env.logLevel || 'debug'; const sandbox = sinon.createSandbox(); @@ -367,7 +371,7 @@ function clearCollection(template) { } describe('Banking from pgsql Example persist_banking_pgsql', function () { - var knex; + var knexObj; var overrideProperyStub; beforeEach(function() { sandbox.spy(LocalStorageDocClient.prototype, 'uploadDocument'); @@ -383,7 +387,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { it ('opens the database Postgres', function () { return Promise.resolve() .then(function () { - knex = require('knex')({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -397,15 +401,15 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { persistorBucketName: 'test-bucket-persistor', persistorRemoteDocEnvironment: 'local' }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates }).catch(function(e) {throw e;}); }); var schemaTable = 'index_schema_history'; - it ('clears the bank', function () { + it ('clears the bank', function () { this.timeout(4000); - return knex.schema.dropTableIfExists(schemaTable) + return knexObj.schema.dropTableIfExists(schemaTable) .then(function () { return clearCollection(Role); }).then(function (count) { @@ -465,7 +469,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { // }); // }); - it ('can create the data', function () { + it ('can create the data', function () { // Setup customers and addresses sam = new Customer('Sam', 'M', 'Elsamman'); karen = new Customer('Karen', 'M', 'Burke'); @@ -507,17 +511,17 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { jointAccount.debit(25); // Joint has 125 }); - it('both accounts have the right balance', function () { + it ('both accounts have the right balance', function () { expect(samsAccount.getBalance()).to.equal(100); expect(jointAccount.getBalance()).to.equal(125); }); - it('check server side fetch property..', function () { + it ('check server side fetch property..', function () { return samsAccount.addressFetch(0, 1).then(function(address) { expect(util.inspect(address)).to.not.equal(''); }) }); - it('can insert', function (done) { + it ('can insert', function (done) { PersistObjectTemplate.begin(); sam.setDirty(); ashling.setDirty(); @@ -525,9 +529,10 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { PersistObjectTemplate.end().then(function(result) { expect(result).to.equal(true); done(); - }).catch(function(e) {done(e)}); + }).catch(function(e) { + done(e)}); }); - it('Accounts have addresses', function (done) { + it ('Accounts have addresses', function (done) { Account.getFromPersistWithQuery(null, {address: true, transactions: false, fromAccountTransactions: false}).then (function (accounts) { expect(accounts.length).to.equal(2); expect(accounts[0].address.__template__.__name__).to.equal('Address'); @@ -1008,7 +1013,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { return Customer.getFromPersistWithId(sam._id).then (function (sam) { customer = sam; expect(customer.secondaryAddresses[0].city).to.equal('Red Hook'); - return knex('address').where({'_id': customer.secondaryAddresses[0]._id}).update({'__version__': 999}); + return knexObj('address').where({'_id': customer.secondaryAddresses[0]._id}).update({'__version__': 999}); }).then(function () { return customer.secondaryAddresses[0].isStale() }).then(function(stale) { @@ -1024,7 +1029,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { it('Can transact', function () { var customer; var preSave = false; - this.dirtyCount = 0; + var dirtyCount = 0; return Customer.getFromPersistWithId(sam._id).then (function (c) { customer = c; expect(customer.secondaryAddresses[0].city).to.equal('Red Hook'); @@ -1038,7 +1043,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { txn.preSave = function () {preSave = true}; txn.postSave = function (txn) { - this.dirtyCount = _.toArray(txn.savedObjects).length + dirtyCount = _.toArray(txn.savedObjects).length }.bind(this); return PersistObjectTemplate.end(txn); }).then(function () { @@ -1047,7 +1052,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { expect(customer.secondaryAddresses[0].city).to.equal('Rhinebeck'); expect(customer.primaryAddresses[0].city).to.equal('The Big Apple'); expect(preSave).to.equal(true); - expect(this.dirtyCount).to.equal(2); + expect(dirtyCount).to.equal(2); }).catch(function(e) { throw e; }); @@ -1069,7 +1074,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { txn = PersistObjectTemplate.begin(); customer.secondaryAddresses[0].setDirty(txn); customer.primaryAddresses[0].setDirty(txn); - return knex('address').where({'_id': customer.primaryAddresses[0]._id}).update({'__version__': 999}); + return knexObj('address').where({'_id': customer.primaryAddresses[0]._id}).update({'__version__': 999}); }).then(function () { return PersistObjectTemplate.end(txn); }).catch(function (e) { @@ -1398,7 +1403,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); }); diff --git a/components/persistor/test/persist_banking_s3.js b/components/persistor/test/persist_banking_s3.js index e738167a..ba377ecc 100644 --- a/components/persistor/test/persist_banking_s3.js +++ b/components/persistor/test/persist_banking_s3.js @@ -2,12 +2,16 @@ * Banking example shows PersistObjectTemplate * with remote object storage using S3RemoteDocClient */ -const sinon = require('sinon'); -const S3RemoteDocClient = require('../dist/lib/remote-doc/remote-doc-clients/S3RemoteDocClient').S3RemoteDocClient; -const expect = require('chai').expect; -const AssertionError = require('chai').AssertionError; -const ObjectTemplate = require('@haventech/supertype').default; -const PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +import sinon from 'sinon'; +import { S3RemoteDocClient } from '../dist/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.js'; + +import {expect, AssertionError} from 'chai'; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + +import knex from 'knex'; const logLevel = process.env.logLevel || 'debug'; PersistObjectTemplate.debugInfo = 'api;conflict;write;read;data';//'api;io'; @@ -52,7 +56,7 @@ function clearCollection(template) { } describe('Banking from pgsql Example persist_banking_s3', function () { - let knex; + let knexObj; afterEach(function() { sinon.restore(); @@ -61,7 +65,7 @@ describe('Banking from pgsql Example persist_banking_s3', function () { let noBankingDocumentCustomer; before(async () => { - knex = require('knex')({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -76,14 +80,14 @@ describe('Banking from pgsql Example persist_banking_s3', function () { persistorRemoteDocEnvironment: 'S3', persistorRemoteDocHostURL: 'https://localstack.com' }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates this.timeout(4000); const schemaTable = 'index_schema_history'; - await knex.schema.dropTableIfExists(schemaTable) + await knexObj.schema.dropTableIfExists(schemaTable) const count = await clearCollection(Customer); expect(count).to.equal(0); @@ -239,6 +243,6 @@ describe('Banking from pgsql Example persist_banking_s3', function () { }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); }); diff --git a/components/persistor/test/persist_fetch.js b/components/persistor/test/persist_fetch.js index aa0df79d..7bcd3e3a 100644 --- a/components/persistor/test/persist_fetch.js +++ b/components/persistor/test/persist_fetch.js @@ -1,25 +1,24 @@ -var chai = require('chai'), - expect = require('chai').expect; - -var chaiAsPromised = require('chai-as-promised'); +import chai, {expect} from 'chai'; +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); - -var Promise = require('bluebird'); -var knexInit = require('knex'); -var knex; - - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import knex from 'knex'; +var knexObj; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; var schema = {}; var schemaTable = 'index_schema_history'; var Phone, Address, Employee, empId, addressId, phoneId, Role, AddressType; -var PersistObjectTemplate, ObjectTemplate; +var PersistObjectTemplate; describe('persist fetch', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -30,26 +29,25 @@ describe('persist fetch', function () { }); return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_address') + return knexObj.schema.dropTableIfExists('tx_address') }).then(function () { - return knex.schema.dropTableIfExists('tx_phone') + return knexObj.schema.dropTableIfExists('tx_phone') }).then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }).then(function () { - return knex.schema.dropTableIfExists('tx_address_type') + return knexObj.schema.dropTableIfExists('tx_address_type') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = require('@haventech/supertype').default; - PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); + PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.Address = {}; @@ -150,7 +148,7 @@ describe('persist fetch', function () { emp.roles.push(role2); (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -185,19 +183,19 @@ describe('persist fetch', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_address') + return knexObj.schema.dropTableIfExists('tx_address') }).then(function () { - return knex.schema.dropTableIfExists('tx_phone') + return knexObj.schema.dropTableIfExists('tx_phone') }).then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }).then(function () { - return knex.schema.dropTableIfExists('tx_address_type') + return knexObj.schema.dropTableIfExists('tx_address_type') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }); it('check basic fetch without fetch spec should not return the records', function () { diff --git a/components/persistor/test/persist_fetch_children.js b/components/persistor/test/persist_fetch_children.js index ee14675b..ee8ac784 100644 --- a/components/persistor/test/persist_fetch_children.js +++ b/components/persistor/test/persist_fetch_children.js @@ -1,24 +1,26 @@ -var chai = require('chai'), - expect = require('chai').expect; +import chai, {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var Promise = require('bluebird'); - -var knexInit = require('knex'); -var knex; - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import knex from 'knex'; +var knexObj; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); var schema = {}; var schemaTable = 'index_schema_history'; var Employee, Department, Role, roleId, EmployeeRef; -var PersistObjectTemplate, ObjectTemplate; +// var PersistObjectTemplate, ObjectTemplate; describe('persistor fetch children', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -29,22 +31,21 @@ describe('persistor fetch children', function () { }); return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }).then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_employee_ref') + return knexObj.schema.dropTableIfExists('tx_employee_ref') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = require('@haventech/supertype').default; - PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); + PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.EmployeeRef = {}; @@ -126,7 +127,7 @@ describe('persistor fetch children', function () { emp.referral = referral; (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -158,15 +159,15 @@ describe('persistor fetch children', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }).then(function () { - return knex.schema.dropTableIfExists('tx_employee_ref') + return knexObj.schema.dropTableIfExists('tx_employee_ref') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }); it('load intermediate objects first and then try to load the parents ', function () { diff --git a/components/persistor/test/persist_idmap.js b/components/persistor/test/persist_idmap.js index 0d8401ff..41a32cf0 100644 --- a/components/persistor/test/persist_idmap.js +++ b/components/persistor/test/persist_idmap.js @@ -1,7 +1,8 @@ -var expect = require('chai').expect; -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); - +import {expect} from 'chai'; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from "../dist/index.js"; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); var Address = PersistObjectTemplate.create('Address', {}); var Customer = PersistObjectTemplate.create('Customer', { @@ -21,7 +22,7 @@ var schema = { } } -var MongoClient = require('mongodb'); +import MongoClient from 'mongodb'; var db, client; function clearCollection(collectionName) { diff --git a/components/persistor/test/persist_newapi_extend.js b/components/persistor/test/persist_newapi_extend.js index 444b8d3c..0c9a8d14 100644 --- a/components/persistor/test/persist_newapi_extend.js +++ b/components/persistor/test/persist_newapi_extend.js @@ -1,16 +1,16 @@ -var chai = require('chai'), - expect = require('chai').expect; +import chai, {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var Promise = require('bluebird'); - -var knexInit = require('knex'); -var knex; - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import knex from 'knex'; +var knexObj; +import SupertypeModule from '@haventech/supertype'; +import * as index from "../dist/index.js"; var schema = {}; var schemaTable = 'index_schema_history'; var Employee, Person, Manager, empId, Address; @@ -19,7 +19,7 @@ var PersistObjectTemplate, ObjectTemplate; describe('persist newapi extend', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -28,15 +28,15 @@ describe('persist newapi extend', function () { password: process.env.dbPassword, } }); - return Promise.all([knex.schema.dropTableIfExists('tx_person'), - knex.schema.dropTableIfExists(schemaTable)]); + return Promise.all([knexObj.schema.dropTableIfExists('tx_person'), + knexObj.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = require('@haventech/supertype').default; - PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = SupertypeModule.default; + PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); schema.Person = {}; schema.Person.table = 'tx_person'; schema.Person.documentOf = 'tx_person'; @@ -88,7 +88,7 @@ describe('persist newapi extend', function () { emp.manager = manager; (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -119,8 +119,8 @@ describe('persist newapi extend', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knex.schema.dropTableIfExists('tx_person'), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists('tx_person'), + knexObj.schema.dropTableIfExists(schemaTable)]); }); it('persistorFetchById without fetch spec should not return the records', function () { diff --git a/components/persistor/test/persist_newapi_tests.js b/components/persistor/test/persist_newapi_tests.js index 64681daf..ae1a9e36 100644 --- a/components/persistor/test/persist_newapi_tests.js +++ b/components/persistor/test/persist_newapi_tests.js @@ -1,16 +1,16 @@ -var chai = require('chai'), - expect = require('chai').expect; +import chai, {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var Promise = require('bluebird'); - -var knexInit = require('knex'); -var knex; - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import knex from 'knex'; +var knexObj; +import SupertypeModule from '@haventech/supertype'; +import * as index from '../dist/index.js'; var schema = {}; var schemaTable = 'index_schema_history'; var Phone, Address, Employee, empId, addressId, phoneId, Role; @@ -18,7 +18,7 @@ var PersistObjectTemplate, ObjectTemplate; describe('persist newapi tests', function () { before('drop schema table once per test suit', function() { - knex = knexInit({ + knexObj = knex({ client: 'pg', debug: true, connection: { @@ -30,24 +30,24 @@ describe('persist newapi tests', function () { }); return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_address') + return knexObj.schema.dropTableIfExists('tx_address') }).then(function () { - return knex.schema.dropTableIfExists('tx_phone') + return knexObj.schema.dropTableIfExists('tx_phone') }).then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = require('@haventech/supertype').default; - PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = SupertypeModule.default; + PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.Address = {}; @@ -128,7 +128,7 @@ describe('persist newapi tests', function () { emp.roles.push(role2); (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -150,7 +150,7 @@ describe('persist newapi tests', function () { } function addConstraint() { - return knex.raw('ALTER TABLE tx_role ADD CONSTRAINT namechk CHECK (char_length(name) <= 50);') + return knexObj.raw('ALTER TABLE tx_role ADD CONSTRAINT namechk CHECK (char_length(name) <= 50);') } function createRecords() { @@ -169,17 +169,17 @@ describe('persist newapi tests', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knex.schema.dropTableIfExists('tx_employee') + knexObj.schema.dropTableIfExists('tx_employee') .then(function () { - return knex.schema.dropTableIfExists('tx_address') + return knexObj.schema.dropTableIfExists('tx_address') }).then(function () { - return knex.schema.dropTableIfExists('tx_phone') + return knexObj.schema.dropTableIfExists('tx_phone') }).then(function () { - return knex.schema.dropTableIfExists('tx_department') + return knexObj.schema.dropTableIfExists('tx_department') }).then(function () { - return knex.schema.dropTableIfExists('tx_role') + return knexObj.schema.dropTableIfExists('tx_role') }), - knex.schema.dropTableIfExists(schemaTable)]); + knexObj.schema.dropTableIfExists(schemaTable)]); }); it('persistorFetchById without fetch spec should not return the records', function () { @@ -507,7 +507,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); @@ -532,7 +532,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); @@ -553,7 +553,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); diff --git a/components/persistor/test/persist_parent_subset.js b/components/persistor/test/persist_parent_subset.js index b758f9a2..dadff9a7 100644 --- a/components/persistor/test/persist_parent_subset.js +++ b/components/persistor/test/persist_parent_subset.js @@ -1,18 +1,20 @@ /*eslint-disable no-unused-vars*/ //need to disable this rule as the template definitions for testing are not being used -var chai = require('chai'), - expect = require('chai').expect; +import chai, {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import knex from 'knex'; +import SupertypeModule from '@haventech/supertype'; +const ObjectTemplate = SupertypeModule.default; +import * as index from '../dist/index.js'; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); -var Promise = require('bluebird'); -var knexInit = require('knex'); -var knex; +var knexObj; var schema = {}; var schemaTable = 'index_schema_history'; @@ -20,7 +22,7 @@ var schemaTable = 'index_schema_history'; describe('persist parent subset', function () { before('arrange', function (done) { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -30,26 +32,26 @@ describe('persist parent subset', function () { } }); (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); })(); return Promise.all([ - knex.schema.dropTableIfExists('employee_parent').then(function () { - return knex.schema.dropTableIfExists('employee_parent'); + knexObj.schema.dropTableIfExists('employee_parent').then(function () { + return knexObj.schema.dropTableIfExists('employee_parent'); }), - knex.schema.dropTableIfExists('employee_subset').then(function () { - return knex.schema.dropTableIfExists('employee_subset'); + knexObj.schema.dropTableIfExists('employee_subset').then(function () { + return knexObj.schema.dropTableIfExists('employee_subset'); }), - knex.schema.dropTableIfExists('tx_employee_parentchild_subset').then(function () { - return knex.schema.dropTableIfExists('tx_employee_parentchild_subset'); + knexObj.schema.dropTableIfExists('tx_employee_parentchild_subset').then(function () { + return knexObj.schema.dropTableIfExists('tx_employee_parentchild_subset'); }), - knex.schema.dropTableIfExists(schemaTable) + knexObj.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); it('Creating multiple levels objects, only parent object can have the schema entry', function () { diff --git a/components/persistor/test/persist_polymorphic.js b/components/persistor/test/persist_polymorphic.js index a12f3919..607b1bf8 100644 --- a/components/persistor/test/persist_polymorphic.js +++ b/components/persistor/test/persist_polymorphic.js @@ -1,18 +1,20 @@ /*Need to skip unused variables as object hierarchies are synchronized based on these definitions*/ /*eslint no-unused-vars: 0*/ -var chai = require('chai'); -var expect = require('chai').expect; +import chai from 'chai'; +import {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); - -var Promise = require('bluebird'); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import SupertypeModule from '@haventech/supertype'; +import * as index from '../dist/index.js'; +var ObjectTemplate = SupertypeModule.default; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); var Parent = PersistObjectTemplate.create('Parent', { @@ -483,12 +485,12 @@ var schema = { } } -var knexInit = require('knex'); -var knex; +import knex from 'knex'; +var knexObj; var schemaTable = 'index_schema_history'; describe('type mapping tests for parent/child relations', function () { before('arrange', function (done) { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -498,7 +500,7 @@ describe('type mapping tests for parent/child relations', function () { } }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates @@ -512,15 +514,15 @@ describe('type mapping tests for parent/child relations', function () { PersistObjectTemplate.dropKnexTable(Scenario_2_ParentWithMultiChildAttheSameLevel), PersistObjectTemplate.dropKnexTable(ParentWithMultiChildAttheSameLevelWithIndexes), PersistObjectTemplate.dropKnexTable(parentSynchronize), - knex.schema.dropTableIfExists('NewTableWithComments'), - knex.schema.dropTableIfExists('NewTableWithComments1'), - knex.schema.dropTableIfExists('ExistingTableWithComments'), - knex.schema.dropTableIfExists('ExistingTableWithAField'), - knex.schema.dropTableIfExists(schemaTable) + knexObj.schema.dropTableIfExists('NewTableWithComments'), + knexObj.schema.dropTableIfExists('NewTableWithComments1'), + knexObj.schema.dropTableIfExists('ExistingTableWithComments'), + knexObj.schema.dropTableIfExists('ExistingTableWithAField'), + knexObj.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }) after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); it('Parent type with an associated child will add add the fields from the child tables to the parent table', function (done) { @@ -531,7 +533,7 @@ describe('type mapping tests for parent/child relations', function () { it('Both parent and child index definitions are added to the parent table', function () { return PersistObjectTemplate.createKnexTable(Parent_Idx).then(function () { - return knex.schema.table('Parent_Idx', function (table) { + return knexObj.schema.table('Parent_Idx', function (table) { table.dropIndex([], 'idx_parent_idx_id_name'); }).should.eventually.have.property('command') }); @@ -547,7 +549,7 @@ describe('type mapping tests for parent/child relations', function () { // it('When trying to create child table, system should create the parent table and the corresonding indexes in the object graph must be added to the table', function () { // return PersistObjectTemplate.createKnexTable(ChildToCreate1).then(function () { - // return knex.schema.table('ChildCreatesThisParent1', function (table) { + // return knexObj.schema.table('ChildCreatesThisParent1', function (table) { // table.dropIndex([], 'idx_childcreatesthisparent1_dob'); // }).should.eventually.have.property('command') // }) @@ -561,7 +563,7 @@ describe('type mapping tests for parent/child relations', function () { // it('Multilevel inheritance with indexes defined at different levels', function () { // return PersistObjectTemplate.createKnexTable(ParentMulteLevelIndx1).then(function () { - // return knex.schema.table('ParentMulteLevelIndx1', function (table) { + // return knexObj.schema.table('ParentMulteLevelIndx1', function (table) { // table.dropIndex([], 'idx_parentmultelevelindx1_dob'); // }).should.eventually.have.property('command') // }) @@ -625,7 +627,7 @@ describe('type mapping tests for parent/child relations', function () { schema.NewTableWithComments = {documentOf: 'pg/NewTableWithComments'}; PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(NewTableWithComments); - const results = await knex('pg_catalog.pg_description') + const results = await knexObj('pg_catalog.pg_description') .count() .where('description', 'like', '%comment on a new table...%') expect(results).to.deep.include({ count: '1' }); @@ -694,7 +696,7 @@ describe('type mapping tests for parent/child relations', function () { }); PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(ExistingTableWithComments, null, true); - const results = await knex('pg_catalog.pg_description') + const results = await knexObj('pg_catalog.pg_description') .count() .where('description', 'like', '%comment on an existing table%'); @@ -721,7 +723,7 @@ describe('type mapping tests for parent/child relations', function () { PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(ExistingTableWithAField, null, true); - const results = await knex('pg_catalog.pg_description') + const results = await knexObj('pg_catalog.pg_description') .count() .where('description', 'like', '%Adding a new field comment%'); expect(results).to.deep.include({ count: '1' }); @@ -729,8 +731,8 @@ describe('type mapping tests for parent/child relations', function () { }); it('Adding a foreign key refrence in children', function () { - var ObjectTemplate1 = require('@haventech/supertype').default; - var PersistObjectTemplate1 = require('../dist/index.js')(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = SupertypeModule.default; + var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); var BaseTemplate_FK_on_Child = PersistObjectTemplate1.create('BaseTemplate_FK_on_Child', { name: {type: String, value: 'Test Parent'} }); @@ -760,22 +762,22 @@ describe('type mapping tests for parent/child relations', function () { schema.Address_FK_on_Child = {}; schema.Address_FK_on_Child = {documentOf: 'address_ref_tbl'}; - PersistObjectTemplate1.setDB(knex, PersistObjectTemplate1.DB_Knex); + PersistObjectTemplate1.setDB(knexObj, PersistObjectTemplate1.DB_Knex); PersistObjectTemplate1.setSchema(schema); PersistObjectTemplate1.performInjections(); PersistObjectTemplate1._verifySchema(); }); it('getDB without setting database', function () { - var ObjectTemplate1 = require('@haventech/supertype').default; - var PersistObjectTemplate1 = require('../dist/index.js')(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = SupertypeModule.default; + var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); expect(PersistObjectTemplate1.getDB.bind(this, 'pg')).to.throw('You must do PersistObjectTempate.setDB'); }); it('without schema..', function () { - var ObjectTemplate1 = require('@haventech/supertype').default; - var PersistObjectTemplate1 = require('../dist/index.js')(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = SupertypeModule.default; + var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); var emptySchema = PersistObjectTemplate1._verifySchema(); expect(emptySchema).to.be.an('undefined'); }); diff --git a/components/persistor/test/persist_schema_indexdefchanges.js b/components/persistor/test/persist_schema_indexdefchanges.js index 3aa0ddeb..a3172c40 100644 --- a/components/persistor/test/persist_schema_indexdefchanges.js +++ b/components/persistor/test/persist_schema_indexdefchanges.js @@ -1,15 +1,15 @@ -var chai = require('chai'); -var expect = require('chai').expect; - -var chaiAsPromised = require('chai-as-promised'); +import chai, {expect} from 'chai'; +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var Promise = require('bluebird'); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import SupertypeModule from '@haventech/supertype'; +var ObjectTemplate = SupertypeModule.default; +import * as index from '../dist/index.js'; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); var Address = PersistObjectTemplate.create('Address', { id: { type: Number }, @@ -205,15 +205,15 @@ var schema = { ] } } -var knexInit = require('knex'); -var knex; +import knex from 'knex'; +var knexObj; var schemaTable = 'index_schema_history'; describe('index synchronization checks', function () { var checkKeyExistsInSchema; var getIndexes; before('arrange', function (done) { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -224,7 +224,7 @@ describe('index synchronization checks', function () { }); checkKeyExistsInSchema = function(key) { - return knex(schemaTable) + return knexObj(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -236,7 +236,7 @@ describe('index synchronization checks', function () { }; getIndexes = function(key) { - return knex(schemaTable) + return knexObj(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -247,14 +247,14 @@ describe('index synchronization checks', function () { }; (function () { - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates })(); return Promise.all([ - knex.schema.dropTableIfExists('notificationCheck'), - knex.schema.dropTableIfExists('caseChangeCheck'), + knexObj.schema.dropTableIfExists('notificationCheck'), + knexObj.schema.dropTableIfExists('caseChangeCheck'), PersistObjectTemplate.dropKnexTable(Employee), //PersistObjectTemplate.dropKnexTable(Manager), PersistObjectTemplate.dropKnexTable(BoolTable), @@ -263,12 +263,12 @@ describe('index synchronization checks', function () { PersistObjectTemplate.dropKnexTable(IndexSyncTable), PersistObjectTemplate.dropKnexTable(MultipleIndexTable), PersistObjectTemplate.dropKnexTable(Parent), - knex(schemaTable).del(), - knex.schema.dropTableIfExists('IndexSyncTable') + knexObj(schemaTable).del(), + knexObj.schema.dropTableIfExists('IndexSyncTable') ]).should.notify(done); }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); diff --git a/components/persistor/test/persist_schema_updates.js b/components/persistor/test/persist_schema_updates.js index 5a686bfd..6dc288ba 100644 --- a/components/persistor/test/persist_schema_updates.js +++ b/components/persistor/test/persist_schema_updates.js @@ -2,18 +2,20 @@ * Created by RSagiraji on 10/29/15. */ -var chai = require('chai'); -var expect = require('chai').expect; +import chai from 'chai'; +import {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); -var Promise = require('bluebird'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); - +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import SupertypeModule from '@haventech/supertype'; +var ObjectTemplate = SupertypeModule.default; +import * as index from '../dist/index.js'; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); var Employee = PersistObjectTemplate.create('Employee', { id: {type: Number}, @@ -153,13 +155,13 @@ var schema = { } } -var knexInit = require('knex'); -var knex; +import knex from 'knex'; +var knexObj; var schemaTable = 'index_schema_history'; describe('schema update checks', function () { before('arrange', function (done) { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -169,13 +171,13 @@ describe('schema update checks', function () { } }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates return Promise.all([ - knex.schema.dropTableIfExists('NewTable'), - knex.schema.dropTableIfExists('employee'), + knexObj.schema.dropTableIfExists('NewTable'), + knexObj.schema.dropTableIfExists('employee'), PersistObjectTemplate.dropKnexTable(Employee), PersistObjectTemplate.dropKnexTable(Manager), PersistObjectTemplate.dropKnexTable(BoolTable), @@ -183,24 +185,24 @@ describe('schema update checks', function () { PersistObjectTemplate.dropKnexTable(SingleIndexTable), PersistObjectTemplate.dropKnexTable(MultipleIndexTable), PersistObjectTemplate.dropKnexTable(Parent), - knex.schema.dropTableIfExists('employee'), - knex.schema.dropTableIfExists('ChangeFieldTypeTable'), - knex.schema.dropTableIfExists('DateTable'), - knex.schema.dropTableIfExists('CreatingTable'), - knex.schema.dropTableIfExists('CreateNewType'), - knex.schema.dropTableIfExists('newTableWithoutTableDef'), - knex.schema.dropTableIfExists('IndexSyncTable').then(function() { - knex.schema.createTableIfNotExists('IndexSyncTable', function (table) { + knexObj.schema.dropTableIfExists('employee'), + knexObj.schema.dropTableIfExists('ChangeFieldTypeTable'), + knexObj.schema.dropTableIfExists('DateTable'), + knexObj.schema.dropTableIfExists('CreatingTable'), + knexObj.schema.dropTableIfExists('CreateNewType'), + knexObj.schema.dropTableIfExists('newTableWithoutTableDef'), + knexObj.schema.dropTableIfExists('IndexSyncTable').then(function() { + knexObj.schema.createTableIfNotExists('IndexSyncTable', function (table) { table.double('id'); table.text('name') }) }), - knex.schema.dropTableIfExists(schemaTable) + knexObj.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); @@ -212,7 +214,7 @@ describe('schema update checks', function () { }); it('change to incompatible type and check for exception', function () { - return knex.schema.createTableIfNotExists('ChangeFieldTypeTable', function (table) { + return knexObj.schema.createTableIfNotExists('ChangeFieldTypeTable', function (table) { table.integer('id'); table.text('name') }).then(function () { @@ -246,7 +248,7 @@ describe('schema update checks', function () { it('synchronize the index definition and check if the index exists on the table by dropping the index', function () { return PersistObjectTemplate.synchronizeKnexTableFromTemplate(IndexSyncTable).then(function () { - return knex.schema.table('IndexSyncTable', function (table) { + return knexObj.schema.table('IndexSyncTable', function (table) { table.dropIndex([], 'idx_indexsynctable_name'); }).should.eventually.have.property('command') }); @@ -300,7 +302,7 @@ describe('schema update checks', function () { PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(newTablePrimIndex); - const records = await knex(schemaTable).select('schema').orderBy('sequence_id', 'desc').limit(1); + const records = await knexObj(schemaTable).select('schema').orderBy('sequence_id', 'desc').limit(1); const result = records[0].schema; expect(result).contains('NewTablePrimIndex'); @@ -320,7 +322,7 @@ describe('schema update checks', function () { schema.newTable.indexes = JSON.parse('[{"name": "single_index","def": {"columns": ["id", "name"],"type": "unique"}}]'); PersistObjectTemplate._verifySchema(); return PersistObjectTemplate.synchronizeKnexTableFromTemplate(newTable, null, true).then(function () { - return knex(schemaTable) + return knexObj(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -341,8 +343,8 @@ describe('schema update checks', function () { }); it('create a table with multiple indexes', function () { - //don't like to check the result this way.. but I felt that using knex in the test cases is equally bad - //and the knex responses are not clean, will check with Sam and make necessary changes.. + //don't like to check the result this way.. but I felt that using knexObj in the test cases is equally bad + //and the knexObj responses are not clean, will check with Sam and make necessary changes.. return PersistObjectTemplate.createKnexTable(MultipleIndexTable).then(function () { return PersistObjectTemplate.checkForKnexTable(MultipleIndexTable).should.eventually.equal(true); }) diff --git a/components/persistor/test/persist_transaction.js b/components/persistor/test/persist_transaction.js index 242d065e..66657d36 100644 --- a/components/persistor/test/persist_transaction.js +++ b/components/persistor/test/persist_transaction.js @@ -1,23 +1,26 @@ -var chai = require('chai'), - expect = require('chai').expect; +import chai from 'chai'; +import {expect} from 'chai'; -var chaiAsPromised = require('chai-as-promised'); +import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../dist/index.js')(ObjectTemplate, null, ObjectTemplate); -var Promise = require('bluebird'); -var knexInit = require('knex'); -var knex; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import SupertypeModule from '@haventech/supertype'; +var ObjectTemplate = SupertypeModule.default; +import * as index from '../dist/index.js'; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +import knex from 'knex'; +var knexObj; var schema = {}; var schemaTable = 'index_schema_history'; describe('persist transaction', function () { before('arrange', function (done) { - knex = knexInit({ + knexObj = knex({ client: 'pg', connection: { host: process.env.dbPath, @@ -26,33 +29,33 @@ describe('persist transaction', function () { password: process.env.dbPassword, } }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); return Promise.all([ - knex.schema.dropTableIfExists('tx_employee').then(function() { - return knex.schema.dropTableIfExists('tx_address'); + knexObj.schema.dropTableIfExists('tx_employee').then(function() { + return knexObj.schema.dropTableIfExists('tx_address'); }), - knex.schema.dropTableIfExists('tx_employee1').then(function() { - return knex.schema.dropTableIfExists('tx_address1'); + knexObj.schema.dropTableIfExists('tx_employee1').then(function() { + return knexObj.schema.dropTableIfExists('tx_address1'); }), - knex.schema.dropTableIfExists('tx_employee2').then(function() { - return knex.schema.dropTableIfExists('tx_address2'); + knexObj.schema.dropTableIfExists('tx_employee2').then(function() { + return knexObj.schema.dropTableIfExists('tx_address2'); }), - knex.schema.dropTableIfExists('tx_delete_employee').then(function() { - return knex.schema.dropTableIfExists('tx_delete_address'); + knexObj.schema.dropTableIfExists('tx_delete_employee').then(function() { + return knexObj.schema.dropTableIfExists('tx_delete_address'); }), - knex.schema.dropTableIfExists('tx_persistdelete_address').then(function() { - return knex.schema.dropTableIfExists('tx_persistdelete_employee'); + knexObj.schema.dropTableIfExists('tx_persistdelete_address').then(function() { + return knexObj.schema.dropTableIfExists('tx_persistdelete_employee'); }), - knex.schema.dropTableIfExists('tx_deletewot_employee'), - knex.schema.dropTableIfExists(schemaTable) + knexObj.schema.dropTableIfExists('tx_deletewot_employee'), + knexObj.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knex.destroy(); + return knexObj.destroy(); }); it('create a simple table', function () { @@ -91,7 +94,7 @@ describe('persist transaction', function () { } function createFKs() { - return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address2 FOREIGN KEY (address_id) references public.tx_address("_id")'); + return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address2 FOREIGN KEY (address_id) references public.tx_address("_id")'); } function syncTable(template) { @@ -100,7 +103,7 @@ describe('persist transaction', function () { function openTransaction() { var tx = PersistObjectTemplate.begin(); - tx.knex = knex.transaction(transaction); + tx.knexObj = knexObj.transaction(transaction); return tx; } @@ -159,7 +162,7 @@ describe('persist transaction', function () { // } // function createFKs() { - // return knex.raw('ALTER TABLE public.tx_employee1 ADD CONSTRAINT fk_tx_employee1_address2 FOREIGN KEY (address_id) references public.tx_address1("_id") deferrable initially deferred'); + // return knexObj.raw('ALTER TABLE public.tx_employee1 ADD CONSTRAINT fk_tx_employee1_address2 FOREIGN KEY (address_id) references public.tx_address1("_id") deferrable initially deferred'); // } // function syncTable(template) { @@ -224,7 +227,7 @@ describe('persist transaction', function () { function createFKs() { - return knex.raw('ALTER TABLE public.tx_employee2 ADD CONSTRAINT fk_tx_employee2_address2 FOREIGN KEY (address_id) references public.tx_address2("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_employee2 ADD CONSTRAINT fk_tx_employee2_address2 FOREIGN KEY (address_id) references public.tx_address2("_id") deferrable initially deferred'); } function syncTable(template) { @@ -292,7 +295,7 @@ describe('persist transaction', function () { function createFKs() { - return knex.raw('ALTER TABLE public.tx_delete_employee ADD CONSTRAINT fk_tx_delete_employee_address2 FOREIGN KEY (address_id) references public.tx_delete_address("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_delete_employee ADD CONSTRAINT fk_tx_delete_employee_address2 FOREIGN KEY (address_id) references public.tx_delete_address("_id") deferrable initially deferred'); } function syncTable(template) { @@ -309,8 +312,8 @@ describe('persist transaction', function () { function deleteCheck() { return EmployeeDel.deleteFromPersistWithQuery({name: 'Kumar'}).then(function(count) { expect(count).to.equal(1); - var func = function(knex) { - knex.where({city: 'New York'}); + var func = function(knexObj) { + knexObj.where({city: 'New York'}); }; return AddressDel.deleteFromPersistWithQuery(func).then(function(count) { @@ -455,7 +458,7 @@ describe('persist transaction', function () { var sql = 'select description from pg_description ' + 'join pg_class on pg_description.objoid = pg_class.oid where relname = \'tx_cascadetouch_address\' ' + 'and description like \'%comment to include%\''; - return knex.raw(sql); + return knexObj.raw(sql); }).then(function(columnDef) { expect(columnDef.rows.length).is.equal(1); }).catch(function(e) { @@ -511,7 +514,7 @@ describe('persist transaction', function () { emp.cascadeSave(txn); return PersistObjectTemplate.end(txn); }).then(function() { - return knex.raw('ALTER TABLE public.tx_persistdelete_address ADD CONSTRAINT fk_tx_delete_employee_address2persistdelete FOREIGN KEY (employee_id) references public.tx_persistdelete_employee("_id") deferrable initially deferred'); + return knexObj.raw('ALTER TABLE public.tx_persistdelete_address ADD CONSTRAINT fk_tx_delete_employee_address2persistdelete FOREIGN KEY (employee_id) references public.tx_persistdelete_employee("_id") deferrable initially deferred'); }).then(checkPersistDeletes.bind(this)); function checkPersistDeletes() { diff --git a/components/persistor/test/supertype/Account.ts b/components/persistor/test/supertype/Account.ts index 3ba1dc69..f740b0ee 100644 --- a/components/persistor/test/supertype/Account.ts +++ b/components/persistor/test/supertype/Account.ts @@ -1,7 +1,7 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Role} from './Role'; -import {Address} from './Address'; -import {Transaction, Debit, Credit, Xfer} from './Transaction'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Role} from './Role.js'; +import {Address} from './Address.js'; +import {Transaction, Debit, Credit, Xfer} from './Transaction.js'; @supertypeClass({toServer: true, toClient: false}) export class Account extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Address.ts b/components/persistor/test/supertype/Address.ts index fdaf5e16..03f431d9 100644 --- a/components/persistor/test/supertype/Address.ts +++ b/components/persistor/test/supertype/Address.ts @@ -1,7 +1,7 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Customer} from './Customer'; -import {Account} from './Account'; -import {ReturnedMail} from './ReturnedMail'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Customer} from './Customer.js'; +import {Account} from './Account.js'; +import {ReturnedMail} from './ReturnedMail.js'; import "reflect-metadata"; @supertypeClass diff --git a/components/persistor/test/supertype/Customer.ts b/components/persistor/test/supertype/Customer.ts index a2b8f69b..c75959e1 100644 --- a/components/persistor/test/supertype/Customer.ts +++ b/components/persistor/test/supertype/Customer.ts @@ -1,6 +1,6 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Role} from './Role'; -import {Address} from './Address'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Role} from './Role.js'; +import {Address} from './Address.js'; @supertypeClass export class Customer extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Employee.ts b/components/persistor/test/supertype/Employee.ts index 2272911c..66fbe1ee 100644 --- a/components/persistor/test/supertype/Employee.ts +++ b/components/persistor/test/supertype/Employee.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Responsibility} from './Responsibility'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Responsibility} from './Responsibility.js'; @supertypeClass export class Employee extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/ExtendedCustomer.ts b/components/persistor/test/supertype/ExtendedCustomer.ts index 2c534081..f8524a99 100644 --- a/components/persistor/test/supertype/ExtendedCustomer.ts +++ b/components/persistor/test/supertype/ExtendedCustomer.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Customer} from './Customer'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Customer} from './Customer.js'; @supertypeClass export class ExtendedCustomer extends Customer { diff --git a/components/persistor/test/supertype/Responsibility.ts b/components/persistor/test/supertype/Responsibility.ts index 4dac370d..420fb4a2 100644 --- a/components/persistor/test/supertype/Responsibility.ts +++ b/components/persistor/test/supertype/Responsibility.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Employee} from './Employee'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Employee} from './Employee.js'; @supertypeClass export class Responsibility extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/ReturnedMail.ts b/components/persistor/test/supertype/ReturnedMail.ts index da22cc70..e5fb7357 100644 --- a/components/persistor/test/supertype/ReturnedMail.ts +++ b/components/persistor/test/supertype/ReturnedMail.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Address} from './Address'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Address} from './Address.js'; @supertypeClass export class ReturnedMail extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Role.ts b/components/persistor/test/supertype/Role.ts index a5281a5d..b927bdb2 100644 --- a/components/persistor/test/supertype/Role.ts +++ b/components/persistor/test/supertype/Role.ts @@ -1,6 +1,6 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Customer} from './Customer'; -import {Account} from './Account'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Customer} from './Customer.js'; +import {Account} from './Account.js'; @supertypeClass export class Role extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Transaction.ts b/components/persistor/test/supertype/Transaction.ts index 754bb218..d9a7f26d 100644 --- a/components/persistor/test/supertype/Transaction.ts +++ b/components/persistor/test/supertype/Transaction.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; -import {Account} from './Account'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; +import {Account} from './Account.js'; @supertypeClass export class Transaction extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/one-to-manychecks.ts b/components/persistor/test/supertype/one-to-manychecks.ts index 51dc7bd2..51616d99 100644 --- a/components/persistor/test/supertype/one-to-manychecks.ts +++ b/components/persistor/test/supertype/one-to-manychecks.ts @@ -1,20 +1,29 @@ -declare function require(name:string); -var ObjectTemplate = require('@haventech/supertype').default; -var PersistObjectTemplate = require('../../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +// declare function require(name:string); +import SupertypeModule from '@haventech/supertype'; +var ObjectTemplate = SupertypeModule.default; +import * as index from '../../dist/index.js'; +var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +// var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +// var ObjectTemplate = require('@haventech/supertype').default; +// var PersistObjectTemplate = require('../../dist/index.js')(ObjectTemplate, null, ObjectTemplate); var logLevel = process.env.logLevel || 'debug'; PersistObjectTemplate.debugInfo = 'api;conflict;write;read;data';//'api;io'; PersistObjectTemplate.debugInfo = 'conflict;data';//'api;io'; PersistObjectTemplate.logger.setLevel(logLevel); +// import knex from 'knex'; +import * as knexModule from 'knex'; +const {knex }= knexModule; import { expect } from 'chai'; import * as mocha from 'mocha'; import * as _ from 'underscore'; -import {Employee} from "./Employee"; -import Promise = require('bluebird'); -import {Responsibility} from "./Responsibility"; +import {Employee} from "./Employee.js"; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import {Responsibility} from "./Responsibility.js"; var schema = { @@ -35,11 +44,11 @@ var schema = { describe('Banking from pgsql Example one-to-manychecks typescript', function () { - var knex; + var knexObj; before('arrange', function () { (function () { - knex = require('knex')({ + knexObj = knex({ client: 'pg', debug: true, connection: { @@ -50,7 +59,7 @@ describe('Banking from pgsql Example one-to-manychecks typescript', function () } }); - PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -62,9 +71,9 @@ describe('Banking from pgsql Example one-to-manychecks typescript', function () function cleanDB() { return Promise.all([ - knex.schema.dropTableIfExists('index_schema_history'), - knex.schema.dropTableIfExists('employee'), - knex.schema.dropTableIfExists('responsibility')]); + knexObj.schema.dropTableIfExists('index_schema_history'), + knexObj.schema.dropTableIfExists('employee'), + knexObj.schema.dropTableIfExists('responsibility')]); } function createTables() { diff --git a/components/persistor/test/supertype/persist_banking_pgsql.ts b/components/persistor/test/supertype/persist_banking_pgsql.ts index 1396e1da..b55eb3b4 100644 --- a/components/persistor/test/supertype/persist_banking_pgsql.ts +++ b/components/persistor/test/supertype/persist_banking_pgsql.ts @@ -13,12 +13,13 @@ persistor.logger.setLevel('debug'); import { expect } from 'chai'; import * as _ from 'underscore'; -import {Customer} from "./Customer"; -import {ExtendedCustomer} from "./ExtendedCustomer"; -import Promise = require('bluebird'); -import {Role} from "./Role"; -import {Account} from "./Account"; -import {Transaction, Xfer} from './Transaction'; +import {Customer} from "./Customer.js"; +import {ExtendedCustomer} from "./ExtendedCustomer.js"; +import bluebirdModule from 'bluebird'; +const {Promise} = bluebirdModule; +import {Role} from "./Role.js"; +import {Account} from "./Account.js"; +import {Transaction, Xfer} from './Transaction.js'; var schema = { Customer: { diff --git a/components/persistor/tsconfig.base.json b/components/persistor/tsconfig.base.json index dc22907a..7bcbb63c 100644 --- a/components/persistor/tsconfig.base.json +++ b/components/persistor/tsconfig.base.json @@ -1,10 +1,12 @@ { "compilerOptions": { - "module": "commonjs", + "module": "es2020", + "moduleResolution": "node16", "target": "es2020", "lib": ["es2015", "es2017", "es2020"], "noImplicitAny": false, "sourceMap": false, + "esModuleInterop": true, "typeRoots": [ "./node_modules/@types" ], diff --git a/components/persistor/tsconfig.json b/components/persistor/tsconfig.json index 34d03d3c..b509fd19 100644 --- a/components/persistor/tsconfig.json +++ b/components/persistor/tsconfig.json @@ -1,7 +1,22 @@ { "compilerOptions": { + "moduleResolution": "node16", + "target": "es2020", + "lib": ["es2015", "es2017", "dom", "es2020"], + "noImplicitAny": false, "outDir": "./dist", - "rootDir": "./" + "rootDir": "./", + "typeRoots": [ + "./node_modules/@types" + ], + "declaration": true, + "declarationDir": "dist", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "inlineSources": true, + "inlineSourceMap": true, + "useDefineForClassFields": false, + "esModuleInterop": true }, "extends": "./tsconfig.base.json", "include": [ From 1f33891bf7070d14b0c1ed233a50355ec57f9524 Mon Sep 17 00:00:00 2001 From: Kamran Date: Thu, 30 Mar 2023 12:10:32 -0400 Subject: [PATCH 2/2] Persistor updates --- components/persistor/index.d.ts | 10 +-- components/persistor/index.ts | 11 +-- components/persistor/lib/index.ts | 14 ++-- components/persistor/package.json | 1 - components/persistor/test/animals.js | 10 +-- components/persistor/test/persist_banking.js | 26 +++---- .../persistor/test/persist_banking_pgsql.js | 56 +++++++-------- .../persistor/test/persist_banking_s3.js | 27 ++++---- components/persistor/test/persist_fetch.js | 59 ++++++++-------- .../persistor/test/persist_fetch_children.js | 50 +++++++------- components/persistor/test/persist_idmap.js | 12 ++-- .../persistor/test/persist_newapi_extend.js | 36 +++++----- .../persistor/test/persist_newapi_tests.js | 59 ++++++++-------- .../persistor/test/persist_parent_subset.js | 39 ++++++----- .../persistor/test/persist_polymorphic.js | 66 +++++++++--------- .../test/persist_schema_indexdefchanges.js | 38 +++++------ .../persistor/test/persist_schema_updates.js | 60 ++++++++-------- .../persistor/test/persist_transaction.js | 68 +++++++++---------- .../persistor/test/supertype/Account.ts | 8 +-- .../persistor/test/supertype/Address.ts | 8 +-- .../persistor/test/supertype/Customer.ts | 6 +- .../persistor/test/supertype/Employee.ts | 4 +- .../test/supertype/ExtendedCustomer.ts | 4 +- .../test/supertype/Responsibility.ts | 4 +- .../persistor/test/supertype/ReturnedMail.ts | 4 +- components/persistor/test/supertype/Role.ts | 6 +- .../persistor/test/supertype/Transaction.ts | 4 +- .../test/supertype/one-to-manychecks.ts | 34 ++++------ .../test/supertype/persist_banking_pgsql.ts | 15 ++-- components/persistor/tsconfig.base.json | 7 +- components/persistor/tsconfig.json | 17 +---- 31 files changed, 358 insertions(+), 405 deletions(-) diff --git a/components/persistor/index.d.ts b/components/persistor/index.d.ts index 4b9a7691..dcf693aa 100644 --- a/components/persistor/index.d.ts +++ b/components/persistor/index.d.ts @@ -1,9 +1,5 @@ - -export {Persistable, ContainsPersistable, Persistor} from './lib/persistable.js'; +export {Persistable, ContainsPersistable, Persistor} from './lib/persistable'; export {Supertype} from '@haventech/supertype'; -export { Schema } from './lib/types/Schema.js'; +export { Schema } from './lib/types/Schema'; export function property(props?: Object); -export function supertypeClass(target?: any); -export function persObj(_ObjectTemplate: any, _RemoteObjectTemplate: any, baseClassForPersist: any); -// declare const _default: (_ObjectTemplate: any, _RemoteObjectTemplate: any, baseClassForPersist: any) => any; -// export default _default; \ No newline at end of file +export function supertypeClass(target?: any); \ No newline at end of file diff --git a/components/persistor/index.ts b/components/persistor/index.ts index 50c87a73..c24c25f9 100644 --- a/components/persistor/index.ts +++ b/components/persistor/index.ts @@ -1,8 +1,3 @@ -// export { default } from "./lib/index.js"; -// import indexTemplate from './lib/index.js'; -// export {indexTemplate}; - -export * from './lib/index.js'; -// export default indexTemplate; - -// module.exports = require('./lib/index.js') \ No newline at end of file +import * as index from './lib/index.js'; +export default index.default; +export * from './lib/index.js'; \ No newline at end of file diff --git a/components/persistor/lib/index.ts b/components/persistor/lib/index.ts index f49f362d..1f4c37e1 100644 --- a/components/persistor/lib/index.ts +++ b/components/persistor/lib/index.ts @@ -63,7 +63,7 @@ import knexUpdate from './knex/update.js'; import knexDB from './knex/db.js'; export { Schema } from './types/Schema.js'; -export function persObj(_ObjectTemplate, _RemoteObjectTemplate, baseClassForPersist) { //@TODO: Why is ObjectTemplate and RemoteObjectTemplate here? +export default function persist(_ObjectTemplate, _RemoteObjectTemplate, baseClassForPersist) { //@TODO: Why is ObjectTemplate and RemoteObjectTemplate here? var PersistObjectTemplate = baseClassForPersist._createObject(); PersistObjectTemplate.__id__ = nextId++; @@ -88,13 +88,13 @@ export function persObj(_ObjectTemplate, _RemoteObjectTemplate, baseClassForPers return PersistObjectTemplate; } -export const supertypeClass = function (target) { +export function supertypeClass(target) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } return supertype.supertypeClass(target, objectTemplate) }; -export const Supertype = function () { +export function Supertype() { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } @@ -102,7 +102,7 @@ export const Supertype = function () { }; Supertype.prototype = supertype.Supertype.prototype; -export const property = function (props) { +export function property(props) { if (!objectTemplate) { throw new Error('Please create PersisObjectTemplate before importing templates'); } @@ -110,7 +110,7 @@ export const property = function (props) { } // will need to come back here unblocked for now by removing this. -var __extends = (function () { +var __extends = (__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; @@ -122,7 +122,7 @@ var __extends = (function () { })(); -export const Persistable = function (Base) { +export function Persistable(Base) { return (function (_super) { __extends(class_1, _super); function class_1() { @@ -134,7 +134,7 @@ export const Persistable = function (Base) { let ObjectTemplate = supertype.default; export const Persistor = { - create: function () {return persObj(ObjectTemplate, null, ObjectTemplate)} + create: function () {return persist(ObjectTemplate, null, ObjectTemplate)} } Object.defineProperty(Persistable.prototype, 'persistor', {get: function () { diff --git a/components/persistor/package.json b/components/persistor/package.json index 482b0636..06658766 100644 --- a/components/persistor/package.json +++ b/components/persistor/package.json @@ -5,7 +5,6 @@ "version": "11.0.0-es2020.beta.3", "main": "dist/index.js", "types": "dist/index.d.ts", - "type": "module", "dependencies": { "aws-sdk": "2.x", "bluebird": "x", diff --git a/components/persistor/test/animals.js b/components/persistor/test/animals.js index 20cece70..627176e4 100644 --- a/components/persistor/test/animals.js +++ b/components/persistor/test/animals.js @@ -1,8 +1,8 @@ -import { expect} from "chai"; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +var expect = require('chai').expect; +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplate = require('../dist/index').default(ObjectTemplate, null, ObjectTemplate); +//var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); + /* Teacher Student Example */ var Animal = ObjectTemplate.create('Animal', { diff --git a/components/persistor/test/persist_banking.js b/components/persistor/test/persist_banking.js index 5bc69ce0..18fce69d 100644 --- a/components/persistor/test/persist_banking.js +++ b/components/persistor/test/persist_banking.js @@ -4,13 +4,10 @@ * */ -import {expect} from 'chai'; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -import MongoModule from 'mongodb'; -const {MongoClient} = MongoModule; +var expect = require('chai').expect; +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); var writing = true; /* PersistObjectTemplate.debug = function(m, t) { @@ -20,8 +17,7 @@ PersistObjectTemplate.debug = function(m, t) { } } */ -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; +var Promise = require('bluebird'); var Customer = PersistObjectTemplate.create('Customer', { init: function (first, middle, last) { @@ -236,6 +232,7 @@ var schema = { } } +var MongoClient = require('mongodb'); let db, client; function clearCollection(collectionName) { @@ -249,17 +246,14 @@ describe('Banking Example JS', function () { after('close db connection', function() { return client.close(); }); - it ('opens the database', async function () { - return MongoClient.connect(`mongodb://${process.env.mongoHost}:27017/testpersist`,{ useNewUrlParser: true }, function (error, clientParam){ - if(error) { - throw error; - } + it ('opens the database', function () { + return MongoClient.connect(`mongodb://${process.env.mongoHost}:27017/testpersist`).then(function (clientParam){ client = clientParam; - db = client.db('testpersist'); + db = client.db(); PersistObjectTemplate.setDB(db); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates - }) + }).catch(function(e) {throw e;}); }); it ('clears the bank', function () { diff --git a/components/persistor/test/persist_banking_pgsql.js b/components/persistor/test/persist_banking_pgsql.js index 3970372e..bd66f136 100644 --- a/components/persistor/test/persist_banking_pgsql.js +++ b/components/persistor/test/persist_banking_pgsql.js @@ -4,18 +4,15 @@ * */ -import sinon from 'sinon'; -import {LocalStorageDocClient } from '../dist/lib/remote-doc/remote-doc-clients/LocalStorageDocClient.js'; -import {expect} from 'chai'; -import util from 'util' -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import * as _ from 'underscore'; -import SupertypeModule from '@haventech/supertype'; -var ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -import knex from 'knex'; +var sinon = require('sinon'); +var LocalStorageDocClient = require('../dist/lib/remote-doc/remote-doc-clients/LocalStorageDocClient').LocalStorageDocClient; +var expect = require('chai').expect; +var util = require('util'); +var Promise = require('bluebird'); +var _ = require('underscore'); +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); var writing = true; var logLevel = process.env.logLevel || 'debug'; const sandbox = sinon.createSandbox(); @@ -371,7 +368,7 @@ function clearCollection(template) { } describe('Banking from pgsql Example persist_banking_pgsql', function () { - var knexObj; + var knex; var overrideProperyStub; beforeEach(function() { sandbox.spy(LocalStorageDocClient.prototype, 'uploadDocument'); @@ -387,7 +384,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { it ('opens the database Postgres', function () { return Promise.resolve() .then(function () { - knexObj = knex({ + knex = require('knex')({ client: 'pg', connection: { host: process.env.dbPath, @@ -401,15 +398,15 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { persistorBucketName: 'test-bucket-persistor', persistorRemoteDocEnvironment: 'local' }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates }).catch(function(e) {throw e;}); }); var schemaTable = 'index_schema_history'; - it ('clears the bank', function () { + it ('clears the bank', function () { this.timeout(4000); - return knexObj.schema.dropTableIfExists(schemaTable) + return knex.schema.dropTableIfExists(schemaTable) .then(function () { return clearCollection(Role); }).then(function (count) { @@ -469,7 +466,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { // }); // }); - it ('can create the data', function () { + it ('can create the data', function () { // Setup customers and addresses sam = new Customer('Sam', 'M', 'Elsamman'); karen = new Customer('Karen', 'M', 'Burke'); @@ -511,17 +508,17 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { jointAccount.debit(25); // Joint has 125 }); - it ('both accounts have the right balance', function () { + it('both accounts have the right balance', function () { expect(samsAccount.getBalance()).to.equal(100); expect(jointAccount.getBalance()).to.equal(125); }); - it ('check server side fetch property..', function () { + it('check server side fetch property..', function () { return samsAccount.addressFetch(0, 1).then(function(address) { expect(util.inspect(address)).to.not.equal(''); }) }); - it ('can insert', function (done) { + it('can insert', function (done) { PersistObjectTemplate.begin(); sam.setDirty(); ashling.setDirty(); @@ -529,10 +526,9 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { PersistObjectTemplate.end().then(function(result) { expect(result).to.equal(true); done(); - }).catch(function(e) { - done(e)}); + }).catch(function(e) {done(e)}); }); - it ('Accounts have addresses', function (done) { + it('Accounts have addresses', function (done) { Account.getFromPersistWithQuery(null, {address: true, transactions: false, fromAccountTransactions: false}).then (function (accounts) { expect(accounts.length).to.equal(2); expect(accounts[0].address.__template__.__name__).to.equal('Address'); @@ -1013,7 +1009,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { return Customer.getFromPersistWithId(sam._id).then (function (sam) { customer = sam; expect(customer.secondaryAddresses[0].city).to.equal('Red Hook'); - return knexObj('address').where({'_id': customer.secondaryAddresses[0]._id}).update({'__version__': 999}); + return knex('address').where({'_id': customer.secondaryAddresses[0]._id}).update({'__version__': 999}); }).then(function () { return customer.secondaryAddresses[0].isStale() }).then(function(stale) { @@ -1029,7 +1025,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { it('Can transact', function () { var customer; var preSave = false; - var dirtyCount = 0; + this.dirtyCount = 0; return Customer.getFromPersistWithId(sam._id).then (function (c) { customer = c; expect(customer.secondaryAddresses[0].city).to.equal('Red Hook'); @@ -1043,7 +1039,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { txn.preSave = function () {preSave = true}; txn.postSave = function (txn) { - dirtyCount = _.toArray(txn.savedObjects).length + this.dirtyCount = _.toArray(txn.savedObjects).length }.bind(this); return PersistObjectTemplate.end(txn); }).then(function () { @@ -1052,7 +1048,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { expect(customer.secondaryAddresses[0].city).to.equal('Rhinebeck'); expect(customer.primaryAddresses[0].city).to.equal('The Big Apple'); expect(preSave).to.equal(true); - expect(dirtyCount).to.equal(2); + expect(this.dirtyCount).to.equal(2); }).catch(function(e) { throw e; }); @@ -1074,7 +1070,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { txn = PersistObjectTemplate.begin(); customer.secondaryAddresses[0].setDirty(txn); customer.primaryAddresses[0].setDirty(txn); - return knexObj('address').where({'_id': customer.primaryAddresses[0]._id}).update({'__version__': 999}); + return knex('address').where({'_id': customer.primaryAddresses[0]._id}).update({'__version__': 999}); }).then(function () { return PersistObjectTemplate.end(txn); }).catch(function (e) { @@ -1403,7 +1399,7 @@ describe('Banking from pgsql Example persist_banking_pgsql', function () { }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); }); diff --git a/components/persistor/test/persist_banking_s3.js b/components/persistor/test/persist_banking_s3.js index ba377ecc..8afde6a9 100644 --- a/components/persistor/test/persist_banking_s3.js +++ b/components/persistor/test/persist_banking_s3.js @@ -2,16 +2,13 @@ * Banking example shows PersistObjectTemplate * with remote object storage using S3RemoteDocClient */ -import sinon from 'sinon'; -import { S3RemoteDocClient } from '../dist/lib/remote-doc/remote-doc-clients/S3RemoteDocClient.js'; - -import {expect, AssertionError} from 'chai'; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -const PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); - -import knex from 'knex'; +const sinon = require('sinon'); +const S3RemoteDocClient = require('../dist/lib/remote-doc/remote-doc-clients/S3RemoteDocClient').S3RemoteDocClient; +const expect = require('chai').expect; +const AssertionError = require('chai').AssertionError; +const ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); const logLevel = process.env.logLevel || 'debug'; PersistObjectTemplate.debugInfo = 'api;conflict;write;read;data';//'api;io'; @@ -56,7 +53,7 @@ function clearCollection(template) { } describe('Banking from pgsql Example persist_banking_s3', function () { - let knexObj; + let knex; afterEach(function() { sinon.restore(); @@ -65,7 +62,7 @@ describe('Banking from pgsql Example persist_banking_s3', function () { let noBankingDocumentCustomer; before(async () => { - knexObj = knex({ + knex = require('knex')({ client: 'pg', connection: { host: process.env.dbPath, @@ -80,14 +77,14 @@ describe('Banking from pgsql Example persist_banking_s3', function () { persistorRemoteDocEnvironment: 'S3', persistorRemoteDocHostURL: 'https://localstack.com' }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates this.timeout(4000); const schemaTable = 'index_schema_history'; - await knexObj.schema.dropTableIfExists(schemaTable) + await knex.schema.dropTableIfExists(schemaTable) const count = await clearCollection(Customer); expect(count).to.equal(0); @@ -243,6 +240,6 @@ describe('Banking from pgsql Example persist_banking_s3', function () { }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); }); diff --git a/components/persistor/test/persist_fetch.js b/components/persistor/test/persist_fetch.js index 7bcd3e3a..6c5c945b 100644 --- a/components/persistor/test/persist_fetch.js +++ b/components/persistor/test/persist_fetch.js @@ -1,24 +1,25 @@ -import chai, {expect} from 'chai'; -import chaiAsPromised from 'chai-as-promised'; +var chai = require('chai'), + expect = require('chai').expect; + +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import knex from 'knex'; -var knexObj; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; + +var Promise = require('bluebird'); +var knexInit = require('knex'); +var knex; + + var schema = {}; var schemaTable = 'index_schema_history'; var Phone, Address, Employee, empId, addressId, phoneId, Role, AddressType; -var PersistObjectTemplate; +var PersistObjectTemplate, ObjectTemplate; describe('persist fetch', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -29,25 +30,27 @@ describe('persist fetch', function () { }); return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_address') + return knex.schema.dropTableIfExists('tx_address') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_phone') + return knex.schema.dropTableIfExists('tx_phone') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_address_type') + return knex.schema.dropTableIfExists('tx_address_type') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); beforeEach('arrange', function () { - PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.Address = {}; @@ -148,7 +151,7 @@ describe('persist fetch', function () { emp.roles.push(role2); (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -183,19 +186,19 @@ describe('persist fetch', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_address') + return knex.schema.dropTableIfExists('tx_address') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_phone') + return knex.schema.dropTableIfExists('tx_phone') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_address_type') + return knex.schema.dropTableIfExists('tx_address_type') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }); it('check basic fetch without fetch spec should not return the records', function () { diff --git a/components/persistor/test/persist_fetch_children.js b/components/persistor/test/persist_fetch_children.js index ee8ac784..42a72e86 100644 --- a/components/persistor/test/persist_fetch_children.js +++ b/components/persistor/test/persist_fetch_children.js @@ -1,26 +1,24 @@ -import chai, {expect} from 'chai'; +var chai = require('chai'), + expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import knex from 'knex'; -var knexObj; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +var Promise = require('bluebird'); + +var knexInit = require('knex'); +var knex; + var schema = {}; var schemaTable = 'index_schema_history'; var Employee, Department, Role, roleId, EmployeeRef; -// var PersistObjectTemplate, ObjectTemplate; +var PersistObjectTemplate, ObjectTemplate; describe('persistor fetch children', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -31,21 +29,23 @@ describe('persistor fetch children', function () { }); return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_employee_ref') + return knex.schema.dropTableIfExists('tx_employee_ref') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); beforeEach('arrange', function () { - PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.EmployeeRef = {}; @@ -127,7 +127,7 @@ describe('persistor fetch children', function () { emp.referral = referral; (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -159,15 +159,15 @@ describe('persistor fetch children', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_employee_ref') + return knex.schema.dropTableIfExists('tx_employee_ref') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }); it('load intermediate objects first and then try to load the parents ', function () { diff --git a/components/persistor/test/persist_idmap.js b/components/persistor/test/persist_idmap.js index 41a32cf0..710fd734 100644 --- a/components/persistor/test/persist_idmap.js +++ b/components/persistor/test/persist_idmap.js @@ -1,8 +1,8 @@ -import {expect} from 'chai'; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from "../dist/index.js"; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +var expect = require('chai').expect; +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); + var Address = PersistObjectTemplate.create('Address', {}); var Customer = PersistObjectTemplate.create('Customer', { @@ -22,7 +22,7 @@ var schema = { } } -import MongoClient from 'mongodb'; +var MongoClient = require('mongodb'); var db, client; function clearCollection(collectionName) { diff --git a/components/persistor/test/persist_newapi_extend.js b/components/persistor/test/persist_newapi_extend.js index 0c9a8d14..c5e31682 100644 --- a/components/persistor/test/persist_newapi_extend.js +++ b/components/persistor/test/persist_newapi_extend.js @@ -1,16 +1,16 @@ -import chai, {expect} from 'chai'; +var chai = require('chai'), + expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import knex from 'knex'; -var knexObj; -import SupertypeModule from '@haventech/supertype'; -import * as index from "../dist/index.js"; +var Promise = require('bluebird'); + +var knexInit = require('knex'); +var knex; + var schema = {}; var schemaTable = 'index_schema_history'; var Employee, Person, Manager, empId, Address; @@ -19,7 +19,7 @@ var PersistObjectTemplate, ObjectTemplate; describe('persist newapi extend', function () { // this.timeout(5000); before('drop schema table once per test suit', function() { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -28,15 +28,17 @@ describe('persist newapi extend', function () { password: process.env.dbPassword, } }); - return Promise.all([knexObj.schema.dropTableIfExists('tx_person'), - knexObj.schema.dropTableIfExists(schemaTable)]); + return Promise.all([knex.schema.dropTableIfExists('tx_person'), + knex.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = SupertypeModule.default; - PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); + schema.Person = {}; schema.Person.table = 'tx_person'; schema.Person.documentOf = 'tx_person'; @@ -88,7 +90,7 @@ describe('persist newapi extend', function () { emp.manager = manager; (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -119,8 +121,8 @@ describe('persist newapi extend', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knexObj.schema.dropTableIfExists('tx_person'), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists('tx_person'), + knex.schema.dropTableIfExists(schemaTable)]); }); it('persistorFetchById without fetch spec should not return the records', function () { diff --git a/components/persistor/test/persist_newapi_tests.js b/components/persistor/test/persist_newapi_tests.js index ae1a9e36..2e5c1b47 100644 --- a/components/persistor/test/persist_newapi_tests.js +++ b/components/persistor/test/persist_newapi_tests.js @@ -1,16 +1,16 @@ -import chai, {expect} from 'chai'; +var chai = require('chai'), + expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import knex from 'knex'; -var knexObj; -import SupertypeModule from '@haventech/supertype'; -import * as index from '../dist/index.js'; +var Promise = require('bluebird'); + +var knexInit = require('knex'); +var knex; + var schema = {}; var schemaTable = 'index_schema_history'; var Phone, Address, Employee, empId, addressId, phoneId, Role; @@ -18,7 +18,7 @@ var PersistObjectTemplate, ObjectTemplate; describe('persist newapi tests', function () { before('drop schema table once per test suit', function() { - knexObj = knex({ + knex = knexInit({ client: 'pg', debug: true, connection: { @@ -30,24 +30,25 @@ describe('persist newapi tests', function () { }); return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_address') + return knex.schema.dropTableIfExists('tx_address') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_phone') + return knex.schema.dropTableIfExists('tx_phone') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }) after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); beforeEach('arrange', function () { - ObjectTemplate = SupertypeModule.default; - PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + ObjectTemplate = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); schema.Employee = {}; schema.Address = {}; @@ -128,7 +129,7 @@ describe('persist newapi tests', function () { emp.roles.push(role2); (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -150,7 +151,7 @@ describe('persist newapi tests', function () { } function addConstraint() { - return knexObj.raw('ALTER TABLE tx_role ADD CONSTRAINT namechk CHECK (char_length(name) <= 50);') + return knex.raw('ALTER TABLE tx_role ADD CONSTRAINT namechk CHECK (char_length(name) <= 50);') } function createRecords() { @@ -169,17 +170,17 @@ describe('persist newapi tests', function () { afterEach('remove tables and after each test', function() { return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee') + knex.schema.dropTableIfExists('tx_employee') .then(function () { - return knexObj.schema.dropTableIfExists('tx_address') + return knex.schema.dropTableIfExists('tx_address') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_phone') + return knex.schema.dropTableIfExists('tx_phone') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_department') + return knex.schema.dropTableIfExists('tx_department') }).then(function () { - return knexObj.schema.dropTableIfExists('tx_role') + return knex.schema.dropTableIfExists('tx_role') }), - knexObj.schema.dropTableIfExists(schemaTable)]); + knex.schema.dropTableIfExists(schemaTable)]); }); it('persistorFetchById without fetch spec should not return the records', function () { @@ -507,7 +508,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); @@ -532,7 +533,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); @@ -553,7 +554,7 @@ describe('persist newapi tests', function () { } function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address FOREIGN KEY (address_id) references public.tx_address("_id") deferrable initially deferred'); } }); diff --git a/components/persistor/test/persist_parent_subset.js b/components/persistor/test/persist_parent_subset.js index dadff9a7..bbb69ccd 100644 --- a/components/persistor/test/persist_parent_subset.js +++ b/components/persistor/test/persist_parent_subset.js @@ -1,20 +1,19 @@ /*eslint-disable no-unused-vars*/ //need to disable this rule as the template definitions for testing are not being used -import chai, {expect} from 'chai'; +var chai = require('chai'), + expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import knex from 'knex'; -import SupertypeModule from '@haventech/supertype'; -const ObjectTemplate = SupertypeModule.default; -import * as index from '../dist/index.js'; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -var knexObj; +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); +var Promise = require('bluebird'); +var knexInit = require('knex'); +var knex; var schema = {}; var schemaTable = 'index_schema_history'; @@ -22,7 +21,7 @@ var schemaTable = 'index_schema_history'; describe('persist parent subset', function () { before('arrange', function (done) { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -32,26 +31,26 @@ describe('persist parent subset', function () { } }); (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); })(); return Promise.all([ - knexObj.schema.dropTableIfExists('employee_parent').then(function () { - return knexObj.schema.dropTableIfExists('employee_parent'); + knex.schema.dropTableIfExists('employee_parent').then(function () { + return knex.schema.dropTableIfExists('employee_parent'); }), - knexObj.schema.dropTableIfExists('employee_subset').then(function () { - return knexObj.schema.dropTableIfExists('employee_subset'); + knex.schema.dropTableIfExists('employee_subset').then(function () { + return knex.schema.dropTableIfExists('employee_subset'); }), - knexObj.schema.dropTableIfExists('tx_employee_parentchild_subset').then(function () { - return knexObj.schema.dropTableIfExists('tx_employee_parentchild_subset'); + knex.schema.dropTableIfExists('tx_employee_parentchild_subset').then(function () { + return knex.schema.dropTableIfExists('tx_employee_parentchild_subset'); }), - knexObj.schema.dropTableIfExists(schemaTable) + knex.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); it('Creating multiple levels objects, only parent object can have the schema entry', function () { diff --git a/components/persistor/test/persist_polymorphic.js b/components/persistor/test/persist_polymorphic.js index 607b1bf8..055a0b9a 100644 --- a/components/persistor/test/persist_polymorphic.js +++ b/components/persistor/test/persist_polymorphic.js @@ -1,20 +1,19 @@ /*Need to skip unused variables as object hierarchies are synchronized based on these definitions*/ /*eslint no-unused-vars: 0*/ -import chai from 'chai'; -import {expect} from 'chai'; +var chai = require('chai'); +var expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import SupertypeModule from '@haventech/supertype'; -import * as index from '../dist/index.js'; -var ObjectTemplate = SupertypeModule.default; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); + +var Promise = require('bluebird'); +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); var Parent = PersistObjectTemplate.create('Parent', { @@ -485,12 +484,12 @@ var schema = { } } -import knex from 'knex'; -var knexObj; +var knexInit = require('knex'); +var knex; var schemaTable = 'index_schema_history'; describe('type mapping tests for parent/child relations', function () { before('arrange', function (done) { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -500,7 +499,7 @@ describe('type mapping tests for parent/child relations', function () { } }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates @@ -514,15 +513,15 @@ describe('type mapping tests for parent/child relations', function () { PersistObjectTemplate.dropKnexTable(Scenario_2_ParentWithMultiChildAttheSameLevel), PersistObjectTemplate.dropKnexTable(ParentWithMultiChildAttheSameLevelWithIndexes), PersistObjectTemplate.dropKnexTable(parentSynchronize), - knexObj.schema.dropTableIfExists('NewTableWithComments'), - knexObj.schema.dropTableIfExists('NewTableWithComments1'), - knexObj.schema.dropTableIfExists('ExistingTableWithComments'), - knexObj.schema.dropTableIfExists('ExistingTableWithAField'), - knexObj.schema.dropTableIfExists(schemaTable) + knex.schema.dropTableIfExists('NewTableWithComments'), + knex.schema.dropTableIfExists('NewTableWithComments1'), + knex.schema.dropTableIfExists('ExistingTableWithComments'), + knex.schema.dropTableIfExists('ExistingTableWithAField'), + knex.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }) after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); it('Parent type with an associated child will add add the fields from the child tables to the parent table', function (done) { @@ -533,7 +532,7 @@ describe('type mapping tests for parent/child relations', function () { it('Both parent and child index definitions are added to the parent table', function () { return PersistObjectTemplate.createKnexTable(Parent_Idx).then(function () { - return knexObj.schema.table('Parent_Idx', function (table) { + return knex.schema.table('Parent_Idx', function (table) { table.dropIndex([], 'idx_parent_idx_id_name'); }).should.eventually.have.property('command') }); @@ -549,7 +548,7 @@ describe('type mapping tests for parent/child relations', function () { // it('When trying to create child table, system should create the parent table and the corresonding indexes in the object graph must be added to the table', function () { // return PersistObjectTemplate.createKnexTable(ChildToCreate1).then(function () { - // return knexObj.schema.table('ChildCreatesThisParent1', function (table) { + // return knex.schema.table('ChildCreatesThisParent1', function (table) { // table.dropIndex([], 'idx_childcreatesthisparent1_dob'); // }).should.eventually.have.property('command') // }) @@ -563,7 +562,7 @@ describe('type mapping tests for parent/child relations', function () { // it('Multilevel inheritance with indexes defined at different levels', function () { // return PersistObjectTemplate.createKnexTable(ParentMulteLevelIndx1).then(function () { - // return knexObj.schema.table('ParentMulteLevelIndx1', function (table) { + // return knex.schema.table('ParentMulteLevelIndx1', function (table) { // table.dropIndex([], 'idx_parentmultelevelindx1_dob'); // }).should.eventually.have.property('command') // }) @@ -627,7 +626,7 @@ describe('type mapping tests for parent/child relations', function () { schema.NewTableWithComments = {documentOf: 'pg/NewTableWithComments'}; PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(NewTableWithComments); - const results = await knexObj('pg_catalog.pg_description') + const results = await knex('pg_catalog.pg_description') .count() .where('description', 'like', '%comment on a new table...%') expect(results).to.deep.include({ count: '1' }); @@ -696,7 +695,7 @@ describe('type mapping tests for parent/child relations', function () { }); PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(ExistingTableWithComments, null, true); - const results = await knexObj('pg_catalog.pg_description') + const results = await knex('pg_catalog.pg_description') .count() .where('description', 'like', '%comment on an existing table%'); @@ -723,7 +722,7 @@ describe('type mapping tests for parent/child relations', function () { PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(ExistingTableWithAField, null, true); - const results = await knexObj('pg_catalog.pg_description') + const results = await knex('pg_catalog.pg_description') .count() .where('description', 'like', '%Adding a new field comment%'); expect(results).to.deep.include({ count: '1' }); @@ -731,8 +730,10 @@ describe('type mapping tests for parent/child relations', function () { }); it('Adding a foreign key refrence in children', function () { - var ObjectTemplate1 = SupertypeModule.default; - var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + var PersistObjectTemplate1 = PersistObjectTemplateModule.default(ObjectTemplate1, null, ObjectTemplate1); + var BaseTemplate_FK_on_Child = PersistObjectTemplate1.create('BaseTemplate_FK_on_Child', { name: {type: String, value: 'Test Parent'} }); @@ -762,22 +763,23 @@ describe('type mapping tests for parent/child relations', function () { schema.Address_FK_on_Child = {}; schema.Address_FK_on_Child = {documentOf: 'address_ref_tbl'}; - PersistObjectTemplate1.setDB(knexObj, PersistObjectTemplate1.DB_Knex); + PersistObjectTemplate1.setDB(knex, PersistObjectTemplate1.DB_Knex); PersistObjectTemplate1.setSchema(schema); PersistObjectTemplate1.performInjections(); PersistObjectTemplate1._verifySchema(); }); it('getDB without setting database', function () { - var ObjectTemplate1 = SupertypeModule.default; - var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = require('@haventech/supertype').default; + var PersistObjectTemplate1 = require('../dist/index.js').default(ObjectTemplate1, null, ObjectTemplate1); expect(PersistObjectTemplate1.getDB.bind(this, 'pg')).to.throw('You must do PersistObjectTempate.setDB'); }); it('without schema..', function () { - var ObjectTemplate1 = SupertypeModule.default; - var PersistObjectTemplate1 = index.persObj(ObjectTemplate1, null, ObjectTemplate1); + var ObjectTemplate1 = require('@haventech/supertype').default; + var PersistObjectTemplateModule = require('../dist/index'); + var PersistObjectTemplate1 = PersistObjectTemplateModule.default(ObjectTemplate1, null, ObjectTemplate1); var emptySchema = PersistObjectTemplate1._verifySchema(); expect(emptySchema).to.be.an('undefined'); }); diff --git a/components/persistor/test/persist_schema_indexdefchanges.js b/components/persistor/test/persist_schema_indexdefchanges.js index a3172c40..a5d37ed1 100644 --- a/components/persistor/test/persist_schema_indexdefchanges.js +++ b/components/persistor/test/persist_schema_indexdefchanges.js @@ -1,15 +1,15 @@ -import chai, {expect} from 'chai'; +var chai = require('chai'); +var expect = require('chai').expect; + +var chaiAsPromised = require('chai-as-promised'); -import chaiAsPromised from 'chai-as-promised'; chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import SupertypeModule from '@haventech/supertype'; -var ObjectTemplate = SupertypeModule.default; -import * as index from '../dist/index.js'; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +var Promise = require('bluebird'); +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); var Address = PersistObjectTemplate.create('Address', { id: { type: Number }, @@ -205,15 +205,15 @@ var schema = { ] } } -import knex from 'knex'; -var knexObj; +var knexInit = require('knex'); +var knex; var schemaTable = 'index_schema_history'; describe('index synchronization checks', function () { var checkKeyExistsInSchema; var getIndexes; before('arrange', function (done) { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -224,7 +224,7 @@ describe('index synchronization checks', function () { }); checkKeyExistsInSchema = function(key) { - return knexObj(schemaTable) + return knex(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -236,7 +236,7 @@ describe('index synchronization checks', function () { }; getIndexes = function(key) { - return knexObj(schemaTable) + return knex(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -247,14 +247,14 @@ describe('index synchronization checks', function () { }; (function () { - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates })(); return Promise.all([ - knexObj.schema.dropTableIfExists('notificationCheck'), - knexObj.schema.dropTableIfExists('caseChangeCheck'), + knex.schema.dropTableIfExists('notificationCheck'), + knex.schema.dropTableIfExists('caseChangeCheck'), PersistObjectTemplate.dropKnexTable(Employee), //PersistObjectTemplate.dropKnexTable(Manager), PersistObjectTemplate.dropKnexTable(BoolTable), @@ -263,12 +263,12 @@ describe('index synchronization checks', function () { PersistObjectTemplate.dropKnexTable(IndexSyncTable), PersistObjectTemplate.dropKnexTable(MultipleIndexTable), PersistObjectTemplate.dropKnexTable(Parent), - knexObj(schemaTable).del(), - knexObj.schema.dropTableIfExists('IndexSyncTable') + knex(schemaTable).del(), + knex.schema.dropTableIfExists('IndexSyncTable') ]).should.notify(done); }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); diff --git a/components/persistor/test/persist_schema_updates.js b/components/persistor/test/persist_schema_updates.js index 6dc288ba..5d7d7883 100644 --- a/components/persistor/test/persist_schema_updates.js +++ b/components/persistor/test/persist_schema_updates.js @@ -2,20 +2,18 @@ * Created by RSagiraji on 10/29/15. */ -import chai from 'chai'; -import {expect} from 'chai'; +var chai = require('chai'); +var expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); +var Promise = require('bluebird'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import SupertypeModule from '@haventech/supertype'; -var ObjectTemplate = SupertypeModule.default; -import * as index from '../dist/index.js'; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); var Employee = PersistObjectTemplate.create('Employee', { id: {type: Number}, @@ -155,13 +153,13 @@ var schema = { } } -import knex from 'knex'; -var knexObj; +var knexInit = require('knex'); +var knex; var schemaTable = 'index_schema_history'; describe('schema update checks', function () { before('arrange', function (done) { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -171,13 +169,13 @@ describe('schema update checks', function () { } }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); // Normally done by getTemplates return Promise.all([ - knexObj.schema.dropTableIfExists('NewTable'), - knexObj.schema.dropTableIfExists('employee'), + knex.schema.dropTableIfExists('NewTable'), + knex.schema.dropTableIfExists('employee'), PersistObjectTemplate.dropKnexTable(Employee), PersistObjectTemplate.dropKnexTable(Manager), PersistObjectTemplate.dropKnexTable(BoolTable), @@ -185,24 +183,24 @@ describe('schema update checks', function () { PersistObjectTemplate.dropKnexTable(SingleIndexTable), PersistObjectTemplate.dropKnexTable(MultipleIndexTable), PersistObjectTemplate.dropKnexTable(Parent), - knexObj.schema.dropTableIfExists('employee'), - knexObj.schema.dropTableIfExists('ChangeFieldTypeTable'), - knexObj.schema.dropTableIfExists('DateTable'), - knexObj.schema.dropTableIfExists('CreatingTable'), - knexObj.schema.dropTableIfExists('CreateNewType'), - knexObj.schema.dropTableIfExists('newTableWithoutTableDef'), - knexObj.schema.dropTableIfExists('IndexSyncTable').then(function() { - knexObj.schema.createTableIfNotExists('IndexSyncTable', function (table) { + knex.schema.dropTableIfExists('employee'), + knex.schema.dropTableIfExists('ChangeFieldTypeTable'), + knex.schema.dropTableIfExists('DateTable'), + knex.schema.dropTableIfExists('CreatingTable'), + knex.schema.dropTableIfExists('CreateNewType'), + knex.schema.dropTableIfExists('newTableWithoutTableDef'), + knex.schema.dropTableIfExists('IndexSyncTable').then(function() { + knex.schema.createTableIfNotExists('IndexSyncTable', function (table) { table.double('id'); table.text('name') }) }), - knexObj.schema.dropTableIfExists(schemaTable) + knex.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); @@ -214,7 +212,7 @@ describe('schema update checks', function () { }); it('change to incompatible type and check for exception', function () { - return knexObj.schema.createTableIfNotExists('ChangeFieldTypeTable', function (table) { + return knex.schema.createTableIfNotExists('ChangeFieldTypeTable', function (table) { table.integer('id'); table.text('name') }).then(function () { @@ -248,7 +246,7 @@ describe('schema update checks', function () { it('synchronize the index definition and check if the index exists on the table by dropping the index', function () { return PersistObjectTemplate.synchronizeKnexTableFromTemplate(IndexSyncTable).then(function () { - return knexObj.schema.table('IndexSyncTable', function (table) { + return knex.schema.table('IndexSyncTable', function (table) { table.dropIndex([], 'idx_indexsynctable_name'); }).should.eventually.have.property('command') }); @@ -302,7 +300,7 @@ describe('schema update checks', function () { PersistObjectTemplate._verifySchema(); await PersistObjectTemplate.synchronizeKnexTableFromTemplate(newTablePrimIndex); - const records = await knexObj(schemaTable).select('schema').orderBy('sequence_id', 'desc').limit(1); + const records = await knex(schemaTable).select('schema').orderBy('sequence_id', 'desc').limit(1); const result = records[0].schema; expect(result).contains('NewTablePrimIndex'); @@ -322,7 +320,7 @@ describe('schema update checks', function () { schema.newTable.indexes = JSON.parse('[{"name": "single_index","def": {"columns": ["id", "name"],"type": "unique"}}]'); PersistObjectTemplate._verifySchema(); return PersistObjectTemplate.synchronizeKnexTableFromTemplate(newTable, null, true).then(function () { - return knexObj(schemaTable) + return knex(schemaTable) .select('schema') .orderBy('sequence_id', 'desc') .limit(1) @@ -343,8 +341,8 @@ describe('schema update checks', function () { }); it('create a table with multiple indexes', function () { - //don't like to check the result this way.. but I felt that using knexObj in the test cases is equally bad - //and the knexObj responses are not clean, will check with Sam and make necessary changes.. + //don't like to check the result this way.. but I felt that using knex in the test cases is equally bad + //and the knex responses are not clean, will check with Sam and make necessary changes.. return PersistObjectTemplate.createKnexTable(MultipleIndexTable).then(function () { return PersistObjectTemplate.checkForKnexTable(MultipleIndexTable).should.eventually.equal(true); }) diff --git a/components/persistor/test/persist_transaction.js b/components/persistor/test/persist_transaction.js index 66657d36..5f8b7aae 100644 --- a/components/persistor/test/persist_transaction.js +++ b/components/persistor/test/persist_transaction.js @@ -1,26 +1,24 @@ -import chai from 'chai'; -import {expect} from 'chai'; +var chai = require('chai'), + expect = require('chai').expect; -import chaiAsPromised from 'chai-as-promised'; +var chaiAsPromised = require('chai-as-promised'); chai.should(); chai.use(chaiAsPromised); -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import SupertypeModule from '@haventech/supertype'; -var ObjectTemplate = SupertypeModule.default; -import * as index from '../dist/index.js'; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -import knex from 'knex'; -var knexObj; +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplateModule = require('../dist/index'); +var PersistObjectTemplate = PersistObjectTemplateModule.default(ObjectTemplate, null, ObjectTemplate); +var Promise = require('bluebird'); +var knexInit = require('knex'); +var knex; var schema = {}; var schemaTable = 'index_schema_history'; describe('persist transaction', function () { before('arrange', function (done) { - knexObj = knex({ + knex = knexInit({ client: 'pg', connection: { host: process.env.dbPath, @@ -29,33 +27,33 @@ describe('persist transaction', function () { password: process.env.dbPassword, } }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); return Promise.all([ - knexObj.schema.dropTableIfExists('tx_employee').then(function() { - return knexObj.schema.dropTableIfExists('tx_address'); + knex.schema.dropTableIfExists('tx_employee').then(function() { + return knex.schema.dropTableIfExists('tx_address'); }), - knexObj.schema.dropTableIfExists('tx_employee1').then(function() { - return knexObj.schema.dropTableIfExists('tx_address1'); + knex.schema.dropTableIfExists('tx_employee1').then(function() { + return knex.schema.dropTableIfExists('tx_address1'); }), - knexObj.schema.dropTableIfExists('tx_employee2').then(function() { - return knexObj.schema.dropTableIfExists('tx_address2'); + knex.schema.dropTableIfExists('tx_employee2').then(function() { + return knex.schema.dropTableIfExists('tx_address2'); }), - knexObj.schema.dropTableIfExists('tx_delete_employee').then(function() { - return knexObj.schema.dropTableIfExists('tx_delete_address'); + knex.schema.dropTableIfExists('tx_delete_employee').then(function() { + return knex.schema.dropTableIfExists('tx_delete_address'); }), - knexObj.schema.dropTableIfExists('tx_persistdelete_address').then(function() { - return knexObj.schema.dropTableIfExists('tx_persistdelete_employee'); + knex.schema.dropTableIfExists('tx_persistdelete_address').then(function() { + return knex.schema.dropTableIfExists('tx_persistdelete_employee'); }), - knexObj.schema.dropTableIfExists('tx_deletewot_employee'), - knexObj.schema.dropTableIfExists(schemaTable) + knex.schema.dropTableIfExists('tx_deletewot_employee'), + knex.schema.dropTableIfExists(schemaTable) ]).should.notify(done); }); after('closes the database', function () { - return knexObj.destroy(); + return knex.destroy(); }); it('create a simple table', function () { @@ -94,7 +92,7 @@ describe('persist transaction', function () { } function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address2 FOREIGN KEY (address_id) references public.tx_address("_id")'); + return knex.raw('ALTER TABLE public.tx_employee ADD CONSTRAINT fk_tx_employee_address2 FOREIGN KEY (address_id) references public.tx_address("_id")'); } function syncTable(template) { @@ -103,7 +101,7 @@ describe('persist transaction', function () { function openTransaction() { var tx = PersistObjectTemplate.begin(); - tx.knexObj = knexObj.transaction(transaction); + tx.knex = knex.transaction(transaction); return tx; } @@ -162,7 +160,7 @@ describe('persist transaction', function () { // } // function createFKs() { - // return knexObj.raw('ALTER TABLE public.tx_employee1 ADD CONSTRAINT fk_tx_employee1_address2 FOREIGN KEY (address_id) references public.tx_address1("_id") deferrable initially deferred'); + // return knex.raw('ALTER TABLE public.tx_employee1 ADD CONSTRAINT fk_tx_employee1_address2 FOREIGN KEY (address_id) references public.tx_address1("_id") deferrable initially deferred'); // } // function syncTable(template) { @@ -227,7 +225,7 @@ describe('persist transaction', function () { function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_employee2 ADD CONSTRAINT fk_tx_employee2_address2 FOREIGN KEY (address_id) references public.tx_address2("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_employee2 ADD CONSTRAINT fk_tx_employee2_address2 FOREIGN KEY (address_id) references public.tx_address2("_id") deferrable initially deferred'); } function syncTable(template) { @@ -295,7 +293,7 @@ describe('persist transaction', function () { function createFKs() { - return knexObj.raw('ALTER TABLE public.tx_delete_employee ADD CONSTRAINT fk_tx_delete_employee_address2 FOREIGN KEY (address_id) references public.tx_delete_address("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_delete_employee ADD CONSTRAINT fk_tx_delete_employee_address2 FOREIGN KEY (address_id) references public.tx_delete_address("_id") deferrable initially deferred'); } function syncTable(template) { @@ -312,8 +310,8 @@ describe('persist transaction', function () { function deleteCheck() { return EmployeeDel.deleteFromPersistWithQuery({name: 'Kumar'}).then(function(count) { expect(count).to.equal(1); - var func = function(knexObj) { - knexObj.where({city: 'New York'}); + var func = function(knex) { + knex.where({city: 'New York'}); }; return AddressDel.deleteFromPersistWithQuery(func).then(function(count) { @@ -458,7 +456,7 @@ describe('persist transaction', function () { var sql = 'select description from pg_description ' + 'join pg_class on pg_description.objoid = pg_class.oid where relname = \'tx_cascadetouch_address\' ' + 'and description like \'%comment to include%\''; - return knexObj.raw(sql); + return knex.raw(sql); }).then(function(columnDef) { expect(columnDef.rows.length).is.equal(1); }).catch(function(e) { @@ -514,7 +512,7 @@ describe('persist transaction', function () { emp.cascadeSave(txn); return PersistObjectTemplate.end(txn); }).then(function() { - return knexObj.raw('ALTER TABLE public.tx_persistdelete_address ADD CONSTRAINT fk_tx_delete_employee_address2persistdelete FOREIGN KEY (employee_id) references public.tx_persistdelete_employee("_id") deferrable initially deferred'); + return knex.raw('ALTER TABLE public.tx_persistdelete_address ADD CONSTRAINT fk_tx_delete_employee_address2persistdelete FOREIGN KEY (employee_id) references public.tx_persistdelete_employee("_id") deferrable initially deferred'); }).then(checkPersistDeletes.bind(this)); function checkPersistDeletes() { diff --git a/components/persistor/test/supertype/Account.ts b/components/persistor/test/supertype/Account.ts index f740b0ee..3ba1dc69 100644 --- a/components/persistor/test/supertype/Account.ts +++ b/components/persistor/test/supertype/Account.ts @@ -1,7 +1,7 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Role} from './Role.js'; -import {Address} from './Address.js'; -import {Transaction, Debit, Credit, Xfer} from './Transaction.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Role} from './Role'; +import {Address} from './Address'; +import {Transaction, Debit, Credit, Xfer} from './Transaction'; @supertypeClass({toServer: true, toClient: false}) export class Account extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Address.ts b/components/persistor/test/supertype/Address.ts index 03f431d9..fdaf5e16 100644 --- a/components/persistor/test/supertype/Address.ts +++ b/components/persistor/test/supertype/Address.ts @@ -1,7 +1,7 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Customer} from './Customer.js'; -import {Account} from './Account.js'; -import {ReturnedMail} from './ReturnedMail.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Customer} from './Customer'; +import {Account} from './Account'; +import {ReturnedMail} from './ReturnedMail'; import "reflect-metadata"; @supertypeClass diff --git a/components/persistor/test/supertype/Customer.ts b/components/persistor/test/supertype/Customer.ts index c75959e1..a2b8f69b 100644 --- a/components/persistor/test/supertype/Customer.ts +++ b/components/persistor/test/supertype/Customer.ts @@ -1,6 +1,6 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Role} from './Role.js'; -import {Address} from './Address.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Role} from './Role'; +import {Address} from './Address'; @supertypeClass export class Customer extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Employee.ts b/components/persistor/test/supertype/Employee.ts index 66fbe1ee..2272911c 100644 --- a/components/persistor/test/supertype/Employee.ts +++ b/components/persistor/test/supertype/Employee.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Responsibility} from './Responsibility.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Responsibility} from './Responsibility'; @supertypeClass export class Employee extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/ExtendedCustomer.ts b/components/persistor/test/supertype/ExtendedCustomer.ts index f8524a99..2c534081 100644 --- a/components/persistor/test/supertype/ExtendedCustomer.ts +++ b/components/persistor/test/supertype/ExtendedCustomer.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Customer} from './Customer.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Customer} from './Customer'; @supertypeClass export class ExtendedCustomer extends Customer { diff --git a/components/persistor/test/supertype/Responsibility.ts b/components/persistor/test/supertype/Responsibility.ts index 420fb4a2..4dac370d 100644 --- a/components/persistor/test/supertype/Responsibility.ts +++ b/components/persistor/test/supertype/Responsibility.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Employee} from './Employee.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Employee} from './Employee'; @supertypeClass export class Responsibility extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/ReturnedMail.ts b/components/persistor/test/supertype/ReturnedMail.ts index e5fb7357..da22cc70 100644 --- a/components/persistor/test/supertype/ReturnedMail.ts +++ b/components/persistor/test/supertype/ReturnedMail.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Address} from './Address.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Address} from './Address'; @supertypeClass export class ReturnedMail extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Role.ts b/components/persistor/test/supertype/Role.ts index b927bdb2..a5281a5d 100644 --- a/components/persistor/test/supertype/Role.ts +++ b/components/persistor/test/supertype/Role.ts @@ -1,6 +1,6 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Customer} from './Customer.js'; -import {Account} from './Account.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Customer} from './Customer'; +import {Account} from './Account'; @supertypeClass export class Role extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/Transaction.ts b/components/persistor/test/supertype/Transaction.ts index d9a7f26d..754bb218 100644 --- a/components/persistor/test/supertype/Transaction.ts +++ b/components/persistor/test/supertype/Transaction.ts @@ -1,5 +1,5 @@ -import {Supertype, supertypeClass, property, Persistable} from '../../dist/index.js'; -import {Account} from './Account.js'; +import {Supertype, supertypeClass, property, Persistable} from '../../dist/index'; +import {Account} from './Account'; @supertypeClass export class Transaction extends Persistable(Supertype) { diff --git a/components/persistor/test/supertype/one-to-manychecks.ts b/components/persistor/test/supertype/one-to-manychecks.ts index 51616d99..27d8a22a 100644 --- a/components/persistor/test/supertype/one-to-manychecks.ts +++ b/components/persistor/test/supertype/one-to-manychecks.ts @@ -1,29 +1,19 @@ - -// declare function require(name:string); -import SupertypeModule from '@haventech/supertype'; -var ObjectTemplate = SupertypeModule.default; -import * as index from '../../dist/index.js'; -var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -// var PersistObjectTemplate = index.persObj(ObjectTemplate, null, ObjectTemplate); -// var ObjectTemplate = require('@haventech/supertype').default; -// var PersistObjectTemplate = require('../../dist/index.js')(ObjectTemplate, null, ObjectTemplate); +declare function require(name:string); +var ObjectTemplate = require('@haventech/supertype').default; +var PersistObjectTemplate = require('../../dist/index.js')(ObjectTemplate, null, ObjectTemplate); var logLevel = process.env.logLevel || 'debug'; PersistObjectTemplate.debugInfo = 'api;conflict;write;read;data';//'api;io'; PersistObjectTemplate.debugInfo = 'conflict;data';//'api;io'; PersistObjectTemplate.logger.setLevel(logLevel); -// import knex from 'knex'; -import * as knexModule from 'knex'; -const {knex }= knexModule; import { expect } from 'chai'; import * as mocha from 'mocha'; import * as _ from 'underscore'; -import {Employee} from "./Employee.js"; -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import {Responsibility} from "./Responsibility.js"; +import {Employee} from "./Employee"; +import Promise = require('bluebird'); +import {Responsibility} from "./Responsibility"; var schema = { @@ -44,11 +34,11 @@ var schema = { describe('Banking from pgsql Example one-to-manychecks typescript', function () { - var knexObj; + var knex; before('arrange', function () { (function () { - knexObj = knex({ + knex = require('knex')({ client: 'pg', debug: true, connection: { @@ -59,7 +49,7 @@ describe('Banking from pgsql Example one-to-manychecks typescript', function () } }); - PersistObjectTemplate.setDB(knexObj, PersistObjectTemplate.DB_Knex, 'pg'); + PersistObjectTemplate.setDB(knex, PersistObjectTemplate.DB_Knex, 'pg'); PersistObjectTemplate.setSchema(schema); PersistObjectTemplate.performInjections(); @@ -71,9 +61,9 @@ describe('Banking from pgsql Example one-to-manychecks typescript', function () function cleanDB() { return Promise.all([ - knexObj.schema.dropTableIfExists('index_schema_history'), - knexObj.schema.dropTableIfExists('employee'), - knexObj.schema.dropTableIfExists('responsibility')]); + knex.schema.dropTableIfExists('index_schema_history'), + knex.schema.dropTableIfExists('employee'), + knex.schema.dropTableIfExists('responsibility')]); } function createTables() { diff --git a/components/persistor/test/supertype/persist_banking_pgsql.ts b/components/persistor/test/supertype/persist_banking_pgsql.ts index b55eb3b4..c241b848 100644 --- a/components/persistor/test/supertype/persist_banking_pgsql.ts +++ b/components/persistor/test/supertype/persist_banking_pgsql.ts @@ -5,7 +5,7 @@ */ import {Persistor} from '../../dist/index.js'; - +console.log('kami is persistoe defined', Persistor) var persistor = Persistor.create(); persistor.debugInfo = 'api;conflict;write;read;data';//'api;io'; persistor.debugInfo = 'conflict;data';//'api;io'; @@ -13,13 +13,12 @@ persistor.logger.setLevel('debug'); import { expect } from 'chai'; import * as _ from 'underscore'; -import {Customer} from "./Customer.js"; -import {ExtendedCustomer} from "./ExtendedCustomer.js"; -import bluebirdModule from 'bluebird'; -const {Promise} = bluebirdModule; -import {Role} from "./Role.js"; -import {Account} from "./Account.js"; -import {Transaction, Xfer} from './Transaction.js'; +import {Customer} from "./Customer"; +import {ExtendedCustomer} from "./ExtendedCustomer"; +import Promise = require('bluebird'); +import {Role} from "./Role"; +import {Account} from "./Account"; +import {Transaction, Xfer} from './Transaction'; var schema = { Customer: { diff --git a/components/persistor/tsconfig.base.json b/components/persistor/tsconfig.base.json index 7bcbb63c..33ca97da 100644 --- a/components/persistor/tsconfig.base.json +++ b/components/persistor/tsconfig.base.json @@ -1,17 +1,16 @@ { "compilerOptions": { - "module": "es2020", - "moduleResolution": "node16", + "module": "CommonJs", "target": "es2020", "lib": ["es2015", "es2017", "es2020"], "noImplicitAny": false, "sourceMap": false, - "esModuleInterop": true, "typeRoots": [ "./node_modules/@types" ], "experimentalDecorators": true, "emitDecoratorMetadata": true, - "useDefineForClassFields": false + "useDefineForClassFields": false, + "esModuleInterop": true } } \ No newline at end of file diff --git a/components/persistor/tsconfig.json b/components/persistor/tsconfig.json index b509fd19..34d03d3c 100644 --- a/components/persistor/tsconfig.json +++ b/components/persistor/tsconfig.json @@ -1,22 +1,7 @@ { "compilerOptions": { - "moduleResolution": "node16", - "target": "es2020", - "lib": ["es2015", "es2017", "dom", "es2020"], - "noImplicitAny": false, "outDir": "./dist", - "rootDir": "./", - "typeRoots": [ - "./node_modules/@types" - ], - "declaration": true, - "declarationDir": "dist", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "inlineSources": true, - "inlineSourceMap": true, - "useDefineForClassFields": false, - "esModuleInterop": true + "rootDir": "./" }, "extends": "./tsconfig.base.json", "include": [